1.多条数据的select

封装在一个实体类中

    @Test
public void test2()throws Exception{
Connection connection = JDBCUtils.getConnection();
String sql = "select * from user";
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
List list = new ArrayList<>();
while (rs.next()){
int id = rs.getInt(1);
String username = rs.getString(2);
String password = rs.getString(3);
String name = rs.getString(4);
list.add(new User(id, username, password, name));

}
list.forEach(System.out::println);
JDBCUtils.getClose(connection, ps, rs);
}

jdbc_从入门到精通_2_工具类

2.连接池技术之c3p0技术

首先要导入包
jdbc_从入门到精通_2_连接池_02

    @Test
public void test1()throws Exception{
DataSource dataSource = new ComboPooledDataSource();
Connection connection = dataSource.getConnection();
System.out.println(connection);
}

获取连接
jdbc_从入门到精通_2_连接池_03

3.连接池技术之德鲁伊

3.1 工厂模式创建


@Test
public void test2()throws Exception{
Properties properties = new Properties();
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties");

properties.load(is);
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
Connection connection = dataSource.getConnection();
System.out.println(connection);


}

jdbc_从入门到精通_2_工具类_04

3.2 普通创建德鲁伊

    @Test
public void test3()throws Exception{
Properties properties = new Properties();
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties");

properties.load(is);
String username = properties.getProperty("username");
String password = properties.getProperty("password");
String url = properties.getProperty("url");
String driverClassName = properties.getProperty("driverClassName");
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driverClassName);
ds.setPassword(password);
ds.setUsername(username);
ds.setUrl(url);
Connection connection = ds.getConnection();
System.out.println(connection);
}

jdbc_从入门到精通_2_工具类_05

4.连接池技术之DBCP

4.1 工厂创建模式

    @Test
public void test5()throws Exception{
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("dhcp.properties");
Properties properties = new Properties();
properties.load(is);

DataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
Connection connection = dataSource.getConnection();
System.out.println(connection);
}

jdbc_从入门到精通_2_sql_06

4.2 普通创建模式

    public void test4()throws Exception{
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl("jdbc:mysql:///test");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUsername("root");
dataSource.setPassword("root");
Connection connection = dataSource.getConnection();
System.out.println(connection);
}

jdbc_从入门到精通_2_工具类_07

5.DBUtils工具类

导入jar包

    @Test
public void test2()throws Exception{
DataSource dataSource = new ComboPooledDataSource();
QueryRunner runner = new QueryRunner(dataSource);
String sql = "select * from user where id = ?";
User user = runner.query(sql, new BeanHandler(User.class), 1);
System.out.println(user);

}

发现DBUtils工具类只可以用c3p0数据源
jdbc_从入门到精通_2_工具类_08

   @Test
public void test3()throws Exception{
QueryRunner runner = new QueryRunner();
Connection connection = JDBCUtils.getConnection();
String sql = "update user set password = ? where id = ?";
int update = runner.update(connection, sql, "1234", 1);
System.out.println(update);
JDBCUtils.getClose(connection, null);
}