数据库连接:JDBC连接
1.创建BaseConn类,封装创建连接、关闭连接方法
涉及到java.sql.Connection、java.sql.DriverManager、java.sql.SQLException
public Connection getConnection(String url,String user,String pwd){
Connection conn = null;
try{
conn = DriverManager.getConnection(url,user,pwd);
}catch(SQLException e){
e.printStackTrace();
}
return conn;
}
public void closeConnection(Connection conn){
if(null != conn){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
2.借助JDBCHelper,代码与数据库配置信息dbconfig.properties分离。
文件读取:java.io.IOException、java.io.InputStream
sql执行:java.sql.PreparedStatement、java.sql.ResultSet
参数处理:java.util.Properties
//在静态代码块中,直接加载数据库的驱动
Properties properties = new Properties();
InputStream inputStream = Object.class.getResourceAsStream("/dbconfig.properties");
class.forName(properties.getProperty("oracledDriver"));
//实现JDBC单例化:保证只有一个JDBCHelper实例,保证实例中数据库连接池只有一份
private static JDBCHelper instance = null;
//获取单例【借助锁】
public static JDBCHelper getInstance(){
if(instance ==null){
synchronized(JDBCHelper.class){
if(instance == null){
instance = new JDBCHelper();
}
}
}
return instance;
}
//创建唯一的数据库连接池,创建指定个数的数据库连接[代码不完整]
private LinkedLIst<Connection> dataSource = new
LinkedList<Connection>();
for(;;){
dataSource.push(DriverManager.getConnection(url,user,pwd));
}
//等待机制,获取数据库连接
public synchronized Connection getConnection(){
while(dataSource.size() == 0){
Thread.sleep(10);
}catch(InterruptedException e){
e.printStackTrace();
}
return dataSource.poll();
}
//增删改查[代码不完整]
public int exectuUpdate(String sql,Object[] params){
int rtn = 0;
Connection conn = getConnection().setAutoCommit(false);
PreparedStatement pstmt = conn.prepareStatement(sql);
rtn = pstmt.executeUpdate();
conn.commit();
dataSource.push(conn);
return rtn;
}
3.将MyBatis集成到接口自动化中
1.Maven 导入相关Mybatis依赖包
2.databaseConfig.xml数据库配置文件、Mapper.xml文件、DAO层