Jdbc,数据库连接池,jdbcTemplate
jdbc
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取数据库连接对象
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/javademo","root","123456");
//3.定义sql语句
String sql="create table jdbcdemo1(id int)";
//4.获取执行sql的对象Statement
Statement statement = con.createStatement();
//5.执行sql
boolean isCreate=statement.execute(sql);
//6.释放资源
statement.close();
con.close();
}
数据池
配置文件
<c3p0-config>
<!-- 使用默认的配置读取连接池对象 -->
<default-config>
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/javademo</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">10</property>
<property name="checkoutTimeout">3000</property>
</default-config>
<named-config name="otherc3p0">
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/javademo</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">8</property>
<property name="checkoutTimeout">1000</property>
</named-config>
</c3p0-config>
public static void main(String[] args) throws SQLException {
//1.创建数据库连接池对象 使用默认配置
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
//不使用默认配置
// ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource("otherc3p0");
//2.获取连接对象,可以在配置文件中设定连接池中最大数量
for (int i = 0; i <=10 ; i++) {
Connection connection = comboPooledDataSource.getConnection();
System.out.println(i+":"+connection);
}
}
jdbcTemplate
-
导入jia包
-
创建一个jdbcTemplate.依赖于数据源Datasource
jdbcTemplate template =new JdbcTemplate(ds);
- 调用jdbcTemplate方法完成CRUD操作
update():执行DML语句.
queryFormao():查询结果将结果封装为map集合
queryForList():查询结果将结果封装为list集合
query():查询结果,将结果封装为javaBean对象
queryForObject:查询结果,将结果封装为对象
获取数据源,这里采用的是druid连接池
private static DataSource ds ;
static{
try {
//1.加载配置文件
Properties pro = new Properties();
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//2.获取DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static DataSource getDataSource(){
return ds;
}
public static void main(String[] args) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
String sql="update account set balance=2000 where id=?";
int count=jdbcTemplate.update(sql,2);
System.out.println(count);
}