当前位置: 首页 > ops >正文

MyBatis常用方法

由于下面这段代码的重复性很高,我们可以单独创建一个工具类

 		//1.加载mybatis的核心配置文件,获取SqlSessionFactory  String resource = "mybatis-config.xml";  InputStream inputStream = Resources.getResourceAsStream(resource);  SqlSessionFactory sqlSessionFactory =  new SqlSessionFactoryBuilder().build(inputStream);  //2.获取SqlSession对象,用他来执行Sql  SqlSession sqlSession = sqlSessionFactory.openSession();  

工具类

public class MyBatisUtils {private static SqlSessionFactory factory;static {try {factory = new SqlSessionFactoryBuilder.build(new FileInputStream("mybatis-config.xml"));} catch(FileNotFoundException e) {e.printStackTrace();}}//自动提交public SqlSession openSession(boolean autoCommit) {return factory.openSession(autoCommit);}
}

简化后的代码

```java
public class TestUser {  @Test  public void testUser() throws IOException {  SqlSession sqlSession = MyBatisUtils.openSession(true);//3.执行Sql  List<User> users = sqlSession.selectList("test.selectAll");  System.out.println(users);  }  
}

selectMap方法

Map<String, User> map selectMap("selectAllUser", "id")表示以id作为key,查询到的结果作为Map

基于注解实现MyBatis

@Mapper //标记Mapper接口
@Select("执行查询语句,返回结果")
@Insert("执行插入语句")
@Update("执行更新语句")
@Delete("执行删除语句")

MyBatis

  1. 添加依赖: mybatismariadb驱动
  2. 配置数据库
     spring:datasource:url: jdbc:mariadb://localhost:3306/mybatisusername: rootpassword: rootdriver-class-name: org.mariadb.jdbc.Driver
    
  3. Mapper
	@Mapperpublic interface UserInfoMapper {@Select("select * from userinfo") //接口方法的实现List<UserInfo> getUserInfoAll();}

selectCursor方法

Cursor<User> cursor = session.selectCursor("selectAllUser");
for(User user : cursor) {System.out.println(user);cursor.isOpen(); //是否已经开始遍历cursor.getCurrentIndex();//获取遍历到第几个(下标)
}
cursor.isConsumed(); //是否遍历完了

select方法

session.select("selectAllUser", context -> {System.out.println(context.getResultCount());System.out.println(context.getREsultObject());context.stop();
})

http://www.xdnf.cn/news/7623.html

相关文章:

  • 零售EDI:Belk Stores EDI需求分析
  • 阅读笔记---城市计算中用于预测学习的时空图神经网络研究综述
  • 《从零开始构建高可用MySQL架构:全流程实战指南》
  • 无人机避障——深蓝学院浙大Fast-planner学习部分(轨迹生成B-Spline部分)
  • Spring是如何实现scope作用域支持
  • 家用和类似用途电器的安全 第1部分:通用要求 与2005版差异(6)
  • pmap中的mode列,脏页,写时复制
  • 公路水运安全员C证用途及重要性
  • 测试工程师要如何开展单元测试
  • JavaSenderMail发送邮件(QQ及OFFICE365)
  • 如何使用通义灵码玩转Python - AI编程助手提升效率
  • 【工具变量】地级市健康城市试点政策数据集(2007-2024年)
  • 香港科技大学广州香港科技大学硕博士研究生学位项目宣讲会(智能制造硕博士物理学硕士)—深圳大学专场
  • 大模型从基础到入门 记录
  • 测试W5500的第3步_使用ioLibrary库创建TCPServer
  • [特殊字符] jQuery 响应式瀑布流布局插件推荐!
  • 2025年JIII SCI1区TOP,多策略霜冰优化算法IRIME+无人机路径规划,深度解析+性能实测
  • [创业之路-370]:企业战略管理案例分析-10-战略制定-差距分析的案例之小米
  • AI大模型从0到1记录学习 大模型技术之数学基础 day26
  • AR0144CSSC20SUKA0-CRBR——1/4英寸 1.0 MP 高性能CMOS图像传感器解析
  • 多路视频直播用在线云导播切换的效果测试
  • [春秋云镜] Spoofing仿真场景
  • 软考软件测评师——系统安全设计(防火墙技术)
  • 每日一题:1、虚拟IPv4地址转换为32位整数(JS)
  • 你知道mysql的索引下推么?
  • 【办公类-18-04】(Python)“验血单信息”批量生成打印(学校、班级、姓名、性别)
  • 三色光源投影暗战:FSHD 如何撕开 DLP/3LCD 垄断缺口?
  • Ubuntu软件仓库与更新源配置指南
  • 系统架构设计(十六):敏感点、权衡点、风险点和非风险点
  • 手动导出Docker进行并自动执行脚本命令的操作方法