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. Codeforces Round #267 (Div. 2) B. Fedor and New Game

    After you had helped George and Alex to move in the dorm, they went to help their friend Fedor play ...

  2. 汇率换算自然语言理解功能JAVA DEMO

    >>>>>>>>>>>>>>>>>>>>>>>> 欢迎转 ...

  3. shiro框架的使用

    1.配置二级缓存 <ehcache updateCheck="false" name="shiroCache"> <defaultCache ...

  4. Linux命令之ln软链接

    用途:链接文件 默认情况下,ln命令产生硬链接. 最常用的参数是-s(建立符号连接Symbolic Link,也叫软连接),具体用法是: ln-s 源文件 目标文件 当我们需要在不同的目录用到相同的文 ...

  5. Android自动折行TextView Group

    package com.test.testview; import java.util.ArrayList; import android.content.Context; import androi ...

  6. 面向对象基础——String类

    String类的两种实例化方法  A:直接赋值 public class StringDemo01{ public static void main(String args[]){ String na ...

  7. 《MySQL必知必会学习笔记》:子查询

    子查询 在開始了解子查询之前,首先做下准备工作,建立3个表, 一个是customers表,当中包含:客户名字.客户ID.客户Tel等. 一个是orders表,当中包含:订单号.客户ID.订单时间等. ...

  8. EasyDarwin流媒体云平台:EasyCamera开源摄像机接入海康威视摄像机实时视频

    本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/52755298 EasyCamera接收云平台实时 ...

  9. EasyDarwin开源流媒体服务器高性能设计之无锁队列

    本文来自EasyDarwin团队Fantasy(fantasy(at)easydarwin.org) 一. EasyDarwin任务队列实现 EasyDarwin的任务队列是通过OSQueue类来组织 ...

  10. Parallel Tests

    Parallel Tests Parallel Android Tests Appium provides a way for users to automate multiple Android s ...