概述
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序
JDBC连接数据库
导入MySQL数据库驱动jar包
代码编写
public void JDBCExample() throws ClassNotFoundException, SQLException{
// 1.注册驱动
Class.forName(driverClass);
// 2.获取连接
String url = "jdbc:mysql://localhost:3306/数据库名称";
Connection connection = DriverManager.getConnection(url, user, password);
// 3. 编写SQL语句
String sql = "insert into category values(null, ?)";
// 4.创建预编译
PreparedStatement st = (PreparedStatement) connection.prepareStatement(sql);
// 5. 设置参数 参数 第几个? 对应的value index是从1开始
st.setString(1, "户外");
// 6. 执行sql
int row = st.executeUpdate();
/*
ResultSet res = st.executeQuery();
// 7. 处理结果
while (res.next()) {
System.out.println(res.getString("cname"));
}
*/
// 8. 释放资源 (先打开后关闭)
res.close();
st.close();
connection.close();
}
使用连接池改造JDBC的程序
Connection对象在JDBC使用的时候.使用的时候就会去创建一个对象,使用结束以后就会将这个对象给销毁了.每次创建和销毁对象都是耗时操作.需要使用连接池对其进行优化.程序初始化的时候,初始化多个连接,将多个连接放入到池中(内存中).每次获取的时候,都可以直接从连接池中进行获取.使用结束以后,将连接归还到池中.
常见的连接池 DBCP 、C3P0。
DBCP
DBCP是Apache组织一个java连接池项目,也是tomcat使用的连接池组件。单独使用JDBC需要导入2个jar包。由于建立数据库连接是一个非常耗费资源的行为,所以通过连接池预先与数据库建立一些连接放在内存中。应用程序需要建立数据库连接时直接到连接池中去申请连接,用完后再放入连接池。
代码编写
public void JDBCExample(){
// 创建连接池
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl(""):
dataSource.setUsername("");
dataSource.setPassword("");
try{
// 获得连接:
conn = dataSource.getConnection();
// 编写SQL语句.
String sql = "insert into category values (null,?)";
// 预编译SQL:
pstmt = conn.prepareStatement(sql);
// 设置参数:
pstmt.setString(1, "鞋靴箱包");
//执行SQL
pstmt.executeUpdate();
}catch(Exception e)
e.printStackTrace();
}finally{
JDBCUtils.release(pstmt, conn);
}
}