国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Spring JDBC開發(fā)

2019-11-11 00:58:41
字體:
供稿:網(wǎng)友

SPRing JDBC開發(fā)

@(Spring)[spring jdbc]

Spring JDBC開發(fā)Spring的JDBC模板的概述什么是JDBC的模板Spring的JDBC模板入門創(chuàng)建web項(xiàng)目引入jar包創(chuàng)建表編寫測(cè)試Spring管理連接池和模板Spring管理內(nèi)置連接池Spring管理Spring JDBC模板Spring管理DBCP連接池Spring管理C3P0連接池將連接數(shù)據(jù)庫信息提取到屬性文件中Spring的JDBC的模板的API完成CRUD插入更新刪除的方法查詢的方法案例

Spring的JDBC模板的概述

Spring是一站式框架有EE開發(fā)的每一層的解決方案,像持久層Spring提供了JDBC的模板和ORM模塊用于整合其他的持久層框架。

什么是JDBC的模板

JDBC的模板是Spring提供的用于簡化JDBC開發(fā)的一個(gè)技術(shù)。類似于DBUtils。 這里寫圖片描述 PS:在Spring4中已經(jīng)移除對(duì)IBatis的支持,如果需要使用,請(qǐng)使用3版本的orm包

Spring的JDBC模板入門

創(chuàng)建web項(xiàng)目,引入jar包

這里寫圖片描述

創(chuàng)建表

create table account( id int primary key AUTO_INCREMENT, name varchar(20), money double);

編寫測(cè)試

package com.pc;import org.junit.Test;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.datasource.DriverManagerDataSource;/** * JDBC測(cè)試 * * @author Switch * @data 2016年11月25日 * @version V1.0 */public class JDBCTest { /** * 測(cè)試Spring JDBC模板 */ @Test public void testSpringJDBC() { // 創(chuàng)建連接池 DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.MySQL.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/test"); dataSource.setUsername("root"); dataSource.setPassWord("123456"); // 創(chuàng)建Spring JDBC模板 JdbcTemplate jdbcTemplate = new JdbcTemplate(); jdbcTemplate.setDataSource(dataSource); jdbcTemplate.update("insert into account(id, name, money) values(?,?,?)", null, "Switch", 50000d); }}

Spring管理連接池和模板

Spring管理內(nèi)置連接池

<!-- Spring配置內(nèi)置連接池 --><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/test"/> <property name="username" value="root" /> <property name="password" value="123456"/></bean>

Spring管理Spring JDBC模板

<!-- Spring配置Spring JDBC模板 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /></bean>

Spring管理DBCP連接池

引入DBCP連接池jar包 這里寫圖片描述在Spring中配置DBCP的連接池<!-- Spring配置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/test" /> <property name="username" value="root" /> <property name="password" value="123456" /></bean>

Spring管理C3P0連接池

引入c3p0連接池的jar包 這里寫圖片描述在Spring中配置C3P0連接池<!-- spring配置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/test" /> <property name="user" value="root" /> <property name="password" value="123456" /></bean>

將連接數(shù)據(jù)庫信息提取到屬性文件中

提供屬性文件db.propertiesjdbc.driverClass=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/testjdbc.username=rootjdbc.password=123456

在Spring的配置文件中引入外部屬性文件

通過<context>標(biāo)簽引入 <!-- 引入外部屬性文件 --> <context:property-placeholder location="classpath:db.properties"/>通過<bean>標(biāo)簽引入 <!-- 引入外部屬性文件 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:db.properties"/> </bean>

使用屬性文件中的key配置連接池

<!-- spring配置c3p0連接池 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /></bean>

Spring的JDBC的模板的API(完成CRUD)

插入、更新、刪除的方法

int update(String sql,Object… args);package com.pc;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;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;/** * JDBC測(cè)試 * * @author Switch * @data 2016年11月25日 * @version V1.0 */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")public class JDBCTest { @Resource(name = "jdbcTemplate") private JdbcTemplate jdbcTemplate; @Test // insert語句 public void insert() { jdbcTemplate.update("insert into account(id, name, money) values(?,?,?)", null, "Kity", 10000d); } @Test // update語句 public void update() { jdbcTemplate.update("update account set name = ?, money = ? where id = ?", "Tom", 20000d, 2); } @Test // delete語句 public void delete() { jdbcTemplate.update("delete from account where id = ?", 2); }}

查詢的方法

T queryForObject(String sql,Class<T> c,Object… args);T queryForObject(String sql,RowMapper<T> rowMapper,Object… args);List<T> query(String sql,RowMapper rowMapper,Object… args);package com.pc;import java.util.List;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;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;/** * JDBC測(cè)試 * * @author Switch * @data 2016年11月25日 * @version V1.0 */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")public class JDBCTest { @Resource(name = "jdbcTemplate") private JdbcTemplate jdbcTemplate; @Test // 查詢單行單列 public void queryForObject1() { String name = jdbcTemplate.queryForObject("select name from account where id = ?", String.class, 1); System.out.println(name); } @Test // 查詢一行,封裝到對(duì)應(yīng)的對(duì)象 public void queryForObject2() { Account account = jdbcTemplate.queryForObject("select * from account where id = ?", new AccountRowMapper(), 1); System.out.println(account); } @Test // 查詢多行,封裝到對(duì)應(yīng)對(duì)象集合中 public void queryForList1() { List<Account> accounts = jdbcTemplate.query("select * from account", new AccountRowMapper()); System.out.println(accounts); }}package com.pc;import java.sql.ResultSet;import java.sql.SQLException;import org.springframework.jdbc.core.RowMapper;/** * 賬號(hào)類行映射 * * @author Switch * @data 2016年11月25日 * @version V1.0 */public class AccountRowMapper implements RowMapper<Account> { @Override public Account mapRow(ResultSet rs, int rowNum) throws SQLException { Account account = new Account(); account.setId(rs.getInt("id")); account.setName(rs.getString("name")); account.setMoney(rs.getDouble("money")); return account; }}

案例

GitHub:SpringDataTest


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 信宜市| 出国| 泉州市| 宁夏| 留坝县| 饶阳县| 南澳县| 玉门市| 长海县| 吕梁市| 鹤岗市| 兰溪市| 达拉特旗| 平陆县| 安吉县| 长乐市| 尖扎县| 南岸区| 鱼台县| 永昌县| 库伦旗| 乡城县| 印江| 定远县| 石城县| 榆树市| 威信县| 河曲县| 惠安县| 绵竹市| 大厂| 湘潭市| 忻州市| 龙里县| 伊通| 兴安盟| 元谋县| 汝州市| 赤峰市| 桂林市| 阿拉善右旗|