美文网首页
2019-05-13

2019-05-13

作者: tomcat_085f | 来源:发表于2019-05-13 23:32 被阅读0次

SpringBoot 集成 mybatis

1 创建项目

使用 Idea 创建一个 SpringBoot 项目,依赖选择 validation、mybatis、mysql、lombok , pom 文件如下所示,如果对创建项目有疑问,可以返回上一篇文章:使用 Idea 创建第一个项目。

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
2 在 Mysql 中创建表
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `createBy` varchar(255) DEFAULT NULL,
  `credateAt` datetime DEFAULT NULL,
  `updateBy` varchar(255) DEFAULT NULL,
  `updateAt` datetime DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `picture` varchar(255) DEFAULT NULL,
  `sex` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8;
3 创建表对应的实体类
@Getter
@Setter
@ToString(callSuper = true)
public class User {
    //姓名
    private String name;
    // 手机号
    private String phone;
    // 图片
    private String picture;
    // 性别
    private Integer sex;
    // id
    private Integer id;
    // 插入的操作人员
    private String createBy;
    // 插入的时间
    private Date credateAt;
    // 修改的操作人员
    private String updateBy;
    // 修改时间
    private Date updateAt;
}
4 创建 mybatis 接口

使用 @Mapper 这样 UserMapper 就可以交给 Spring 管理

@Mapper
public interface UserMapper {
    List<User> listAll();
    Integer insert(User user);
}
5 创建 UserMapper的mybatis 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.hellen.springboot.mapper.UserMapper">

    <insert id="insert" useGeneratedKeys="true" keyProperty="id" >
        insert  into user (createBy,credateAt,updateBy,updateAt,name,phone,picture,sex)
        values
        (#{createBy},sysdate(),#{updateBy},#{updateAt},#{name},#{phone},#{picture},#{sex})
    </insert>
    <select id="listAll" resultType="com.hellen.springboot.domain.User">
        SELECT * FROM user ;
    </select>
</mapper>
  • namespace 对应 UserMapper 接口的全限定类名
  • insert 标签对应这是一个 插入的 sql 方法
  • insert 标签的属性 useGeneratedKeys 代表自增 , 增加的键 为 keyProperty 对应的“id”
  • select 标签 对应这是一个 查询方法,
  • select 标签的 resultType 属性为范围值的类型

自此,我们就创建好了 DAO 层需要的方法了。

6 创建对应的 Test方法

创建一个插入的 test 方法:

@Autowired
private UserMapper userMapper;
@Test
    public void testInsert(){
        User user = new User();
        user.setName("张三");
        user.setPhone("18825155657");
        user.setSex(1);
        user.setPicture("/img");
        user.setCreateBy("systemOperatr");
        user.setCredateAt(new Date());
        user.setUpdateBy("systemOperator");
        user.setUpdateAt(new Date());
        int insertNum = userMapper.insert(user);
        Assert.assertEquals(1 , insertNum);
    }

创建一个查询的 test 方法

    @Test
    public void testList(){
        List<User> users = userMapper.listAll();
        log.info("alluser : [{}]" , users);
        for (User user : users) {
            log.info("姓名 ; [{}]",user.getName());
            log.info("电话 ; [{}]",user.getPhone());
            log.info("创建时间 ; [{}]",user.getCredateAt());
        }
    }
   

相关文章

网友评论

      本文标题:2019-05-13

      本文链接:https://www.haomeiwen.com/subject/cugdaqtx.html