Spring中JdbcTemplate的基础用法

1、在DAO中使用JdbcTemplate

一般都是在DAO类中使用JdbcTimplate,在XML配置文件中配置好后,可以在DAO中注入即可。

在Spring配置文件中配置DAO一般分为4个步骤:

1、定义DataSource

2、定义JdbcTimplate

3、声明一个抽象的<bean>,以便所有的DAO复用配置JdbcTimplate属性的配置

4、配置具体的DAO

 1  <!-- 配置事务管理器 --><!-- 扫描类包,将标注Spring注解的类自动转化Bean,同时完成Bean的注入 -->
2 <context:component-scan base-package="com.smart.dao"/>
3
4 <!-- 配置数据源 -->
5 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
6 destroy-method="close"
7 p:driverClassName="${jdbc.driverClassName}"
8 p:url="${jdbc.url}"
9 p:username="${jdbc.name}"
10 p:password="${jdbc.password}" />
11
12 <!-- 配置Jdbc模板 -->
13 <!--JdbcTemplate 拥有几个可用于控制底层的JDBC API的属性
14 queryTimeout: 设置JdbcTimplate所创建的Statement查询数据时的最大超时时间,默认0
15 fetchSize: 设置底层的ResultSet每次从数据库返回的行数。该属性对程序的影响很大,如果设置过大,
16 因为一次性载入的数据都放到内存中,所以内存消耗很大;反之相反。默认为0,Oracle驱动程序的默认值为10
17 maxRows: 设置底层的ResultSet从数据库返回的最大行数,默认值为0。
18 ignoreWarnings:是否忽略SQL的警告信息。默认true,即所有的警告信息都被记录到日志中;
19 如果为false,则JdbcTemplate将抛出SQLWarningException.
20 -->
21 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"
22 p:dataSource-ref="dataSource" />

按照相同的方式可以方便的创建其他的DAO类,在Spring配置文件中定义JdbcTemplate并注入每个DAO中

 1 package com.smart.dao;
2
3 import org.springframework.beans.factory.annotation.Autowired;
4 import org.springframework.jdbc.core.JdbcTemplate;
5 import org.springframework.stereotype.Repository;
6
7 @Repository
8 public class TestDao {
9 private JdbcTemplate jdbcTemplate;
10 @Autowired
11 public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
12 this.jdbcTemplate = jdbcTemplate;
13 }
14 public void initDb(){
15 String sql = "create table test_user(user_id int primary key,user_name varchar(60))";
16 jdbcTemplate.execute(sql);
17 }
18 }

2、更改数据

 1 public void Insert(User user){
2 String sql = "INSERT INTO test_user(user_id,user_name) VALUES(?,?)";
3 /*
4 1、int update(String sql) 为不提供占位符的SQL语句提供便利
5 2、int update(String sql,Object[] args) 第二个参数定义了用于填充占位符的参数数组,即SQL语句中的?
6 3、int update(String sql,PreparedStatementSetter pss):PreparedStatementSetter是一个回调接口,
7 它定义了一个void setValues(PreparedStatement ps)接口方法。JdbcTemplate使用SQL语句创建出
8 PreparedStatement实例后,将调用接口执行参数绑定。
9 jdbcTemplate.update(sql,new PreparedStatementSetter(){
10 public void setValues(PreparedStatement ps) throws SQLException{
11 ps.setInt(1,user.getUserId());
12 ps.setString(2,user.getUserName());
13 }
14 });
15 4、如下,在2的基础上添加了第三个参数数组,用于显式的指定每个占位符所对应的字段数据类型
16 */
17 Object [] params = new Object[] {user.getUserId(),user.getUserName()};
18 jdbcTemplate.update(sql,params,new int[]{Types.INTEGER,Types.VARCHAR});
19 }

User.class

 1 public class User implements Serializable{
2
3 private int userId;
4 private String userName;
5 public int getUserId() {
6 return userId;
7 }
8 public void setUserId(int userId) {
9 this.userId = userId;
10 }
11 public String getUserName() {
12 return userName;
13 }
14 public void setUserName(String userName) {
15 this.userName = userName;
16 }
17
18 }

Spring中JdbcTemplate的基础用法的更多相关文章

  1. Spring 中jdbcTemplate 实现执行多条sql语句

    说一下Spring框架中使用jdbcTemplate实现多条sql语句的执行: 很多情况下我们需要处理一件事情的时候需要对多个表执行多个sql语句,比如淘宝下单时,我们确认付款时要对自己银行账户的表里 ...

  2. spring 中配置sessionFactory及用法

    spring 中配置sessionFactory及用法 方法一: 1.在Spring的applicationContext.xml中配置bean <!-- 启用注解注入  -->      ...

  3. 全面解析Spring中@ModelAttribute注解的用法

    本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:全面解析Spring中@ModelAttribute注解的用法: @ModelAttribute注解用于将方法的参数或方法的返回值绑定到 ...

  4. 【sping揭秘】19、关于spring中jdbctemplate中的DataSource怎么来呢

    我们这是可以正好借助之前学的factorybean类,自己吧jdbctemplate加载到spring容器中,我们可以封装多个这种对象,那么可以实现针对不同的数据库的jdbctemplate 首先我们 ...

  5. 2018.12.25 Spring中JDBCTemplate模版API学习

    1 Spring整合JDBC模版 1.1 spring中土拱了一个可以操作数据库的对象.对象封装了jdbc技术 JDBCTemplateJDBC模板对象 1.2 与DBUtils中的QueryRunn ...

  6. Spring中jdbcTemplate的用法实例

    一.首先配置JdbcTemplate: 要使用Jdbctemplate 对象来完成jdbc 操作.通常情况下,有三种种方式得到JdbcTemplate 对象.       第一种方式:我们可以在自己定 ...

  7. SSM-Spring-19:Spring中JdbcTemplate

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- Spring自带一个ORM持久化框架JdbcTemplate,他可以说是jdbc的加强版,但是对最细微的控制肯 ...

  8. Spring中JdbcTemplate中使用RowMapper

    转自:https://blog.csdn.net/u012661010/article/details/70049633 1 sping中的RowMapper可以将数据中的每一行数据封装成用户定义的类 ...

  9. Spring中JDBCTemplate的入门

    Spring是IOC和AOP的容器框架,一站式的框架 连接数据库的步骤:[必须会写] Spring当中如何配置连接数据库? 第一步配置核心配置文件: <?xml version="1. ...

随机推荐

  1. python(23)- 面向对象简单介绍

    面向概述 面向过程:根据业务逻辑从上到下写垒代码 面向过程的设计的核心是过程,过程即解决问题的步骤, 面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西 优点:极大降低了程序的复杂 ...

  2. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?

    C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...

  3. 转载---- 使用opencv源码自己编制android so库的过程

    http://blog.csdn.net/lantishua/article/details/21182965 工作需要,在Android上使用OpenCV.opencv当前的版本(2.4.8)已经有 ...

  4. Android下强制显示ActionBar的overflowbutton

    因为手机硬件情况的不同,在没有物理Menu键的手机上.ActionBar的overflowbutton会有显示不出来的情况,能够通过反射的方式改动ViewConfiguration类中的sHasPer ...

  5. iOS 7 中 StoryBoard 总体缩放

    iOS 7 中 StoryBoard 总体缩放 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用 ...

  6. windows命令大全(转载)

    winver---------检查Windows版本 wmimgmt.msc打开Windows管理体系结构(wmi) wupdmgrWindows更新程序 w脚本Windows脚本宿主设置 write ...

  7. session.use_cookies有什么作用,

    session.use_cookies有什么作用, @ini_set('session.use_cookies', 1);什么意思 若session.use_cookies = 1 sessionid ...

  8. Python笔记——基本数据结构:列表、元组及字典

    转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...

  9. 动态绑定允许我们在程序运行的过程中动态给class加上功能,这在静态语言中很难实现

    https://www.liaoxuefeng.com/wiki/ # 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法, # 这就是动态语言的 ...

  10. ssh key 生成

    1.设置好git的name和email $ git config --global user.name "姓名" $ git config --global user.email ...