springboot Mybatis整合

  • 1.在pom.xml文件添加依赖
 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
  • 2.添加Application.yml文件,配置数据源和Mybatis
server:
  port: 8080

spring:
  datasource:
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
      username: root
      password: 123

mybatis:
  mapper-locations: classpath:mapping/*.xml  #注意:一定要对应mapper映射xml文件的所在路径
  type-aliases-package: com.example.demo.entity  # 注意:对应实体类的路径

  • 3.编写实体类User和持久层UserMapper

  • 实体类User

public class User implements Serializable {
    private static final Long serialVersionUID=8655851615465363473L;

    private Long id;

    private String user_name;

    private Date date;

    public User() {
    }

    public User(String user_name, Date date) {
        this.user_name = user_name;
        this.date = date;
    }

    public User(Long id, String user_name, Date date) {
        this.id=id;
        this.user_name = user_name;
        this.date = date;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", user_name='" + user_name + '\'' +
                ", date=" + date +
                '}';
    }

  • 数据库表user

Create Table

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `date` datetime DEFAULT NULL,
  `user_name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=87 DEFAULT CHARSET=utf8

  • 持久层UserMapper:我这里注解和映射文件两种方式都用了
@Mapper
@Component
public interface UserMapper {
    @Select("select * from user where user_name=#{username}")
    User findByuserName(@Param("username") String username);   //注解方式


    int insert(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.example.demo.mapper.UserMapper">

    //id要对应UserMapper的方法insert
    <insert id="insert" parameterType="com.example.demo.entity.User">   
    INSERT INTO `user`(`date`,`user_name`) VALUES (#{date},#{userName})
  </insert>

</mapper>

  • 4 测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
    private static final Logger log= LoggerFactory.getLogger(DemoApplicationTests.class);

    @Autowired
    private UserMapper userMapper;

    @Test
    @Transactional
    public void contextLoads() {

        int row1 = userMapper.insert(new User( "aaa", new Date()));
        log.info("[添加结果] - [{}]",row1);
        int row2=userMapper.insert(new User("bbb",new Date()));
        log.info("[添加结果] - [{}]",row2);
        int row3=userMapper.insert(new User("ccc",new Date()));
        log.info("[添加结果] - [{}]",row3);
        User user=userMapper.findByuserName("bbb");
        log.info("[查找结果] - [{}]",user);


    }

}

  • 测试结果
2018-09-18 16:43:33.103  INFO 16500 --- [           main] com.example.demo.DemoApplicationTests    : [添加结果] - [1]
2018-09-18 16:43:33.111  INFO 16500 --- [           main] com.example.demo.DemoApplicationTests    : [添加结果] - [1]
2018-09-18 16:43:33.113  INFO 16500 --- [           main] com.example.demo.DemoApplicationTests    : [添加结果] - [1]
2018-09-18 16:43:33.137  INFO 16500 --- [           main] com.example.demo.DemoApplicationTests    : [查找结果] - [User{id=2, user_name='bbb', date=Sun Sep 16 00:00:00 CST 2018}]

  • 我的目录结构
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42870683/article/details/82760270