spring boot集成mybatis(注解模式)
一.所需材料
spring boot、mybatis
pom文件配置如下:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.0</version> <relativePath/> <!-- lookup parent from repository --> </parent>
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> </dependencies>
二.项目目录结构
三.项目代码
UserEntity.java
public class UserEntity implements Serializable { private Long id; private String name; private Integer age; private Byte status; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Byte getStatus() { return status; } public void setStatus(Byte status) { this.status = status; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } }
UserMapper.java
@Mapper public interface UserMapper { @Select("SELECT id, user_name AS name, age, status, create_time AS createTime, update_time AS updateTime FROM user WHERE user_name = #{name}") UserEntity findByName(@Param("name") String name); @Insert("INSERT INTO user VALUES (NULL, #{name}, #{age}, 1, NOW(), NOW())") int insert(@Param("name") String name, @Param("age") Integer age); }
UserService.java
@Service public class UserService { @Autowired private UserMapper userMapper; public boolean addUser(String userName, Integer age) { return userMapper.insert(userName, age) > 0 ? true : false; } public UserEntity getUserByName(String userName) { return userMapper.findByName(userName); } }
UserController.java
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping("/add") public String addUser(String userName, Integer age) { return userService.addUser(userName, age) ? "success" : "fail"; } @RequestMapping("/get") public UserEntity getUserByName(String userName) { return userService.getUserByName(userName); } @RequestMapping("/ok") public String getUserByName() { return "ok"; } }
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/business?useUnicode=true&characterEncoding=utf8&useSSL=false spring.datasource.username=root spring.datasource.password=***** spring.datasource.driver-class-name=com.mysql.jdbc.Driver
Mybatis14Application.java
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Mybatis14Application { public static void main(String[] args) { SpringApplication.run(Mybatis14Application.class, args); } }
user.sql
CREATE TABLE `user` ( `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT 'ID,自增主键', `user_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名称', `age` int(11) NOT NULL COMMENT '年龄', `status` tinyint(2) NOT NULL DEFAULT 1 COMMENT '状态:-1:删除;0:正常;', `create_time` datetime(0) NOT NULL COMMENT '创建时间', `update_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
四.启动并测试
输入:http://localhost:8080/user/get?userName=zry
返回结果: