如何通过mybatis获取mysql存储过程返回的不确定个数的多个结果集?_MyBatis 框架基本使用及深入理解...

本文详述了从JDBC操作数据库的问题出发,如何设计并优化自定义框架,直至引入MyBatis。重点介绍了MyBatis的基础使用,包括配置、动态SQL、注解开发、缓存机制(一级和二级缓存),以及如何整合Redis进行分布式缓存。同时,还探讨了MyBatis的插件机制和执行流程,以及设计模式的应用。
摘要由CSDN通过智能技术生成

题记: 本文对 Mybatis 框架相关内容进行整理,从最开始使用JDBC 操作数据库,理解 DAO 层底层需要执行的步骤,到仿照 MyBatis 自定义框架,对 MyBatis 框架结构进行梳理。之后再介绍 MyBatis 框架的基本使用以及常用特性,了解 MyBatis 的日常应用,最后深入框架源码去感受 MyBatis 框架的精妙设计。

  • 注:文章内容输出来源:拉勾教育Java高薪训练营;

复习JDBC操作流程

  1. 加载数据库连接驱动

  2. 通过驱动管理类获取数据库连接

  3. 获取预编译语句

  4. 设置预编译语句参数

  5. 执行SQL, 处理结果集

  6. 释放资源

public static void main(String[] args) {
    
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// 1. 加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 2. 通过驱动管理类获取数据库连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "root");

String sql = "select * from user where username = ?";
// 3. 获取预编译语句
preparedStatement = connection.prepareStatement(sql);
// 4. 设置预编译语句参数
preparedStatement.setString(1, "tom");
// 5. 执行SQL, 处理结果集
resultSet = preparedStatement.executeQuery();

while (resultSet.next()) {
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 (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();
}
}
}
}

复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值