Java JDBC(druid)的一个小工具类
工具类做 :
连接数据库
归还连接
代码:
package JdU;
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;
//druid工具类
public class JDBCUtils {
private static DataSource ds;
static{
try {
Properties pro=new Properties();
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));//继续获取配置文件,相关连接问题在前几期有
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){
close(null,stmt,conn);
// if(stmt!=null){
// try {
// stmt.close();
// } catch (SQLException e) {
// e.printStackTrace();
// }
// }
//
// if(conn!=null){
// try {
// conn.close();//归还连接
// } catch (SQLException e) {
// e.printStackTrace();
// }
// }
}
public static void close(ResultSet rs, Statement stmt, Connection conn){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();//归还连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static DataSource getDataSource(){
return ds;
}
}
使用工具类
做了一个添加的数据库操作
package JdU;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
//使用工具类
public class JDBCUtils2 {
public static void main(String[] args) {
Connection connection=null;
PreparedStatement preparedStatement=null;
try {
connection = JDBCUtils.getConnection();//这是上面写的工具类,获取连接成功返回的
String sql="insert into admin values(null,?,?,null);";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,"无误");//1就是第一个问号,以此类推
preparedStatement.setString(2,"1");
int i = preparedStatement.executeUpdate();//这个返回一个上面执行的sql语句影响了多少行数据
System.out.println(i);
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(preparedStatement,connection);//执行完后调用工具类的关闭方法
}
}
}
嗯