Java Spring-JdbcTemplate
阿新 • • 發佈:2017-11-11
exe mon manage -1 mybatis source context basic 文件
2017-11-10 22:55:45
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
public class Jdbc1 { @Test public void demo(){ // 創建連接池 DriverManagerDataSource dataSource = new DriverManagerDataSource(); // 配置參數 dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/testdb"); dataSource.setUsername("root"); dataSource.setPassword("hy1102"); // 使用Jdbc模板 JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); jdbcTemplate.execute("create table user2 (id int primary key auto_increment,name varchar(20))"); } }
顯然每次在程序中用代碼創建連接池是很不方便的,於是我們可以使用Spring來幫助我們對這個類進行配置。
常用的數據源有三種:
- spring數據源實現類,DriverManagerDataSource;
- DBCP數據源,BasicDataSource;
- C3P0數據源,ComboPooledDataSource;
一、DriverManagerDataSource的配置
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--配置連接池--> <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/testdb"/> <property name="username" value="host"/> <property name="password" value="hy1102"/> </bean> <!--定義模板--> <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="datasource"/> </bean> </beans>
測試類:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:config4.xml") public class Jdbc2 { @Resource(name = "jdbctemplate") private JdbcTemplate jt; @Test public void demo(){ jt.execute("..."); } }
二、DBCP數據源,BasicDataSource的配置
首先需要引入兩個jar包,也就是commons.dbcp 和 commons.pool。和上一種方法略有區別,但差別很小。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--配置連接池--> <!--<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">--> <!--<property name="driverClassName" value="com.mysql.jdbc.Driver"/>--> <!--<property name="url" value="jdbc:mysql://localhost:3306/testdb"/>--> <!--<property name="username" value="host"/>--> <!--<property name="password" value="hy1102"/>--> <!--</bean>--> <!-- 配置DBCP連接池 --> <bean id="datasource" class=" org.apache.commons.dbcp.BasicDataSource "> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/testdb"/> <property name="username" value="host"/> <property name="password" value="hy1102"/> </bean> <!--定義模板--> <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="datasource"/> </bean> </beans>
三、C3P0數據源,ComboPooledDataSource的配置
首先先引入jar包c3p0-0.9.1.2.jar。
C3P0的配置參數和前兩個不太一樣,這個要註意。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--配置連接池--> <!--<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">--> <!--<property name="driverClassName" value="com.mysql.jdbc.Driver"/>--> <!--<property name="url" value="jdbc:mysql://localhost:3306/testdb"/>--> <!--<property name="username" value="host"/>--> <!--<property name="password" value="hy1102"/>--> <!--</bean>--> <!-- 配置DBCP連接池 --> <!--<bean id="datasource" class=" org.apache.commons.dbcp.BasicDataSource ">--> <!--<property name="driverClassName" value="com.mysql.jdbc.Driver"/>--> <!--<property name="url" value="jdbc:mysql://localhost:3306/testdb"/>--> <!--<property name="username" value="host"/>--> <!--<property name="password" value="hy1102"/>--> <!--</bean>--> <!-- 配置 c3p0 連接池 --> <bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name=" driverClass " value="com.mysql.jdbc.Driver"/> <property name=" jdbcUrl " value="jdbc:mysql://localhost:3306/testdb"/> <property name=" user " value="host"/> <property name=" password " value="hy1102"/> </bean> <!--定義模板--> <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="datasource"/> </bean> </beans>
四、將參數設置寫到屬性文件中
方法一:
在src文件夾下新建jdbc.properties文件
jdbc.driver = com.mysql.jdbc.Driver jdbc.url = jdbc:mysql://localhost:3306/testdb jdbc.user = root jdbc.password = hy1102
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--配置連接池--> <!--<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">--> <!--<property name="driverClassName" value="com.mysql.jdbc.Driver"/>--> <!--<property name="url" value="jdbc:mysql://localhost:3306/testdb"/>--> <!--<property name="username" value="host"/>--> <!--<property name="password" value="hy1102"/>--> <!--</bean>--> <!-- 配置DBCP連接池 --> <!--<bean id="datasource" class=" org.apache.commons.dbcp.BasicDataSource ">--> <!--<property name="driverClassName" value="com.mysql.jdbc.Driver"/>--> <!--<property name="url" value="jdbc:mysql://localhost:3306/testdb"/>--> <!--<property name="username" value="host"/>--> <!--<property name="password" value="hy1102"/>--> <!--</bean>--> <!--引入該屬性文件--> <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"/> </bean> <!-- 配置 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> <!--定義模板--> <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="datasource"/> </bean> </beans>
方法二:
使用context標簽。
<?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 id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">--> <!--<property name="driverClassName" value="com.mysql.jdbc.Driver"/>--> <!--<property name="url" value="jdbc:mysql://localhost:3306/testdb"/>--> <!--<property name="username" value="host"/>--> <!--<property name="password" value="hy1102"/>--> <!--</bean>--> <!-- 配置DBCP連接池 --> <!--<bean id="datasource" class=" org.apache.commons.dbcp.BasicDataSource ">--> <!--<property name="driverClassName" value="com.mysql.jdbc.Driver"/>--> <!--<property name="url" value="jdbc:mysql://localhost:3306/testdb"/>--> <!--<property name="username" value="host"/>--> <!--<property name="password" value="hy1102"/>--> <!--</bean>--> <!--引入該屬性文件--> <!--<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">--> <!--<property name="location" value="classpath:jdbc.properties"/>--> <!--</bean>--> <!--使用context標簽引入屬性文件--> <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> <!--定義模板--> <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="datasource"/> </bean> </beans>
Java Spring-JdbcTemplate