맞춤형 구성 데이터 소스 DataSource
13882 단어 연못
package com.qf.ds;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.LinkedList;
import java.util.logging.Logger;
import javax.sql.DataSource;
import com.qf.utils.DBUtils;
/**
* : 。
*
* (LinkedList)
* @author Administrator
*/
public class MyDataSource implements DataSource{
// , 10
private static LinkedList pool =new LinkedList();
static {
for (int i = 0; i < 10; i++) {
Connection connection = DBUtils.getConnection();
pool.add(connection);
}
}
@Override
public Connection getConnection() throws SQLException {
// TODO Auto-generated method stub
if (pool!=null&&pool.size()>0) {
System.out.println("=====getConnection=====");
Connection connection = pool.removeFirst();
return connection;
}
return null;
}
/**
*
*/
public void release(Connection connection ) {
try {
System.out.println("=====release=====");
pool.addLast(connection);
} catch (Exception e) {
// TODO: handle exception
}
}
@Override
public PrintWriter getLogWriter() throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public void setLogWriter(PrintWriter out) throws SQLException {
// TODO Auto-generated method stub
}
@Override
public void setLoginTimeout(int seconds) throws SQLException {
// TODO Auto-generated method stub
}
@Override
public int getLoginTimeout() throws SQLException {
// TODO Auto-generated method stub
return 0;
}
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
// TODO Auto-generated method stub
return null;
}
@Override
public T unwrap(Class iface) throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isWrapperFor(Class> iface) throws SQLException {
// TODO Auto-generated method stub
return false;
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
// TODO Auto-generated method stub
return null;
}
}
2 . 도구류
package com.qf.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;
public class DBUtils {
private static String driverClass = "";
private static String url = "";
private static String user = "";
private static String pwd = "";
static {
ResourceBundle resourceBundle = ResourceBundle.getBundle("dbinfo");
driverClass = resourceBundle.getString("driverClass");
url = resourceBundle.getString("url");
user = resourceBundle.getString("user");
pwd = resourceBundle.getString("password");
}
public static Connection getConnection() {
Connection connection = null;
// 1.
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(" ");
}
// 2.
try {
connection = DriverManager.getConnection(url, user, pwd);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(" ");
}
return connection;
}
public static void closeAll(ResultSet resultSet,Statement statement, Connection connection) {
if (resultSet!=null) {
try {
resultSet.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (statement!=null) {
try {
statement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (connection!=null) {
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
properties 프로필
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/1713_transaction
user=root
password=123
3 . 테스트 클래스
package com.qf.utils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
import com.qf.ds.MyDataSource;
public class Test01 {
@Test
public void test01() {
//1.
MyDataSource ds = new MyDataSource();
Connection connection = null ;
try {
connection = ds.getConnection();
System.out.println(connection);
PreparedStatement preparedStatement = connection.prepareStatement("select * from user");
ResultSet resultSet = preparedStatement.executeQuery();
while(resultSet.next()) {
System.out.println(resultSet.getString("name"));;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (connection!=null) {
ds.release(connection);
}
}
}
}
이것은 데이터베이스 구동jar 패키지만 추가하면 됩니다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
연결 탱크 사용 (1)데이터베이스 작업 중 데이터베이스와 연결하는 것은 가장 많은 시간을 소모하는 작업 중의 하나이며, 데이터베이스에는 최대 연결 수량의 제한이 있다 만약에 많은 사용자가 같은 데이터베이스에 방문하고 똑같은 조작을 한다면...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.