日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring教程--JdbcTemplate详解

發(fā)布時間:2025/3/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring教程--JdbcTemplate详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?Spring的JdbcTemplate

JdbcTemplate模板與DbUtils工具類比較類似.

1 Spring對持久層技術(shù)支持:

JDBC:org.springframework.jdbc.core.JdbcTemplate

Hibernate3.0:org.springframework.orm.hibernate3.HibernateTemplate

IBatis(MyBatis):org.springframework.orm.ibatis.SqlMapClientTemplate

JPA:org.springframe work.orm.jpa.JpaTemplate

2?開發(fā)JDBCTemplate入門:

第一步:引入相應(yīng)jar包:

* spring-tx-3.2.0.RELEASE.jar

* spring-jdbc-3.2.0.RELEASE.jar

* mysql驅(qū)動.

第二步:創(chuàng)建applicationContext.xml

<?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"><!-- 配置Spring默認(rèn)的連接池 --><!-- <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> --><!-- 配置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> --><!-- <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><bean id="userDao" class="com.sihai.spring3.demo2.UserDao"><property name="jdbcTemplate" ref="jdbcTemplate"/></bean> </beans>

第三步:編寫一個測試類:

package com.sihai.spring3.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.jdbc.datasource.DriverManagerDataSource; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") public class SpringTest1 {@Autowired@Qualifier("jdbcTemplate")private JdbcTemplate jdbcTemplate;@Testpublic void demo2(){jdbcTemplate.execute("create table user (id int primary key auto_increment,name varchar(20))");}@Testpublic void demo1(){// 創(chuàng)建連接池:DriverManagerDataSource dataSource = new DriverManagerDataSource();// 設(shè)置參數(shù):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))");} }

2.1 配置連接池:

Spring默認(rèn)的連接池:

<!-- 配置Spring默認(rèn)的連接池 --><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>

DBCP連接池:

導(dǎo)入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連接池:

導(dǎo)入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>

2.2 參數(shù)設(shè)置到屬性文件中:

在src下創(chuàng)建jdbc.properties

jdbc.driver = com.mysql.jdbc.Driverjdbc.url = jdbc:mysql:///spring3_day02jdbc.user = rootjdbc.password = 123

需要在applicationContext.xml 中使用屬性文件配置的內(nèi)容.

?第一種寫法:

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

?第二種寫法:

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

2.3 JdbcTemplate的CRUD的操作:

Spring框架中提供了對持久層技術(shù)支持的類:

JDBC:org.springframework.jdbc.core.support.JdbcDaoSupport

Hibernate 3.0:org.springframework.orm.hibernate3.support.HibernateDaoSupport

iBatis:org.springframework.orm.ibatis.support.SqlMapClientDaoSupport

2.3.1 編寫DAO的時候:

Public class UserDao extends JdbcDaoSupport{

}

進行CRUD的操作;

* 保存:update(String sql,Object... args)

* 修改:update(String sql,Object... args)

* 刪除:update(String sql,Object... args)

2.3.2 查詢:

?簡單查詢:

* select count(*) from user;--- queryForInt(String sql);

* select name from user where id = ?;--- queryForObject(String sql,Class clazz,Object... args);

?復(fù)雜查詢:(返回對象,和對象集合)

* select * from user where id = ?--- queryForObjectString sql,RowMapper<T> rowMapper,Object... args);

* select * from user;--- query(String sql,RowMapper<T> rowMapper,Object... args);

package com.sihai.spring3.demo2;import java.sql.ResultSet; import java.sql.SQLException; import java.util.List;import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.support.JdbcDaoSupport;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:結(jié)果集.* 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;}} }

總結(jié)

以上是生活随笔為你收集整理的spring教程--JdbcTemplate详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。