0
点赞
收藏
分享

微信扫一扫

2、SpringBoot2.0实现增删改查(二)

闲嫌咸贤 2022-06-29 阅读 22

1、在该文件夹下创建如下包:
2、SpringBoot2.0实现增删改查(二)_mysql

利用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;

各包下的文件布置如下图:
2、SpringBoot2.0实现增删改查(二)_mysql_02
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关键字即可领取。
在这里插入图片描述

2、SpringBoot2.0实现增删改查(二)_ide_03


举报

相关推荐

0 条评论