微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringBoot整合JDBC、Druid数据源的示例代码

这篇文章主要介绍了SpringBoot整合JDBC、Druid数据源,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

目录

1.SpringBoot整合JDBCTemplate

1.1.导入jdbc相关依赖包

1.2.yaml配置数据源

2.SpringBoot整合DruidDataSource

2.1.Druid简介

2.2.导入Druid相关依赖

1.SpringBoot整合JDBCTemplate

1.1.导入jdbc相关依赖包

主要的依赖包:

org.springframework.bootspring-boot-starter-jdbcMysqLmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-web

1.2.yaml配置数据源

application.yml用于连接jdbc数据库操作数据源配置,这里是最简化的配置:

spring: datasource: username: root password: admin #假如时区报错,增加时区配置serverTimezone=UTC,以及编码配置 url: jdbc:MysqL://localhost:3306/mybatis02_0322?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.MysqL.cj.jdbc.Driver

实际开发过程中基本上会与Druid、C3P0整合,下面也给出了整合Druid数据源相关的配置,所以这里一并放上完整的application.yml配置

spring: datasource: username: root password: admin #假如时区报错,增加时区配置serverTimezone=UTC url: jdbc:MysqL://localhost:3306/mybatis02_0322?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.MysqL.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource #springboot 认是不注入这些属性值的,需要自己绑定 #druid 数据源专有配置 initialSize: 5 minIdle: 5 maxActive: 20 maxWait: 60000 timeBetweenevictionRunsMillis: 60000 minevictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防止sql注入 #如果允许时报错:java.lang.classNotFoundException:org.apache.log4j.Priority #则导入 log4j 依赖即可,maven地址:https://mvnrepository.com/artifact/log4j/log4j filters: stat,wall,log4j maxPoolPreparedStatementPerConnectionSize: 20 useglobalDataSourceStat: true connectionProperties: druid.stat.mergesql=true;druid.stat.slowsqlMillis=500

最后测试一下数据库连接访问是否成功:

@SpringBoottest class SpringbootDataApplicationTests { @Autowired private DataSource dataSource; @Test void testConnection() throws sqlException { System.out.println(dataSource.getClass()); Connection connection = dataSource.getConnection(); System.out.println(connection); } }

打印成功,显示获取到了数据源信息:

1.3.界面访问接口测试

@RestController public class JDBCController { @Autowired private JdbcTemplate jdbcTemplate; @RequestMapping("/queryList") public List> query() { String sql = "select * from user"; List> queryForList = jdbcTemplate.queryForList(sql); return queryForList; } @RequestMapping("/addUser") public String AddUser(){ String sql = "insert into mybatis02_0322.user(id, username, password) values(4, '李磊', '654321')"; int update = jdbcTemplate.update(sql); return "AddUser Ok"; } @RequestMapping("/update/{id}") public String update(@PathVariable("id") Integer id){ String sql = "update mybatis02_0322.user set username = ?, password = ? where id = " + id; Object[] objects = new Object[2]; objects[0] = "测试哈哈哈111"; objects[1] = "32321"; int update = jdbcTemplate.update(sql, objects); return "updateUser Ok"; } @RequestMapping("/delete/{id}") public String delete(@PathVariable("id") Integer id){ String sql = "delete from mybatis02_0322.user where id = " + id; int update = jdbcTemplate.update(sql); return "delete Ok"; } }

这里对应接口请求页面进行请求测试即可,后台数据库层面进行验证,比较简单,这里就不一一细说,对应可以去看我的源码。

2.SpringBoot整合DruidDataSource

2.1.Druid简介

Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优秀实践,同时加入了日志监控。

Druid可以很好地监控DB池连接和sql的执行情况,是天生针对监控的DB连接池。

SpringBoot2.0以上认使用Hikari数据源,可以说HiKari和Druid都是当前Java Web上开源的优秀数据源。

2.2.导入Druid相关依赖

对应pom.xml文件

com.alibabadruid1.2.3log4jlog4j1.2.17

2.3.配置Druid并使用监控页面

①编写DruidConfig类,启用后台监控功能Bean以及过滤器Bean:

@Configuration public class DruidConfig { @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druidDataSource(){ return new DruidDataSource(); } //后台监控功能 @Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); //后台需要有人登陆,账号密码配置 HashMap initParameters = new HashMap(); initParameters.put("loginUsername", "admin"); //登陆key,是固定的 loginUsername loginPassword initParameters.put("loginPassword", "123456"); //允许谁可以访问 initParameters.put("allow", ""); //禁止谁可以访问 initParameters.put("fengye", "192.168.1.10"); bean.setinitParameters(initParameters); //设置初始化参数 return bean; } //过滤器 @Bean public FilterRegistrationBean webStatFilter(){ FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); HashMap initParameters = new HashMap(); //这些不进行统计 initParameters.put("exclusions", "*.js,*.css,/druid/*"); bean.setinitParameters(initParameters); return bean; } }

启动页面访问Druid并测试请求访问sql

博客写作参考文档相关:

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter

https://www.yuque.com/atguigu/springboot/aob431#wtNk1

Spring Boot 2 学习笔记(上):https://blog.csdn.net/u011863024/article/details/113667634

Spring Boot 2 学习笔记(下):

https://blog.csdn.net/u011863024/article/details/113667946

示例代码上传至Github地址:

https://github.com/devyf/SpringBoot_Study

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐