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());
}
}
网友评论