如何使用spring整合JDBC2014-11-22使用Spring提供的三个JDBC模板类(JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate)操作数据库一、JdbcTemplate是Spring中最基本的JDBC模板, 利用JDBC和简单的索引参数查询对数据库进行简单访问二、NamedParameterJdbcTemplate能够在查询的时候把值绑定到SQL里的命名参数,而不是索引参数NamedParameterJdbcTemplate内部包含了一个JdbcTemplate,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干;NamedParameterJdbcTemplate相对于JdbcTemplate主要增加了参数可以命名的功能。三、SimpleJdbcTemplate利用Java5的特性,比如自动装箱、通用和可变参数列表来简化JDBC模板的使用SimpleJdbcTemplate内部包含了一个NamedParameterJdbcTemplate;所以NamedParameterJdbcTemplate能做的事情SimpleJdbcTemplate都能干,SimpleJdbcTemplate相对于NamedParameterJdbcTemplate主要增加了JDK5.0的泛型和可变长度参数支持。1、使用JDBC TemplateJdbcTemplate是一个辅助类,封装了JDBC的操作,直接使用JdbcTemplate很简单~Template只依赖于数据源。本例子使用的DriverManagerDataSource,是一个“伪”数据源,只是模拟了形式,并没事实现数据源的功能。
DriverManagerDataSource ds = new DriverManagerDataSource();ds.setDriverClassName("com.mysql.jdbc.Driver");ds.setUrl("jdbc:mysql://localhost:3306/sampledb");ds.setUsername("root");ds.setPassword(""); JdbcTemplate jdbc = new JdbcTemplate();jdbc.setDataSource(ds);String sql = "create table t_user1(user_id int primary key,user_name varchar(60))";jdbc.execute(sql);
2、JdbcDaoSupport,&& 让Spring JDBC更“Spring”如果在代码中反复声明JdbcTemplate,代码会被污染的很严重,那和JDBC没区别了就~所以Spring提供了JdbcDaoSupport,所有DAO继承这个类,就会自动获得JdbcTemplate(前提是注入DataSource)。另外:Spring的xml配置可以很好的用在这里,在xml中配置,基本流程如下:(1)声明DataSrouce的Bean,这里用BasicDataSource,就是DBCP数据源(Tomcat用的那个)(2)声明模板JdbcTemplate的Bean,并把DataSource注入之(3)声明Dao,class为集成自JdbcDaoSupport的东西,并注入JdbcTemplate。上述Bean生成过程可以用Spring IDE……相当的方便。别的不说了,Code。applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" abstract="false" lazy-init="default" autowire="default" dependency-check="default" destroy-method="close"> <property name="driverClassName"><value>com.mysql.jdbc.Driver</value> </property> <property name="url"><value>jdbc:mysql://localhost:3306/sampledb</value> </property> <property name="username"><value>root</value> </property> <property name="password"><null/> </property></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource"><ref bean="dataSource"/> </property></bean><bean id="Dao" abstract="true"> <property name="jdbcTemplate"><ref bean="jdbcTemplate"/> </property></bean><bean id="forumDAO" class="dao.jdbc.ForumDAO" parent="jdbcTemplate" abstract="false" lazy-init="default" autowire="default" dependency-check="default"></bean></beans>ForumDAOpackage dao.jdbc;import org.springframework.jdbc.core.support.JdbcDaoSupport;public class ForumDAO extends JdbcDaoSupport { public void initDb() {String sql = "create table t_user1(user_id int primary key,user_name varchar(60))";getJdbcTemplate().execute(sql); }}Mainimport org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.datasource.DriverManagerDataSource;public class Main {public static void main(String args[]){ DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/sampledb"); ds.setUsername("root"); ds.setPassword(""); JdbcTemplate jdbc = new JdbcTemplate(); jdbc.setDataSource(ds); String sql = "create table t_user1(user_id int primary key,user_name varchar(60))"; jdbc.execute(sql);}}作者:csdn博客 跬步小流