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

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关键字即可领取。
在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rsun04551

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值