SpringData JDBC
Spring的JDBC模板
Spring中提供了一个可以操作数据库的对象,这个对象封装了jdbc技术.这个对象就是JdbcTemplate,它与DBuitls中的QueryRunner很相似.
步骤:
1. 导包
基本4个组件包+2个日志包+c3p0连接池包+数据库驱动包+spring jdbc +spring tx 事务包
2. JDBC模板
public void fun() throws Exception {ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass("com.mysql.jdbc.Driver");dataSource.setJdbcUrl("jdbc:mysql:///test");dataSource.setUser("root");dataSource.setPassword("root");JdbcTemplate jt = new JdbcTemplate(dataSource);String sql = "insert into t_user values(null,'tom')";jt.update(sql);}
复制代码
3. JdbcTemplate的API
- 增删改
@Overridepublic void save(User u) {String sql = "insert into t_user value(null,?)";super.getJdbcTemplate().update(sql, u.getName());}@Overridepublic void delete(Integer id) {String sql = "delete from t_user where id = ?";super.getJdbcTemplate().update(sql, id);}@Overridepublic void update(User u) {String sql = "update t_user set name=? where id =?";super.getJdbcTemplate().update(sql, u.getName(), u.getId());}
复制代码
查询
- 查询的返回值是一个对象
@Overridepublic User find(Integer id) {String sql = "select * from t_user where id =?";User us = super.getJdbcTemplate().queryForObject(sql, new RowMapper<User>() {@Overridepublic User mapRow(ResultSet rs, int arg1) throws SQLException {User user = new User();user.setId(rs.getInt("id"));user.setName(rs.getString("name"));return user;}}, id);return us;}
复制代码
- 查询的返回值是一个整数(聚合函数)
@Overridepublic int findAllRecord() {String sql = "select count(*) from t_user";Integer record = super.getJdbcTemplate().queryForObject(sql, Integer.class);return record;}
复制代码
- 查询的返回值是一个集合
@Overridepublic List<User> findAll() {String sql = "select * from t_user";List<User> list = super.getJdbcTemplate().query(sql, new RowMapper<User>() {@Overridepublic User mapRow(ResultSet rs, int arg1) throws SQLException {User u = new User();u.setId(rs.getInt("id"));u.setName(rs.getString("name"));return u;}});return list;}
复制代码
为了不需要手动准备JDBC模板,我们可以继承一个类,从这个类中的方法中获得即可-JdbcDaoSupport
注意:当我们继承这个类的时候,我们直接调用父类的super.getJdbcTemplate()这个方法,即可获得JdbcTemplate.而配置文件中的依赖也不需要注入JdbcTemplate.我们直接在所要执行方法的对象依赖注入dataSource数据源即可.
public class UserDaoImpl extends JdbcDaoSupport implements UserDao {@Overridepublic void save(User u) {String sql = "insert into t_user value(null,?)";super.getJdbcTemplate().update(sql, u.getName());}<bean name="UserDao" class="madness.dao.UserDaoImpl"><property name="dataSource" ref="dataSource"></property></bean>
复制代码
在实际开发中,因为数据库连接的配置信息可能会经常改动.所以我们使用properties配置文件
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql:///test
jdbc.user=root
jdbc.password=root
复制代码
<bean name="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driverClass}"></property><property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property><property name="user" value="${jdbc.user}"></property><property name="password" value="${jdbc.password}"></property></bean>
复制代码
注意:properties文件中的配置信息,要加上前缀.因为我们的配置信息有可能与spring中的冲突.会导致读取不到我们的配置信息
转载于:https://juejin.im/post/5b7546b26fb9a0099407051e
SpringData JDBC相关推荐
- spring data jdbc 基本使用
文章目录 配置 使用 创建表 创建实体类 创建操作接口Repository 读写数据 总结 官方文档: https://docs.spring.io/spring-data/jdbc/docs/1.0 ...
- jpa 原生sql 查询返回一个实体_spring data系列之jpa
Springdata 系列之spring data jpa 背景:随着互联网技术的发展,现在的企业开发中用到的用于数据存储的产品,不再仅仅是关系型数据库,而是要根据场景需要选择不同的存储技术,比如用于 ...
- 本地部署SpringBootInitializr 【最新版】
本地部署SpringBootInitializr [最新版] 几十年没写东西了,今天记录一个折腾 SpringBootInitializr 这东西不用介绍了, 在这里,git在这里 如果用IDEA或者 ...
- spring boot 整合多数据源JDBC、多数据源mybatis、多数据源springdata jpa
目录 代码地址:(spring-boot github地址) 1.springboot整合JDBC 2.springboot整合mybatis 3.springboot整合springdata jpa ...
- SpringBoot简介、SpringBoot 入门程序搭建、与JDBC、Druid、Mybatis和SpringData JPA的整合
一.SpringBoot 简介: spring boot并不是一个全新的框架,它不是spring解决方案的一个替代品,而是spring的一个封装.所以,你以前可以用spring做的事情,现在用spri ...
- 带你搭一个SpringBoot+SpringData JPA的环境
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家对SpringBoot和Spring Da ...
- 详细介绍springData
1.什么是SpringData? Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库.Map-Reduce 框架.云数据服务等等:另外也包含对 ...
- mvc设计模式现在过时了吗_尚学堂115——设计模式、源码分析以及SpringData
设计模式 什么是设计模式?你是否在你的代码里面使用过任何设计模式? 设计模式是在软件设计中常见问题的通用.可反复使用.多数人知晓的一种解决方案或模板:这些解决方案是在相当长的一段时间内由众多软件开发人 ...
- springboot 引入jdbc驱动_SpringBoot整合jdbc、durid、mybatis详解,数据库的连接就是这么简单...
SpringBoot底层统一采用SpringData处理数据库,这一章主要来讲一下SpringBoot整合jdbc.durid.mybatis的方式. (一)整合jdbc 整合jdbc主要有三步: 1 ...
最新文章
- java 观察者模式
- C#中GDI绘制高质量平滑图形实例
- 常用的HTML标签(超文本标记语言)
- 用多媒体库 Bass.dll 播放 mp3 [15] - 设置与获取播放速度
- mysql统计每周每个学校新增学生数量_深入学习之mysql(四)聚合函数
- 设计模式 C++简单工厂模式
- linux文件目录与磁盘格式,Linux文件、目录与磁盘格式
- 每日一句20191126
- centos 7 install VirtualBox
- html面试要带电脑吗,前端面试巧妙回答浏览器兼容问题
- 全民一起VBA提高篇 第三十二回 Select 简化分枝结构,静态变量坐看沧海桑田
- Java 实现局域网聊天室功能(私聊,群聊)
- SQLServer下载与安装
- protobuf 3.5 java使用介绍(二)
- 服务器中1U、2U、4U指什么?
- 关于sungard和博彦的笔试
- 两本参考书,垒四百块砖的日子
- 最新开放的.Co域名注册向导
- iOS 调试友盟SDK和微信SDK集成后的兼容性
- AI技术如何打造智能客服