JdbcTemplate

1、JdbcTemplate概念及使用

​ a)Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作

​ b)引入相关 jar 包

​ c)在 spring 配置文件配置数据库连接池

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"destroy-method="close"><property name="url" value="jdbc:mysql:///test" /><property name="username" value="root" /><property name="password" value="root" /><property name="driverClassName" value="com.mysql.jdbc.Driver" />
</bean>

​ d)配置 JdbcTemplate 对象,注入 DataSource

<!-- JdbcTemplate 对象 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!--注入 dataSource--><property name="dataSource" ref="dataSource"></property><!--set方式注入-->
</bean>

​ e)创建 service 类,创建 dao 类,在 dao 注入 jdbcTemplate 对象

<!-- 组件扫描 -->
<context:component-scan base-package="com.atguigu"></context:component-scan>
@Service
public class BookService {//注入 dao@Autowiredprivate BookDao bookDao;
}@Repository
public class BookDaoImpl implements BookDao {//注入 JdbcTemplate@Autowiredprivate JdbcTemplate jdbcTemplate;
}

2、JdbcTemplate 操作数据库(添加)

​ a)对应数据库创建实体类

​ b)创建service和dao

​ (1)在 dao 进行数据库添加操作

​ (2)调用 JdbcTemplate 对象里面 update 方法实现添加操作

@Repository
public class BookDaoImpl implements BookDao {//注入 JdbcTemplate@Autowiredprivate JdbcTemplate jdbcTemplate;//添加的方法@Overridepublic void add(Book book) {//1 创建 sql 语句String sql = "insert into t_book values(?,?,?)";//2 调用方法实现Object[] args = {book.getUserId(), book.getUsername(),book.getUstatus()};int update = jdbcTemplate.update(sql,args);System.out.println(update);}
}

3、JdbcTemplate 操作数据库(修改和删除)

//1、修改
@Override
public void updateBook(Book book) {String sql = "update t_book set username=?,ustatus=? where user_id=?";Object[] args = {book.getUsername(), book.getUstatus(),book.getUserId()};int update = jdbcTemplate.update(sql, args);System.out.println(update);
}
//2、删除
@Override
public void delete(String id) {String sql = "delete from t_book where user_id=?";int update = jdbcTemplate.update(sql, id);System.out.println(update);
}
//使用JdbcTemplate 模板所实现的 “增删改” 都是调用了同一个 “update” 方法

4、JdbcTemplate 操作数据库(查询返回某个值)

//查询表记录数
@Override
public int selectCount() {String sql = "select count(*) from t_book";
//queryForObject方法中:第一个参数代表--sql语句;第二个参数代表--返回类型class  Integer count = jdbcTemplate.queryForObject(sql, Integer.class);return count;
}

JdbcTemplate 操作数据库(

5、JdbcTemplate 操作数据库(查询返回对象)

//查询返回对象
@Override
public Book findBookInfo(String id) {String sql = "select * from t_book where user_id=?";//调用方法
/*queryForObject方法中:第一个参数:sql语句第二个参数:RowMapper 是接口,针对返回不同类型数据,使用这个接口里面 实现类 完成数据封装第三个参数:sql 语句值
*/Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);return book;
}

6、JdbcTemplate 操作数据库(查询返回集合)

//所用场景:查询图书列表分页、、
//查询返回集合
@Override
public List<Book> findAllBook() {String sql = "select * from t_book";//调用方法List<Book> bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));return bookList;
}

7、JdbcTemplate 操作数据库(批量操作)

//批量添加
@Override
public void batchAddBook(List<Object[]> batchArgs) {String sql = "insert into t_book values(?,?,?)";
//batchUpdate方法 第一个参数:sql语句      第二个参数:List集合,添加多条记录数据int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);System.out.println(Arrays.toString(ints));
}//批量添加测试
List<Object[]> batchArgs = new ArrayList<>();
Object[] o1 = {"3","java","a"};
Object[] o2 = {"4","c++","b"};
Object[] o3 = {"5","MySQL","c"};
batchArgs.add(o1);
batchArgs.add(o2);
batchArgs.add(o3);
//调用批量添加
bookService.batchAdd(batchArgs);

8、JdbcTemplate 实现批量修改操作

//批量修改(同批量添加一样,调用同一个方法)
@Override
public void batchUpdateBook(List<Object[]> batchArgs) {String sql = "update t_book set username=?,ustatus=? where user_id=?";int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);System.out.println(Arrays.toString(ints));
}

在spring中使用JdbcTemplate进行数据库管理操作相关推荐

  1. spring中的JdbcTemplate——JdbcTemplate的最基本用法

    spring中的JdbcTemplate JdbcTemplate的作用: 它就是用于和数据库交互的,实现对表的CRUD操作 JdbcTemplate 概述 它是 spring 框架中提供的一个对象, ...

  2. java day60【 Spring 中的 JdbcTemplate[会用] 、Spring 中的事务控制 、Spring5 的新特性[了解] 】...

    第1章 Spring 中的 JdbcTemplate[会用] 1.1JdbcTemplate 概述 1.2JdbcTemplate 对象的创建 1.3spring 中配置数据源 1.3.1 环境搭建 ...

  3. 一篇文章带你学会 Spring 中的 JdbcTemplate 增删改查操作

    文章目录 一.JdbcTemplate 概述 二.配置数据源 三.bean.xml配置文件 四.JdbcTemplate简单示例 五.批量操作多条记录 一.JdbcTemplate 概述 它是 spr ...

  4. spring中的JdbcTemplate的使用方法

    在没有使用mybatis框架之前,通常是用原始的方法编写持久层代码,但即便有jdbcutil工具类,开发效率也非常的低,那么spring为我们提供了JdbcTemplate类,能快速的开发持久层的代码 ...

  5. Spring中使用JdbcTemplate和HibernateTemplate的数据库操作

    目前我接触到的Spring的数据库操作主要包括两种,主要使用JdbcTemplate和HibernateTemplate.后者用于结合Hibernate操作. 两者都提供了持久层访问模板化,只需要获得 ...

  6. 这些Spring中的设计模式,你都知道吗?

    来自: itxxz.com/a/javashili/tuozhan/2014/0601/7.html 设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆 ...

  7. Spring中的部分设计模式

    目录: 目录 设计模式在应用中遵循六大原则: a.开闭原则 b.里氏代换原则 c.依赖倒转原则 d.接口隔离原则 e.迪米特法则(最少知道原则) f.合成复用原则 设计模式之间的关系图 1.工厂模式( ...

  8. 详解设计模式在Spring中的应用

    设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,螃蟹在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了 ...

  9. spring中的设计模式_面试官:来给我说一下 Spring 中使用了哪些设计模式?

    文章来源:itxxz.com/a/javashili/tuozhan/2014/0601/7.html 导读:设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直 ...

最新文章

  1. Ubuntu 之linux与windows互传文件
  2. python 字符串,字符串运算,比较,索引,切片等
  3. Leetcode 211. 添加与搜索单词 - 数据结构设计 解题思路及C++实现
  4. html页面渲染vue组件,Vue组件页面渲染的基本流程
  5. 设计模式之装饰者模式(一)
  6. 串口接收中断配置过程---STM32F4--HAL
  7. Spring目录结构和基础JAR包介绍
  8. 猪八戒玉华王:老码农的7项灵魂思考
  9. 晶晶赴约会(信息学奥赛一本通-T1049)
  10. java23中设计模式——行为模式——Chain of Responsibility(职责链)
  11. 机器学习--组合分类方法之AdaBoost算法
  12. 用计算机弹假面骑士build,假面骑士build使用的武器汇总,你知道几个?
  13. 《网络渗透技术》 强烈推荐
  14. JSON格式转换对象和字符串的转换
  15. vue在线预览word踩坑日记
  16. 基于Levy飞行策略的改进樽海鞘群算法( LECUSSA) Matlab代码
  17. LeetCode每日一题(22年1月27日-2月5日)
  18. linux中硬链接为什么不能跨分区
  19. VirtualBox 调整屏幕分辨率
  20. 国内的服务器的优势就是,国产芯片服务器的优势是什么

热门文章

  1. python np vstack_numpy vstack内部for循环
  2. linux /proc文件系统(1)
  3. 1.2什么是神经网络
  4. HTML5-Tab标签
  5. 为什么jsp的form表单不能跳转_手把手教你实现SEM投放监控转化--表单类
  6. Ubuntu18.04 快捷键和点击图标无法打开终端显示Failed to execute child process “gnome-terminal“
  7. css flex布局 模型(CSS justify-content 属性) - 代码案例
  8. webstorm目录定位(自动定位)当前编辑的文件 - 设置篇
  9. iCMS v8.0.0多终端内容管理系统
  10. linux sipp 呼叫转移_SIPp 学习笔记 一 (安装)