// 数据库连接
Connection connection = null;
// 预编译的Statement,使用PreparedStatement提高数据库性能
PreparedStatement preparedStatement = null;
// 结果集
ResultSet resultSet = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user?characterEncoding=utf-8", "root", "root");
String sql = "select * from user where user_name = ?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, "小明");
resultSet = preparedStatement.executeQuery();
while(resultSet.next()) {
System.out.println(resultSet.getInt("id") + " " + resultSet.getString("user_name"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
原生态连接数据库的缺点:
1. 对数据库频繁的开启和关闭,造成数据库资源浪费。(数据库连接池)
2. sql语句硬编码写在java代码中,不利于维护。(sql配置到xml中)
3. sql参数传递存在硬编码,不利于维护。(配置到xml中)
4. 结果集返回数据中字段存在硬编码,不利于维护。(自动映射为pojo对象)