创建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》