jdbcとdruidの接続池の使用詳細
jdbcを使ってデータベースの操作を実現します。
Ⅰデータベース接続を取得する
ⅠDruid接続池のオブジェクトを作成し、取得する
Ⅰデータベース接続を取得する
package org.example.utils;
import java.sql.*;
public class JavaDateConnection {
/**
*
* @return Connection
*/
public Connection getConn() {
//project
String url = "jdbc:mysql://localhost:3306/project";
//
String username = "root";
//
String password = "Hyk59308";
Connection conn = null;
try {
//
Class.forName("com.mysql.jdbc.Driver");
//classLoader,
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
ⅡSQL文を作成してデータベースを操作する
String sql1="insert into myTable values(?,?,?,?)";// sql
String sql2="select * from myTable"; // sql
int result=0; // ,
``/**
* PreparedStatement Statement ,PreparedStatement ,
* Statement , , SQL
*/
PreparedStatement ps=connection.prepareStatement(sql1);
ps.setString(1,"tanker");
ps.setString(2, "m");
ps.setString(3,"1991-11-20");
ps.setString(4, "Franch");
result=ps.executeUpdate();
if(result>0)
System.out.println(" ");
else
System.out.println(" ");
//Statement sql
Statement statement=connection.createStatement();
// ,
ResultSet results=statement.executeQuery(sql2);
System.out.println("name"+" "+"sex"+" "+"birth"+" "+"birthaddr");
System.out.println("------------------------");
while(results.next())
{
System.out.println(results.getString("name")+" "+
results.getString("sex")+" "+
results.getString("birth")+" "+
results.getString("birthaddr"));
}
System.out.println(" !");
Ⅲ関連資源の閉鎖
* Connection PreparedStatement
* @param connection
* @param preparedStatement
*/
public static void closeConnection(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet){
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Druid接続池uを使ってデータベースを操作します。ⅠDruid接続池のオブジェクトを作成し、取得する
package util;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DBUtil {
private static DataSource ds;
static {
//1.
Properties pro = new Properties();
try {
pro.load(DBUtil.class.getClassLoader().getResourceAsStream("/db.properties"));
// DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
ⅡSQL文を作成し、データベースに対する操作を実現する
/**
* @param sql SQL
* @param objs SQL , null
* @return , int
*/
public static int executeDML(String sql,Object...objs){
// jdbc
Connection conn = null;
PreparedStatement ps = null;
int i = -1;
try {
//
conn = DBUtil.getConnection();
//
conn.setAutoCommit(false);
// SQL
ps = conn.prepareStatement(sql);
//
if(objs!=null){
for(int j=0;j<objs.length;j++){
ps.setObject(j+1,objs[j]);
}
}
// SQL
i = ps.executeUpdate();
conn.commit();
} catch (Exception e) {
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
} finally {
DBUtil.closeAll(null, ps, conn);
}
return i;
}
Ⅲ関連資源の閉鎖
//
public static void closeAll(ResultSet rs,Statement stmt,Connection conn){
try {
if(rs!=null){
rs.close();
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ここではjdbcとdruid接続池の使用についての文章を紹介します。jdbcとdruid接続プールの内容については以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。