JAVA使用JDBC连接数据库过程(本文以mysql为例),主要分以下几个步骤:
1. 加载数据库驱动;
2. 通过驱动管理创建数据库连接Connection;
3. 定义数据库sql语句,利用’?’实现sql参数占位符;
4. 定义预处理数据库操作对象PreparedStatement(Statement);
5. 通过预处理数据库操作对象设置sql占位符定义的参数值;
6. 获取结果集ResultSet;
7. 关闭数据库资源;
具体实现代码如下:
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 通过驱动管理获取数据库连接
connection = DriverManager
.getConnection("jdbc:mysql://localhost:3306/mysql?characterEncoding=utf-8", "root", "123456");
// 获取预处理statement('?'参数占位符)
String sqlString = "select * from acount where id=?";
preparedStatement = connection.prepareStatement(sqlString);
// 参数赋值
preparedStatement.setInt(1, 1);
// 查询结果集
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
System.out.println("id=" + resultSet.getInt("id") + ";name="
+ resultSet.getString("name") + ";money="
+ resultSet.getFloat("money"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放资源
try {
if (resultSet != null)
resultSet.close();
if (preparedStatement != null)
preparedStatement.close();
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
总结:现在实际项目中直接利用JDBC连接数据库的较少,一般都是利用第三方框架实现数据库的连接,如Hibernate、mybatis等;
利用JDBC连接的缺点如下:
1. 在不使用数据库连接池的情况下,频繁实现数据库连接的创建和资源的关闭,造成资源的浪费和加大性能的影响;
2. 数据库sql脚本集成在实现代码中,不易维护代码;
3. 对查询的结果集无法直接进行POJO的封装,使用不方便,维护也不方便;