构建工厂优化JAVA使用JDBC连接ORACLE数据库
JAVA使用JDBC连接ORACLE数据库基础版open in new window
JAVA使用JDBC连接ORACLE数据库改进优化版open in new window
构建工厂优化JAVA使用JDBC连接ORACLE数据库open in new window
maven的oracle依赖
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
定义db属性文件
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:localhost:1521:ORCL
user=MyTest
password=MyTest
定义工厂
package com.portsoft.iot.web;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class ConnectionFactory {
private static String driver;
private static String url;
private static String user;
private static String password;
static{
driver= "oracle.jdbc.driver.OracleDriver";
url="jjdbc:oracle:thin:localhost:1521:ORCL";
user="xxx";
password="xxxxx";
}
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn, Statement stmt) {
close(null, conn, stmt);
}
public static void close(ResultSet rs, Connection conn, Statement stmt) {
try {
if (rs != null)
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
if (stmt != null)
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
}
}
JDBC工具类
package com.portsoft.iot.web;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBCUtil {
public static void update(String sql) {
Connection conn = null;
Statement stmt = null;
try {
conn = ConnectionFactory.getConnection();
stmt = conn.createStatement();
stmt.execute(sql);
ConnectionFactory.close(conn, stmt);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void query(String sql,IWorkAdapter work) {
Connection conn = null;
Statement stmt = null;
try {
conn = ConnectionFactory.getConnection();
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
work.processRs(rs);
ConnectionFactory.close(rs,conn, stmt);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void execute_DML_ps(String sql, IWorkAdapter work) {
Connection conn = null;
PreparedStatement ps = null;
try {
conn = ConnectionFactory.getConnection();
ps=conn.prepareStatement(sql);
work.setValues(ps);
ps.execute();
ConnectionFactory.close(conn, ps);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void execute_select_ps(String sql, IWorkAdapter work) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs=null;
try {
conn = ConnectionFactory.getConnection();
ps=conn.prepareStatement(sql);
work.setValues(ps);
rs = ps.executeQuery();
work.processRs(rs);
ConnectionFactory.close(rs,conn, ps);
} catch (Exception e) {
e.printStackTrace();
}
}
}
两个接口,一个用于处理结果集,一个用于设置参数
IWork
package com.portsoft.iot.web;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public interface IWork {
public void processRs(ResultSet rs);
public void setValues(PreparedStatement ps);
}
IWorkAdapter
package com.portsoft.iot.web;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public abstract class IWorkAdapter implements IWork{
@Override
public void processRs(ResultSet rs) {
}
@Override
public void setValues(PreparedStatement ps) {
}
}
测试
public static void test(){
String sqlS = "select * from RLZY.dd_rlzy_ykt WHERE type = ? ";
JDBCUtil.execute_select_ps(sqlS, new IWorkAdapter() {
@Override
public void setValues(PreparedStatement ps) {
try {
ps.setString(1, "离职人员");
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void processRs(ResultSet rs) {
try {
List<JSONObject> list = new ArrayList<>();
while (rs.next()) {
JSONObject result = new JSONObject();
result.put("name", rs.getString("name"));
result.put("phone", rs.getString("phone"));
list.add(result);
}
System.out.println(list);
} catch (SQLException e) {
e.printStackTrace();
}
}
});
}