一、JDBC连接池基本使用C3P0
1.导入三个jar包
2.导入配置文件(必须放到src根目录下)
3.修改配置文件
4.创建JAVA文件
4.1创建数据库连接池对象
4.2获取连接
4.3打印
package cn.itcast.test01.c3p0;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class C3P0Demo01 {
public static void main(String[] args) throws SQLException {
//1.创建数据库连接池对象
DataSource ds = new ComboPooledDataSource();
//2.获取连接
Connection conn = ds.getConnection();
//4.打印
System.out.println(conn);
}
}
二、Druid连接池的基本使用
1、导入两个jar包
2、导入配置文件,文件放到任何位置都行
3、获取数据库连接池对象:通过工厂来获取
(DruidDataSourceFactory类来获取)
4、获取连接
4.1定义一个类JDBCUtils
4.2提供静态代码块,初始化连接池对象
4.3提供方法
4.3.1获取连接方法,通过数据库连接池获取连接。
4.3.2释放资源
4.3.3获取连接池的方法
#1.java文件类
package cn.itcast.test01.druid;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;
public class DRUIDDemo1 {
public static void main(String[] args) throws Exception{
//1.导入jar包
//2.定义配置文件
//3.加载配置文件
Properties pro = new Properties();
InputStream is = DRUIDDemo1.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//4.获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//5.获取连接
Connection conn = ds.getConnection();
System.out.println(conn);
}
}
#2、JDBCUtils类
```java
package cn.itcast.utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JDBCUtils {
//1.定义成员变量
private static DataSource ds;
static {
try {
//1.加载配置文件
Properties pro = new Properties();
//加载字节码文件(配置文件)
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//2.获取Datasource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* 获取连接
* */
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
/*
* 释放资源
* */
public static void close(Statement stmt, Connection conn)
{
/*
if(stmt != null)
{
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(conn != null)
{
try {
conn.close();//归还连接
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
*/
close(null,stmt,conn);
}
public static void close(ResultSet rs,Statement stmt, Connection conn)
{
if(rs != null)
{
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(stmt != null)
{
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(conn != null)
{
try {
conn.close();//归还连接
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
/*
* 获取连接池的方法
*
* */
public static DataSource getDataSource(){
return ds;
}
}
#3、使用JDBCUtils的Java类
package cn.itcast.test01.druid;
import cn.itcast.utils.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/*
* 使用新的工具类
* */
public class DRUIDDemo2 {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
/*
* 完成添加操作,给account表添加一条记录
* */
try {
//1.获取连接
conn = JDBCUtils.getConnection();
//2.定义SQL
String sql = "insert into account values(null,?,?)";
//3.获取pstmt对象
pstmt = conn.prepareStatement(sql);
//5.给?赋值
pstmt.setString(1,"王五");
pstmt.setDouble(2,3000);
//4.执行SQL
int count = pstmt.executeUpdate();
System.out.println(count);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JDBCUtils.close(pstmt,conn);
}
}
}
三、SpringJdbc基本使用步骤(最主要的是JdbcTemplate)
1、导入jar包
2、创建JDBCTemplate对象.
3.调用方法来完成CRUD的操作
package cn.itcast.JDBCTemplate;
import cn.itcast.utils.JDBCUtils;
import org.springframework.jdbc.core.JdbcTemplate;
public class JDBCTemplateDemo {
public static void main(String[] args) {
//1.导入jar包
//2.创建JDBCTEMPLATE对象
JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
//3.调用方法
String sql = "update account set balance = 5000 where id=?";
int count = template.update(sql, 3);
System.out.println(count);
}
}