1、在该文件夹下创建如下包:
利用mapper.xml实现增删改查
在pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--MySQL连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.31</version>
</dependency>
<!--dao层:mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
在application.properties文件中添加以下内容:
#mysql连接池
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.name=com.alibaba.druid.pool.DruidDataSource
#扫描mapper文件夹下的文件
mybatis.type-aliases-package=com.xhy.pojo
mybatis.mapper-locations=classpath:/mapper/*.xml
数据库表结构如下:
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`age` int(5) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;
各包下的文件布置如下图:
user.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.xhy.xczx.dao.UserDao">
<select id="findAll" resultType="com.xhy.xczx.pojo.User">
select * from t_user
</select>
</mapper>
User中的内容:
@Data//可以自动生成getter/setter方法
@ToString//可以自动生成tostring方法。
public class User implements Serializable{
private Integer id;
private String name;
private Integer age;
}
UserDao中内容如下:
@Mapper//扫描mapper下的文件
@Repository
public interface UserDao {
List<User> findAll();
}
UserService中内容如下:
public interface UserService {
List<User> findAll();
}
UserServiceImpl中内容如下:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> findAll() {
return userDao.findAll();
}
}
UserController中内容如下:
@RestController
@RequestMapping(value="/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/findAll")
public List<User> findAll() {
return userService.findAll();
}
}
然后访问:
http://localhost:8081/user/findAll
该方式由于不是我们学习的重点,增删改可以自行在xml文件中配置进行测试;
使用SpringBoot-data-jpa实现增删改查
Orm 框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,一个是宣称可以不用写一句 Sql 的 Hibernate,一个是可以灵活调试动态 Sql 的 Mybatis ,两者各有特点,在企业级系统开发中可以根据需求灵活使用。发现一个有趣的现象:传统企业大都喜欢使用 Hibernate ,互联网行业通常使用 Mybatis 。
在pom.xml文件夹添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
UserDao文件下新增如下方法:
@Select("select id,name,age from t_user")
List<User> findsAll();
@Insert("insert into t_user(id,name,age) values(#{id},#{name},#{age})")
boolean insertUser(User user);
@Delete("delete from t_user where id =#{id}")
boolean deleteUser(Integer id);
@Update("update t_user set name=#{name},age=#{age} where id=#{id}")
boolean updateUser(User user);
@Select("select id,name,age from t_user limit #{size},#{page}")
List<User> findByPage(Integer size, Integer page);
UserService文件下新增如下方法:
List<User> findsAll();
boolean insertUser(User user);
boolean deleteUser(Integer id);
boolean updateUser(User user);
List<User> findByPage(Integer size, Integer page);
UserServiceImpl文件下新增如下方法:
@Override
public List<User> findsAll() {
List<User> list = userDao.findsAll();
return list;
}
@Override
public boolean insertUser(User user) {
boolean b = userDao.insertUser(user);
System.out.println(b);
return b;
}
@Override
public boolean deleteUser(Integer id) {
boolean b = userDao.deleteUser(id);
return b;
}
@Override
public boolean updateUser(User user) {
boolean b = userDao.updateUser(user);
return b;
}
@Override
public List<User> findByPage(Integer size, Integer page) {
List<User> page2 = userDao.findByPage(size, page);
return page2;
}
UserController文件下新增如下方法:
@RequestMapping(value = "/findsAll", method = RequestMethod.GET)
public List<User> findsAll() {
return userService.findsAll();
}
@RequestMapping(value = "/insertUser", method = RequestMethod.POST)
public boolean insertUser(User user) {
return userService.insertUser(user);
}
@RequestMapping(value = "/deleteUser", method = RequestMethod.DELETE)
public boolean deleteUser(Integer id) {
return userService.deleteUser(id);
}
@RequestMapping(value = "/updateUser", method = RequestMethod.PUT)
public boolean updateUser(User user) {
return userService.updateUser(user);
}
@RequestMapping(value = "/findByPage/{size}/{page}", method = RequestMethod.GET)
public List<User> findByPage(@PathVariable Integer size, @PathVariable Integer page) {
return userService.findByPage(size, page);
}
在接口测试工具Postman或者apizza中按照controller中的请求方式进行测试:
查询方式如下:
http://localhost:8081/user/findByPage/1/2
代码已上传至GitHub上,请复制下面链接下载:
https://github.com/xhy12306/SpringBoot2.0
补充:
可以在启动类XczxApplication上添加@MapperScan("com.xhy.xczx.dao")
,扫描mapper下的文件,这样就可以不用在每个dao包下的类中都添加@Mapper注解了。
如需获取更多关于SpringBoot、SpringCloud学习资料关注下面公众号,后台回复SpringBoot关键字即可领取。
在这里插入图片描述