Spring对持久层技术支持
  JDBC : org.springframework.jdbc.core.JdbcTemplate
  Hibernate3.0 : org.springframework.orm.hibernate3.HibernateTemplate
  IBatis(MyBatis) : org.springframework.orm.ibatis.SqlMapClientTemplate
  JPA : org.springframework.orm.jpa.JpaTemplate
开发JDBCTemplate入门
  第一步:引入相应jar包
    spring-tx-3.2.0.RELEASE.jar
    spring-jdbc-3.2.0.RELEASE.jar
    mysql驱动.
  第二步:编写一个测试类

@Test
public void demo1(){
  // 创建连接池:
  DriverManagerDataSource dataSource = new DriverManagerDataSource();
  // 设置参数:
  dataSource.setDriverClassName("com.mysql.jdbc.Driver");
  dataSource.setUrl("jdbc:mysql:///spring3_day02");
  dataSource.setUsername("root");
  dataSource.setPassword("123");
  // 使用JDBC的模板:
  JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
  jdbcTemplate.execute("create table user (id int primary key auto_increment,name varchar(20))");
}

配置连接池
  Spring默认的连接池

<!-- 配置Spring默认的连接池 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql:///spring3_day02"/>
  <property name="username" value="root"/>
  <property name="password" value="123"/>
</bean>
<!-- 定义jdbctemplate -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  <property name="dataSource" ref="dataSource"/>
</bean>

    测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringTest1 {
  @Autowired
  @Qualifier("jdbcTemplate")
  private JdbcTemplate jdbcTemplate;
  @Test
  public void demo2(){
    jdbcTemplate.execute("create table user (id int primary key auto_increment,name varchar(20))");
  }
}

  

  DBCP连接池
    导入jar包
      com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
      com.springsource.org.apache.commons.pool-1.5.3.jar

<!-- 配置DBCP连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql:///spring3_day02"/>
  <property name="username" value="root"/>
  <property name="password" value="123"/>
</bean>

  C3P0连接池
    导入jar包
      com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar

<!-- 配置c3p0连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  <property name="jdbcUrl" value="jdbc:mysql:///spring3_day02"/>
  <property name="user" value="root"/>
  <property name="password" value="123"/>
</bean>

参数设置到属性文件中
  在src下创建jdbc.properties

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql:///spring3_day02
jdbc.user = root
jdbc.password = 123

  需要在applicationContext.xml 中使用属性文件配置的内容.
    第一种写法

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location" value="classpath:jdbc.properties"></property>
</bean>

    第二种写法(需要引入context标签的头)

<context:property-placeholder location="classpath:jdbc.properties"/>

    案例

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd">
  <!--
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="location" value="classpath:jdbc.properties"></property>
     </bean>
  -->
  <context:property-placeholder location="classpath:jdbc.properties"/>
  <!-- 配置c3p0连接池 -->
  <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driver}"/>
    <property name="jdbcUrl" value="${jdbc.url}"/>
    <property name="user" value="${jdbc.user}"/>
    <property name="password" value="${jdbc.password}"/>
  </bean>
  <!-- 定义jdbctemplate -->
  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"/>
  </bean>
</beans>

JdbcTemplate的CRUD的操作
  Spring框架中提供了对持久层技术支持的类
    JDBC : org.springframework.jdbc.core.support.JdbcDaoSupport
    Hibernate 3.0 : org.springframework.orm.hibernate3.support.HibernateDaoSupport
    iBatis : org.springframework.orm.ibatis.support.SqlMapClientDaoSupport

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd">
  <context:property-placeholder location="classpath:jdbc.properties"/>
  <!-- 配置c3p0连接池 -->
  <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="${jdbc.driver}"/>
    <property name="jdbcUrl" value="${jdbc.url}"/>
    <property name="user" value="${jdbc.user}"/>
    <property name="password" value="${jdbc.password}"/>
  </bean>
  <!-- 定义jdbctemplate -->
  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"/>
  </bean>
  <bean id="userDao" class="cn.yzu.spring3.demo2.UserDao">
    <property name="jdbcTemplate" ref="jdbcTemplate"/>
  </bean>
</beans>
public class UserDao extends JdbcDaoSupport{
  public void add(User user){
    String sql = "insert into user values (null,?)";
    this.getJdbcTemplate().update(sql, user.getName());
  }
  public void update(User user){
    String sql = "update user set name = ? where id = ?";
    this.getJdbcTemplate().update(sql, user.getName(),user.getId());
  }
  public void delete(User user){
    String sql = "delete from user where id = ?";
    this.getJdbcTemplate().update(sql, user.getId());
  }
  public int findCount(){
    String sql = "select count(*) from user";
    return this.getJdbcTemplate().queryForInt(sql);
  }
  public String findNameById(int id){
    String sql = "select name from user where id = ?";
    return this.getJdbcTemplate().queryForObject(sql, String.class, id);
  }
  public User findById(int id){
    String sql = "select * from user where id = ?";
    User user = this.getJdbcTemplate().queryForObject(sql, new UserRowMapper(), id);
    return user;
  }
  public List<User> findAll(){
    String sql = "select * from user";
    return this.getJdbcTemplate().query(sql, new UserRowMapper());
  }
  class UserRowMapper implements RowMapper<User>{
    /**
    * rs:结果集.
    * rowNum:行号
    */
    public User mapRow(ResultSet rs, int rowNum) throws SQLException {
      User user = new User();
      user.setId(rs.getInt("id"));
      user.setName(rs.getString("name"));
      return user;
    }
  }
}

Spring的JDBC模板的更多相关文章

  1. Spring的jdbc模板1

    Spring是EE开发的一站式框架,有EE开发的每一层解决方案.Spring对持久层也提供了解决方案:ORM模块和jdbc模块,ORM模块在整合其他框架的时候使用 Spring提供了很多的模板用于简化 ...

  2. Java学习笔记43(Spring的jdbc模板)

    在之前的学习中,我们执行sql语句,需要频繁的开流,关流比较麻烦,为了更加的简化代码,我们使用Spring 的jdbc模板jdbcTemplate来简化我们的代码量:需要导入的包有: 我们在之前的dr ...

  3. 四、spring的JDBC模板和事务管理

    Spring的JDBC模板 Spring是JavaEE开发的一站式框架,对各种持久化技术都提供了简单的模板 ORM持久化技术 模板类 JDBC org.springframework.jdbc.cor ...

  4. Spring的jdbc模板3:完成CURD操作

    测试类代码如下 package zcc.spring_jdbc.demo2; import java.sql.ResultSet; import java.sql.SQLException; impo ...

  5. Spring的jdbc模板2:使用开源的连接池

    上篇简要介绍了如何在spring中配置默认的连接池和jdbc模板,这篇来介绍开源的连接池配置与属性引入 C3P0连接池配置: 引入jar包 配置c3p0连接池 <?xml version=&qu ...

  6. java框架之Spring(3)-JDBC模板使用&事务管理

    下面内容使用到的 jar 包下载 JDBC模板使用 入门 1.导包,如要导入 Spring 的基本开发包.数据库驱动包.Spring 提供的 JDBC 模板包,如下: 2.测试: @Test publ ...

  7. 十八 Spring的JDBC模板:引入外部属性文件

    配置外部属性文件 配置文件里引入属性文件,两种方式 第一种: 第二种: 引入属性文件的值: 测试: <?xml version="1.0" encoding="UT ...

  8. Spring之JDBC模板jdbcTemplate

    要使用Jdbctemplate 对象来完成jdbc 操作.通常情况下,有三种种方式得到JdbcTemplate 对象.           第一种方式:我们可以在自己定义的DAO 实现类中注入一个Da ...

  9. Spring框架的JDBC模板技术和事物

    Spring框架的JDBC模板技术         技术分析之Spring框架的JDBC模板技术概述  1. Spring框架中提供了很多持久层的模板类来简化编程,使用模板类编写程序会变的简单     ...

随机推荐

  1. CentOS7下默认目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用默认目录安装mono+jexus教程,使用自定义目录请查看使用自定义目录安 ...

  2. JEECG 社区开源项目下载(总览)

    反馈问题板块:http://www.jeecg.org/forum.php?mod=forumdisplay&fid=153 资源1: JEECG 微云快速开发平台( JEECG 3.6.5  ...

  3. 安装出现了error launching installer

    安装geany时,出现问题: 两种解决方法: 解决的办法是: 在控制面板中寻找"区域.语言设置"--管理--更改系统区域设置--中文(简体.中国),确定退出即可! 但是....我不 ...

  4. ps命令

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  5. H5案例分享:JS手势框架 —— Hammer.js

    JS手势框架 -- Hammer.js 一.hammer.js简介 hammerJS是一个开源的,轻量级的触屏设备javascript手势库,它可以在不需要依赖其他东西的情况下识别触摸,鼠标事件.允许 ...

  6. Java性能调优之:idea变慢解决

    今天搬砖的时候遇到一个问题,idea总是卡死,完全无法愉快的玩耍.幸好机器是Linux系统的.于是通过以下方式解决了问题: 通过top命令,查看系统运行状态发现4个CPU中有1个CPU用户占用率为10 ...

  7. 本地数据Store。Cookie,Session,Cache的理解。Timer类主要用于定时性、周期性任务 的触发。刷新Store,Panel

    本地数据Store var monthStore = Ext.create('Ext.data.Store', { storeId : 'monthStore', autoLoad : false, ...

  8. awk命令和grep命令的使用

    1.遇到需求:用ping命令去检测系统网络延迟 跑 ping baidu.com -c 3,想要直接得到平均延迟. ping baidu.com -c 3 | grep rtt | awk -F \/ ...

  9. word20161220

    S/MIME, Secure Multipurpose Internet Mail Extensions / 安全多用途网际邮件扩展协议 SACL, system access control lis ...

  10. TJpgDec使用说明

    TJpgDec模块应用说明 [TOC] 怎么使用 首先,你应该构建和运行如下所示示例程序.这是一个典型的使用TJpgDec模块,它有助于调试和缩小问题. 解码会话分为两个阶段.第一阶段是分析JPEG图 ...