晨考
池化机制是为了解决什么问题
资源的重复创建与销毁所带来的资源浪费问题
jdbc的编写步骤
-
注册驱动
-
获取连接对象
-
获取SQL句柄
-
执行SQL语句
-
处理结果集
-
关闭资源
jdbc如何控制事务
try-catch控制事务
在try代码块之外,开启事务(
connection.setAutoCommit(false)
)
在try代码块之内,执行事务的各个环节,并且提交(connection.commit()
)
在catch代码块之内,回滚(connection.rollback()
)
在整个try-catch之外,关闭事务(connection.setAutoCommit(true)
)
Druid连接池
铺垫-读取相对路径下的文件
@Test
public void testReadRelativeFile() throws IOException {
// 反射获取一个类对象
// 获取Practice这个类的类加载器
ClassLoader classLoader = Practice.class.getClassLoader();
// 利用classLoader获取相对路径下的文件,并且将这个文件,作为一个字节输入流
InputStream is = classLoader.getResourceAsStream("druid.properties");
is.close();
}
Druid读取配置文件
@Test
public void testLoadConfig() throws Exception {
// 1. 注册驱动
// 不用了
// 2. 获取连接对象
// 通过DruidDataSource获取
ClassLoader classLoader = Practice.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("druid.properties");
Properties properties = new Properties();
properties.load(is);
is.close();
DataSource datasource = DruidDataSourceFactory.createDataSource(properties);
Connection connection = datasource.getConnection();
// 3. 获取SQL句柄
PreparedStatement pstmt = connection.prepareStatement("SELECT * FROM user");
// 4. 执行SQL语句
ResultSet rs = pstmt.executeQuery();
// 5. 处理结果集
while (rs.next()