jdbcとdruidの接続池の使用詳細


jdbcを使ってデータベースの操作を実現します。
Ⅰデータベース接続を取得する

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接続プールの内容については以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。