一.原始JDBC连接实现
1.pom.xml添加mysql驱动依赖
<dependencys>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
<!--lombok依赖,自动生成set,get方法-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>compile</scope>
</dependency>
</dependencys>
2.编写代码
执行类: JdbcConnect
public class JdbcConnect {
public static void main(String[] args) {
User user = new User();
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
Connection connection = null;
try {
// 1.加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获取连接配置,进行连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8&useSSL=false", "root", "root");
// 3.获取执行的SQL语句
String sql = "select * from user where username = ?";
preparedStatement = connection.prepareStatement(sql);
// 4.设置占位符的值,执行查询
preparedStatement.setString(1, "测试");
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
// 5.处理结果集映射
int id = resultSet.getInt("id");
String username = resultSet.getString("username");
user.setId(id);
user.setUserName(username);
}
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 6.资源关闭
if (null != resultSet) {
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();
}
}
}
}
}
实体类: User
@Data
public class User {
private Integer id;
private String userName;
}
3.JDBC问题总结
- 数据库连接创建,释放频繁,浪费系统资源
- SQL语句硬编码
- SQL参数设置存在硬编码
- 结果解析存在硬编码