SpringBoot封装JDBC

ゞ 浴缸里的玫瑰 2023-02-26 08:23 82阅读 0赞

SpringBoot封装JDBC

1.创建sringBoot项目,导入基础模块

在这里插入图片描述

2.编写yaml配置文件连接数据库

  1. spring:
  2. datasource:
  3. username: root
  4. password: 123456
  5. #?serverTimezone=UTC解决时区的报错
  6. url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
  7. driver-class-name: com.mysql.cj.jdbc.Driver

3.配置完这一些东西后,我们就可以直接去使用了,因为SpringBoot已经默认帮我们进行了自动配置;去测试类测试一下

  1. @SpringBootTest
  2. class JdbcApplicationTests {
  3. //DI注入数据源
  4. @Autowired
  5. DataSource dataSource;
  6. @Test
  7. public void contextLoads() throws SQLException {
  8. //看一下默认数据源
  9. System.out.println(dataSource.getClass());
  10. //获得连接
  11. Connection connection = dataSource.getConnection();
  12. System.out.println(connection);
  13. //关闭连接
  14. connection.close();
  15. }
  16. }

结果:我们可以看到他默认给我们配置的数据源为 : class com.zaxxer.hikari.HikariDataSource , 我们并没有手动配置

我们来全局搜索一下,找到数据源的所有自动配置都在 :DataSourceAutoConfiguration文件:

HikariDataSource 号称Java WEB当前速度最快的数据源,相比于传统的 C3P0、DBCP、Tomcat jdbc等连接池更加优秀;

可以使用spring.datasource.type指定自定义的数据源类型,值要使用的连接池实现的完全限定名。

4.JdbcTemplate

1、有了数据源(com.zaxxer.hikari.HikariDataSource),然后可以拿到数据库连接

(java.sql.Connection),有了连接,就可以使用原生的 JDBC 语句来操作数据库;

2、即使不使用第三方第数据库操作框架,如 MyBatis等,Spring 本身也对原生的JDBC 做了轻量级的封装,即 JdbcTemplate 。

3、数据库操作的所有 CRUD 方法都在 JdbcTemplate 中。

4、Spring Boot 不仅提供了默认的数据源,同时默认已经配置好了 JdbcTemplate 放在了容器中,程序员只需自己注入即可使用

5、JdbcTemplate 的自动配置是依赖 org.springframework.boot.autoconfigure.jdbc 包下的 JdbcTemplateConfiguration 类

JdbcTemlate主要提供以下几类方法:

  • execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
  • update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;
  • batchUpdate方法用于执行批处理相关语句;
  • query方法及queryForXXX方法:用于执行查询相关语句;
  • call方法:用于执行存储过程、函数相关语句。

测试

  1. @RestController
  2. @RequestMapping
  3. public class JdbcController {
  4. /**
  5. * Spring Boot 默认提供了数据源,默认提供了 org.springframework.jdbc.core.JdbcTemplate
  6. * JdbcTemplate 中会自己注入数据源,用于简化 JDBC操作
  7. * 还能避免一些常见的错误,使用起来也不用再自己来关闭数据库连接
  8. */
  9. @Autowired
  10. JdbcTemplate jdbcTemplate;
  11. //查询employee表中所有数据
  12. //List 中的1个 Map 对应数据库的 1行数据
  13. //Map 中的 key 对应数据库的字段名,value 对应数据库的字段值
  14. @GetMapping("/list")
  15. public List<Map<String, Object>> userList(){
  16. String sql = "select * from user ";
  17. List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
  18. return maps;
  19. }
  20. //新增一个用户
  21. @GetMapping("/add")
  22. public String addUser(){
  23. //插入语句,注意时间问题
  24. String sql = "insert into user(id,name,pwd) values (10,'cze','123456')";
  25. jdbcTemplate.update(sql);
  26. //查询
  27. return "addOk";
  28. }
  29. //修改用户信息
  30. @GetMapping("/update/{id}")
  31. public String updateUser(@PathVariable("id") int id){
  32. //插入语句
  33. String sql = "update employee set last_name=?,email=? where id="+id;
  34. //数据
  35. Object[] objects = new Object[2];
  36. objects[0] = "涛";
  37. objects[1] = "1453201694@qq.com";
  38. jdbcTemplate.update(sql,objects);
  39. //查询
  40. return "updateOk";
  41. }
  42. //删除用户
  43. @GetMapping("/delete/{id}")
  44. public String delUser(@PathVariable("id") int id){
  45. //插入语句
  46. String sql = "delete from employee where id=?";
  47. jdbcTemplate.update(sql,id);
  48. //查询
  49. return "deleteOk";
  50. }
  51. }

5.小结

看到这里,我觉得可以放弃小黑鸟了,直接用原生的sql语句也是很方便的,毕竟都有现成的工具类。

发表评论

表情:
评论列表 (有 0 条评论,82人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JDBC封装

    目录 JDBC封装的步骤: 1、在src里面创建一个文件,命名为:database.properties 2、定义实体类:实体类的表名与数据库的表名一致,表中大每一列为实

    相关 JDBC使用和封装

    > 本文章主要描述的是如何使用JDBC,以及对JDBC的进行封装。主要的目的是降低代码的重复性,提高代码复用性。本文章通过四个版本来对JDBC进行封装。在了解JDBC如何使用的

    相关 如何封装JDBC

    如何封装JDBC -------------------- 前言:封装JDBC需要用到properties类的知识,如果不懂这块知识的可以查阅我之前写的blog。 -