一、前言
其实 SpringBoot 是推荐我们使用 SpringData+JPA 去实现 Dao 层的,用起来也十分简单好使
具体可以看之前写过的博文
使用 SpringBoot+JPA+EasyUI+MySQL 实现 增删改查
本文使用了 SpringBoot 综合了之前写过的
回归基础 之 MyBatis 基本 CRUD
二、代码
本工程是使用的编译器是 STS,工程创建使用了 SpringStarter ,文件目录如下
1、entity 实体层
package com.cun.entity;
/**
* User 实体
* @author linhongcun
*
*/
public class User {
private Integer id;
private String userName;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
2、 application.properties
#MyBatis--entity
mybatis.type-aliases-package=com.cun.entity
#MyBatis--xml
mybatis.mapper-locations = classpath:mapper/*Mapper.xml
mybatis.config-location = classpath:mapper/config/sqlMapConfig.xml
#MySQL
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 123
3、dao
package com.cun.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.cun.entity.User;
/**
* User 的 dao层
* ①注意和 SSM 中不同的是dao接口要 @Mapper
* ②阿里巴巴建议接口不要写 public,保持简洁
* @author linhongcun
*
*/
@Mapper
public interface UserDao {
/**
* 1、获取所有数据
* @return
*/
List<User> findAll();
/**
* 2、根据id查询一条记录
* @param id
* @return
*/
User getUserById(Integer id);
/**
* 3、增加一条记录
* @param user
*/
void insertUser(User user);
/**
* 4、更新一条记录
* @param user
*/
void updateUser(User user);
/**
* 5、删除一条记录
* @param id
*/
void deleteUser(Integer id);
}
4、dao “实现类”
<?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.cun.dao.UserDao">
<!-- 1、查询所有 -->
<select id="findAll" resultType="com.cun.entity.User">
select * from user
</select>
<!-- 2、查询一条记录 -->
<select id="getUserById" resultType="com.cun.entity.User">
select * from user where id=#{id}
</select>
<!-- 3、增加一条记录 -->
<insert id="insertUser">
insert into user(userName,password) values(#{userName},#{password})
</insert>
<!-- 4、更新一条记录 -->
<update id="updateUser">
update user set userName=#{userName},password=#{password} where id=#{id}
</update>
<!-- 5、删除一条记录 -->
<delete id="deleteUser">
delete from user where id=#{id}
</delete>
</mapper>
5、MyBatis 配置
空空如也
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
6、Service
package com.cun.serevice;
import java.util.List;
import com.cun.entity.User;
/**
* User 事务层接口
* ①阿里巴巴建议接口不要写 public,保持简洁
* @author linhongcun
*
*/
public interface UserService {
/**
* 1、获取所有用户
* @return
*/
List<User> findAll();
/**
* 2、根据 id 查询一条记录
* @param id
* @return
*/
User getUserById(Integer id);
/**
* 3、增加一条记录
* @param user
*/
void insertUser(User user);
/**
* 4、更新一条记录
* @param user
*/
void updateUser(User user);
/**
* 5、删除一条记录
* @param id
*/
void deleteUser(Integer id);
}
7、Service 实现类
package com.cun.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.cun.dao.UserDao;
import com.cun.entity.User;
import com.cun.serevice.UserService;
/**
* User 事务实现类
* @author linhongcun
*
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public User getUserById(Integer id) {
return userDao.getUserById(id);
}
@Override
public void insertUser(User user) {
userDao.insertUser(user);
}
@Override
public void updateUser(User user) {
userDao.updateUser(user);
}
@Override
public void deleteUser(Integer id) {
userDao.deleteUser(id);
}
}
8、Controller 层
package com.cun.controllser;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.cun.entity.User;
import com.cun.serevice.UserService;
/**
* User 控制层
* @author linhongcun
*
*/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 1、查询所有 URl:http://localhost:8080/user/findAll
* @return
*/
@RequestMapping("/findAll")
public List<User> findAll() {
return userService.findAll();
}
/**
* 2、查询一条记录 URl:http://localhost:8080/user/getUserById?id=39
* @param id
* @return
*/
@RequestMapping("/getUserById")
public User getUserById(Integer id) {
return userService.getUserById(id);
}
/**
* 3、增加一条记录 URl:http://localhost:8080/user/insertUser?username=linhongcun&password=123
* @param user
*/
@RequestMapping("/insertUser")
public void insertUser(User user) {
userService.insertUser(user);
}
/**
* 4、更新一条记录 URl:http://localhost:8080/user/updateUser?id=43&username=linhongcun&password=123
* @param user
*/
@RequestMapping("/updateUser")
public void updateUser(User user) {
userService.updateUser(user);
}
/**
* 5、删除一条记录 URl:http://localhost:8080/user/deleteUser?id=43
* @param id
*/
@RequestMapping("/deleteUser")
public void deleteUser(Integer id) {
userService.deleteUser(id);
}
}
9、pom.xml
三、小结
1、SpringBoot 是推荐全程注解、少量配置的方式的,本文使用 xml 来实现 MyBatis 的 dao 层,是有点不合时宜