spring-boot整合mybatis
创建spring-boot项目参考上一章内容《SpringBoot2.x初体验》
加入相关依赖
<!-- 创建的是web项目,所有把web需要的依赖加入进来 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- mybatis相关依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot</artifactId> </dependency> <!-- 数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> <!-- lombok 与mybatis无关,此处加入lombok只是为了编写po时不写set get方法--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
加入依赖后,开始coding,这里对mybatis不多做介绍主要介绍springboot与mybatis的整合。项目目录如图
一、编写UserController.java代码
@RestController public class UserController { @Autowired UserService userService; @GetMapping("/user/get/{id}") public String getUser(@PathVariable("id") Integer id) { System.out.println(id); User user = userService.getUserById(id); return user.toString(); } @GetMapping("/user/all") public String getAll() { List<User> allUser = userService.getAllUser(); return allUser.toString(); } @PostMapping("/user/save") public String saveUser(@RequestBody User user) { userService.saveUser(user); return "ok"; } @PutMapping("/user/update") public String updateUser(@RequestBody User user) { userService.updateUser(user); return "ok"; } @DeleteMapping("user/del/{id}") public String delUser(@PathVariable("id") Integer id) { userService.delUser(id); return "ok"; } }
二、UserService.java代码
public interface UserService { public User getUserById(Integer id); public List<User> getAllUser(); public void saveUser(User user); public int updateUser(User user); public int delUser(Integer id); }
三、UserServiceImpl.java代码
@Service public class UserServiceImpl implements UserService { @Autowired UserMapper userMapper; @Override public User getUserById(Integer id) { return userMapper.getById(id); } @Override public List<User> getAllUser() { return userMapper.getAll(); } @Transactional @Override public void saveUser(User user) { userMapper.save(user); } @Transactional @Override public int updateUser(User user) { return userMapper.update(user); } @Transactional @Override public int delUser(Integer id) { return userMapper.delete(id); }
四、UserMapper.java
@Mapper public interface UserMapper { User getById(Integer id); List<User> getAll(); void save(User user); int update(User user); int delete(Integer id); }
五、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="online.daguo.mapper.UserMapper"> <select id="getAll" resultType="online.daguo.po.User"> select id,name,age from user </select> <select id="getById" resultType="online.daguo.po.User" parameterType="int"> select id,name,age from user where id=#{id} </select> <insert id="save" parameterType="user" > insert into user (name,age) values (#{name},#{age}) </insert> <update id="update" parameterType="user"> update user <set> <if test="name != null and name != '' ">name = #{name},</if> <if test="age != ''">age = #{age},</if> </set> where id = #{id} </update> <delete id="delete" parameterType="int"> delete from user where id = #{id} </delete> </mapper>
六、application.propoproperties
// 配置服务器的端口和访问路径 server.port=8080 server.servlet.context-path= / // 配置数据源 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource // mysql驱动 spring.datasource.driver-class-name=com.mysql.jdbc.Driver // 数据库连接地址 spring.datasource.url=jdbc:mysql://localhost:3306/springboot_mybatis?useUnicode=true&characterEncoding=utf8&useSSL=false // 数据库连接账号 spring.datasource.username=root // 数据库连接密码 spring.datasource.password=root // Mybatis 配置 mybatis.configuration.map-underscore-to-camel-case=true // *Mapper.xml所在的位置 本示例中mybatis mapper文件存放在resources目录下 mybatis.mapper-locations=mybatis/*Mapper.xml // 实体映射别名 mybatis.type-aliases-package=online.daguo.po
至此,spring-boot 与mybatis整合完毕。
下一章介绍《spring-boot整合Thymeleaf》