博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring的JDBC Template
阅读量:7005 次
发布时间:2019-06-28

本文共 5808 字,大约阅读时间需要 19 分钟。

Spring的JDBC Template(JDBC模板)简化JDBC API开发,使用上和Apache公司的DBUtils框架非常类似)

快速入门实例

1、创建项目后,导入Spring基础核心开发包、数据库驱动包以及日志记录相关包

导入JDBC模板开发包:spring-jdbc-3.2.7.RELEASE.jar、spring-tx-3.2.7.RELEASE.jar以及mySql的驱动

2、创建applicationContext.xml

3、编写一个测试类

package com.js.demo1;import org.junit.Test;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.datasource.DriverManagerDataSource; public class SpringJDBCTemplateTest {        @Test    public void demo1(){                //创建连接池,这里使用的是Spring自带的连接池        DriverManagerDataSource dataSource = new DriverManagerDataSource();        //设置参数        dataSource.setDriverClassName("com.mysql.jdbc.Driver");        dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/springjdbc");        dataSource.setUsername("root");        dataSource.setPassword("123456");                //使用JDBC的模板,传入DataSource,带参构造器或者setter方法均可        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);        jdbcTemplate.execute("create table user (id int primary key auto_increment,name varchar(20))");        System.out.println("创建 table user...");    }}

默认连接池、DBCP连接池、C3P0池的配置

1、在src目录下新建属性文件,文件名任意,我这里取jdbc.properties,文件前后不能有多余空格。

2、将参数写入属性文件中,属性名可以任意,但是不能和连接池的默认属性冲突,比如C3P0连接池赋值为user的不能是${jdbc.username}:

jdbc.driver = com.mysql.jdbc.Driverjdbc.url = jdbc:mysql://127.0.0.1:3306/springjdbc?characterEncoding=utf-8jdbc.name = rootjdbc.password = 123456

设置参数到属性文件的两种方式

1、默认连接池,实现类 DriverManagerDataSource

1、导入JDBC模板开发包:spring-jdbc-3.2.7.RELEASE.jar、spring-tx-3.2.7.RELEASE.jar以及mySql的驱动

2、配置Spring默认连接池以及JDBC模板类

<!-- 第1种,配置属性文件:配置bean,暂时注释 -->

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

<!-- 第2种,配置属性文件:引入context约束,然后解析属性文件 -->

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

3、编写测试类

package com.js.demo1;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * 默认连接池配置测试 *  * @author hdb */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")public class DefaultDataSourceTest {        @Autowired    @Qualifier("defaultJdbcTemplate")    private JdbcTemplate jdbcTemplate;        @Test    public void demo2(){        jdbcTemplate.execute("create table user1 (id int primary key auto_increment,name varchar(20))");        System.out.println("创建 table user1...");    }}

2、DBCP数据源 BasicDataSource 

1、导入JDBC模板开发包:spring-jdbc-3.2.7.RELEASE.jar、spring-tx-3.2.7.RELEASE.jar、commons-dbcp-1.4.jar、commons-pool-1.6.jar以及mySql的驱动

2、配置DBCP连接池

<!-- 第1种,配置属性文件:配置bean,暂时注释 -->

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

<!-- 第2种,配置属性文件:引入context约束,然后解析属性文件 -->

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

3、编写测试类

package com.js.demo1;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * DBCP连接池配置测试 * @author hdb * */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")public class DbcpDataSourceTest {        @Autowired    @Qualifier("dbcpJdbcTemplate")    private JdbcTemplate jdbcTemplate;        @Test    public void demo2(){        jdbcTemplate.execute("create table user2 (id int primary key auto_increment,name varchar(20))");        System.out.println("创建 table user2...");    }}

3、C3P0数据源 ComboPooledDataSource(重点掌握)

1、导入JDBC模板开发包:spring-jdbc-3.2.7.RELEASE.jar、spring-tx-3.2.7.RELEASE.jar、com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar以及mySql的驱动

2、配置C3P0连接池

<!-- 第1种,配置属性文件:配置bean,暂时注释 -->

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

<!-- 第2种,配置属性文件:引入context约束,然后解析属性文件 -->

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

3、编写测试类

package com.js.demo1;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * C3P0连接池配置测试 * @author hdb * */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")public class C3p0DataSourceTest {        @Autowired    @Qualifier("C3p0JdbcTemplate")    private JdbcTemplate jdbcTemplate;        @Test    public void demo2(){        jdbcTemplate.execute("create table user3 (id int primary key auto_increment,name varchar(20))");        System.out.println("创建 table user3...");    }}

转载于:https://www.cnblogs.com/huangdabing/p/9484954.html

你可能感兴趣的文章
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix
查看>>
JAVA获取DLL文件版本
查看>>
mac下sphinx写rst文档
查看>>
网页后门工具laudanum
查看>>
基础正则表达式练习
查看>>
《中级perl》笔记 - 1, 热身运动
查看>>
如何检查内存泄露问题
查看>>
CentOS6.5搭建NFS服务器
查看>>
回归概念及与相关分析的联系
查看>>
PLS-00201: ORA-20000:
查看>>
jQuery POST返回的JSON数据格式
查看>>
打开Lync 2013停止工作解决方法
查看>>
TCP协议与UDP协议的区别
查看>>
JQuery的Ajax跨域请求的解决方案
查看>>
在linux下连接windows远程桌面
查看>>
sql优化小技巧
查看>>
浅谈Linux内存管理机制
查看>>
[教程]使用buildroot完全自定义自己的embedded linux系统(nand)
查看>>
关于Android ListView组件中android:drawSelectorOnTop含义(
查看>>
RN | cocoapods接入rn
查看>>