回顾JDBC
java操作关系型数据的API。
导入相关数据库的驱动包后可以通过JDBC提供的接口来操作数据库。
实现JDBC的六个步骤
注册数据库驱动
获取数据库连接
获取传输器对象
传输sql执行获取结果集对象
遍历结果集获取信息
关闭资源
package cn.tedu.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
create database springdb;
use springdb;
create table stu(id int primary key auto_increment,name varchar(255),addr varchar(255));
insert into stu values (null,‘aaa’,‘bj’),(null,‘bbb’,‘sh’),(null,‘ccc’,‘gz’),(null,‘ddd’,‘sh’),(null,‘eee’,‘bj’);
*/
public class Demo01 {
public static void main(String[] args){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//1.注册数据库驱动
Class.forName(“com.mysql.jdbc.Driver”);
//2.获取数据库连接
conn = DriverManager.getConnection(“jdbc:mysql:///springdb”,“root”,“root”);
//3.获取传输器
ps = conn.prepareStatement(“select * from stu where id < ?”);
ps.setInt(1, 4);
//4.执行sql获取结果集
rs = ps.executeQuery();
//5.遍历结果集获取结果
while(rs.next()){
String name = rs.getString(“name”);
System.out.println(name);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//6.关闭资源
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
rs = null;
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
ps = null;
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
conn = null;
}
}
}
}
}
数据库连接池(数据源)
C3P0连接池
package cn.tedu.jdbc;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
create database springdb;
use springdb;
create table stu(id int primary key auto_increment,name varchar(255),addr varchar(255));
insert into stu values (null,‘aaa’,‘bj’),(null,‘bbb’,‘sh’),(null,‘ccc’,‘gz’),(null,‘ddd’,‘sh’),(null,‘eee’,‘bj’);
*/
public class Demo02 {
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
static{
try {
dataSource.setDriverClass(“com.mysql.jdbc.Driver”);
dataSource.setJdbcUrl(“jdbc:mysql:///springdb”);
dataSource.setUser(“root”);
dataSource.setPassword(“root”);
} catch (PropertyVetoException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static void main(String[] args){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
//1.2.从数据源中获取连接
conn = dataSource.getConnection();
//3.获取传输器
ps = conn.prepareStatement(“select * from stu where id < ?”);
ps.setInt(1, 4);
//4.执行sql获取结果集
rs = ps.executeQuery();
//5.遍历结果集获取结果
while(rs.next()){
String name = rs.getString(“name”);
System.out.println(name);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//6.关闭资源
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
rs = null;
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
ps = null;
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
conn = null;
}
}
}
}
}
Spring整合JDBC - 管理数据源
导入相关开发包
计算机生成了可选文字:aopalliance-1.O.Jar a ’ pe 戲 」 一 17 胃 刂 ar ; aspectJweaver-1.7.4.Jar
capo . g 12 r commons-logging-I.O.4.Jar mysql connector-Java-5.1.10-bin.Jar
spring-aop-3.2.3.RELEASE.Jar spring-aspects-3.2.3.RELEASE.Jar
spring-beans-3.2.3.RELEASE.Jar spring-context-3.2.3.RELEASE.Jar
spring-context-support-3.2.3.RELEASE.Ja spring-core-3.2.3.RELEASE.Jar
’ rl -ex ress10n-3.2.3.RELEASE.Jar spring-jdbc-3.2 3.RELEASEjar
-test-3.2.3.RELEASE. 3 r spring-tx-3.2.3.RELEASE.Jar
将数据源交于Spring管理
计算机生成了可选文字:dbc.propertles driverC1ass:com . mysql . jdbc . Driver
jdbcUr1:jdbc : mysql : //localhost : 3386/spring user:root password:root
计算机生成了可选文字:引 入 配 置 文 件 一 一 〉
(context:property-placeholder location:"cLasspath:/jdbc.properties
配 置 据 源 一 一 〉
(bean id: ’ ’ da 亡 0S0 rce class:"com/mchange.v2.c3pe. ComboPooL edDataSource ’ 〉
(property name:“driverCLass” value:" f d r i v e r C L a s s ) " X / p r o p e r t p ( p r o p e r t