以ORACLE数据库为例
步骤:
1,将druid的jar包导入项目中(Maven项目使用依赖)
2,在src目录下新建一个file, file名为“druid.properties”
3,在步骤2的file文件中,写入以下内容(例子)
//Oracle驱动类名
driverClassName=oracle.jdbc.OracleDriver
//连接需要的url
url=jdbc:oracle:thin:@127.0.0.1:1521:XE
username=fangxi
password=12345//创建时初始连接数
initialSize=5//最大活动数
maxActive=10//最长等待时间
maxWait=3000
4,新建一个类
例一,JDBCUtil类(使用Statement操作数据库)
package com.fx.demo.jdbc1;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.function.Function;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class JDBCUtil {
//静态变量
private static DataSource dataSource;
//使用静态代码块对数据源进行初始化
static {
Properties properties=new Properties();
InputStream in=JDBCUtil.class.getClassLoader().getResourceAsStream("druid.properties");
try {
properties.load(in);
dataSource=DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//获取数据库连接对象
public static Connection getConnection() throws SQLException{
return dataSource.getConnection();
}
//关闭资源
public static void close(ResultSet rs,Statement stmt,Connection conn) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//重载
public static void close(Statement stmt,Connection conn) {
//调用三参close方法
close(null,stmt,conn);
}
//封装DDL(数据库定义语句),例如建表、alter语句
public static int executeDDL(String sql) {
Connection conn=null;
Statement stmt=null;
int rows=-1;
try {
conn=getConnection();
stmt=conn.createStatement();
rows=stmt.executeUpdate(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
close(stmt,conn);
}
return rows;
}
//封装DML(数据库操作语句),例如增删改语句
public static int executeDML(String sql) {
return executeDDL(sql);
}
//处理ResultSet
public static <T> T queryForObject(String sql,Function<ResultSet,T> function) {
Connection conn=null;
Statement stmt=null;
T t=null;
try {
conn=getConnection();
stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
//Function<Res