spring boot 2.0X 整合mybatis

springboot 2.0x整合mybatis

第一步:创建工程

使用idea创建spring boot工程,引入mybatis ,mysql依赖。

第二步:编写实体类,dao,mapper

User类如下:

public class User {
    
     private Integer userId ;
     private String userName ;
     private String  password ;
     private String phone ;
。。。。。(set get ..)
}

UserDao如下:

@Repository
public class UserDao {

    @Autowired
    private UserMapper mapper ;

    public User findUserById (Integer id ){
       User user = mapper.findByUserId(id);
        return user ;
    }

     public void saveUser(User user){
          mapper.insertUser(user);
     }

}

UserMapper如下:

public interface UserMapper {
    //采用注解方式,sql语句直接写在方法上
/*@Select("select * from t_user where user_id = #{userId}")
    @Results({
            @Result(column="user_id",property="userId"),
            @Result(column="user_name",property="userName"),
            @Result(column="password",property="password"),
            @Result(column="phone",property="phone")
    })*/
    User findByUserId(Integer userId);

    //采用xml方式
    int insertUser(User user);
}

UserMapper.xml如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yunda.study.mybatis.dao.mapper.UserMapper" >
    
<insert id="insertUser"   parameterType="com.yunda.study.mybatis.domain.User">
        insert into t_user (user_id,user_name,password,phone)
        values(
        #{userId,jdbcType=INTEGER},
        #{userName,jdbcType=VARCHAR},
        #{password,jdbcType=VARCHAR},
        #{phone,jdbcType=VARCHAR})
        )
</insert>
<select id="findByUserId"   parameterType="java.lang.Integer" resultType="com.yunda.study.mybatis.domain.User">
       select * from t_user where user_id = #{userId}
</select>

</mapper>

说明:

UserDao中装配接口UserMapper,此时接口Mapper是与数据库交互的,dao中调用mapper中的方法,即可返回数据。

接口mapper中实现的数据交互的方式有两种:一是采用注解的方式,二是采用配置文件件的方式。

1、采用注解方式==> 即在mapper接口的方法上,直接加上注解,给出sql语句,参数,以及表中字段与对象属性的映射等。如上代码

2、采用xml配置文件方式==> 在resource目录下新建mapper文件夹,建立UserMapper.xml,编写相应的方法对应的语句,参数,结果类型等。

第三步:配置主配置文件application.yml和注解

  注意启动类上要加注解,@MapperScan("com.yunda.boot.mybatis2.dao.mapper")

扫描mapper下的接口,否则无法再dao中注入mapper.

@SpringBootApplication
@MapperScan("com.yunda.boot.mybatis2.dao.mapper")
public class Mybatis2Application {

    public static void main(String[] args) {
        SpringApplication.run(Mybatis2Application.class, args);
    }
}

主配置文件application.yml  

 配置数据源位置,用户名,密码,开启打印sql语句到控制台,注明mapper文件位置。

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root
    url: jdbc:mysql://127.0.0.1:3309/sell2?characterEncoding=utf-8&useSSL=false
  
logging:
     level:
    #设置mybatis的sql语句打印到控制台。
       com.yunda.boot.mybatis2.dao.mapper: trace
mybatis:
    mapper-locations: classpath:mapper/*.xml

(补注:)

      idea如何拷贝路径(包名+类名)

第四步:新建测试类

右击:新建测试类

@RunWith(SpringRunner.class)
@SpringBootTest

注意测试类上加上注解。

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserDaoTest {

    @Autowired
    private UserDao dao ;
    @Test
    public void findUserById() {
        User result = dao.findUserById(123);
        System.out.print(result.toString());
        Assert.assertNotNull(result);
    }
    @Test
    public void testSaveUser() {
        User user = new User();
        user.setPassword("edcrf");
        user.setPhone("1881790807956");
        user.setUserId(125);
        user.setUserName("李广");
        dao.saveUser(user);
    }

测试结果如下:

github 源码如下:

https://github.com/Ruidaimeng/mybatis2.git

猜你喜欢

转载自blog.csdn.net/RUIMENG061511332/article/details/82181912
今日推荐