在做项目中,由于需求需要项目使用orcale数据库,先是安装Oracle数据库,然后又安装PL/SQL(我使用的是PLSQLDeveloper_解压版),在这过程中出现了很多问题,由于时间原因,我这里先简单记录下C3p0连接oracle的一段代码:
首先要下载对应的jar包:
c3p0-0.9.0.jar
ojdbc14.jar(oracle)
`
/**
* 数据库配置文件
* @author ZL
*
* 2017年7月27日
*/
public class dbconfig {
public static final String ODBDRIVER = “oracle.jdbc.driver.OracleDriver”;//驱动类
public static final String DBURL_C = “jdbc:oracle:thin:@数据库服务器的IP地址:端口号:这里填写的名看截图”;//url
public static final String DBUSER_C = “**“;//用户名
public static final String DBPASSWORLD_C = “**“;//密码
}
`
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* Oracle链接数据库对象
*
* @author ZL
*
* 2017年7月27日
*/
public class OracleConnect {
private static ComboPooledDataSource dataSourceTest = null;
public static PreparedStatement pst = null;
public static ResultSet rs = null;
/**
* 构造函数完成数据库的连接和连接对象的生成
*/
public OracleConnect() {
try {
if (dataSourceTest == null) {
dataSourceTest = new ComboPooledDataSource();
// 设置连接参数
dataSourceTest.setJdbcUrl(dbconfig.DBURL_C);
dataSourceTest.setDriverClass(dbconfig.ODBDRIVER);
dataSourceTest.setUser(dbconfig.DBUSER_C);
dataSourceTest.setPassword(dbconfig.DBPASSWORLD_C);
dataSourceTest.setInitialPoolSize(3);
dataSourceTest.setMaxPoolSize(10);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 取得已经构造生成的数据库连接
*
* @return 返回数据库连接对象
*/
public Connection getConnect() {
try {
return dataSourceTest.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 使用完一定要关闭(释放资源)
* @param rs ResultSet
* @param stat Statement
* @param conn Connection
* @throws Exception
*/
public static void CloseConn(ResultSet rs, Statement stat, Connection conn)
throws Exception {
if (rs != null) {
rs.close();
}
if (stat != null) {
stat.close();
}
if (conn != null) {
conn.close();
}
}
/**
* 查询一条(多条)记录
*
* @param arg0 查询的sql语句
* @return list
* @throws Exception
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static List select(String arg0) throws Exception {
Connection conn = new OracleConnect().getConnect();
pst = conn.prepareStatement(arg0);
rs = pst.executeQuery();
List list = new ArrayList();
if (rs != null) {
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount();
Map rowData = new HashMap();
while (rs.next()) {
rowData = new HashMap(columnCount);
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
}
list.add(rowData);
}
}
OracleConnect.CloseConn(rs, pst, conn);
System.out.println(list.toString());
return list;
}
}