Mybatis的基础知识点
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,小编给大家分享一下Mybatis的基础知识点,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mybatismybatis-c
千家信息网最后更新 2025年02月04日Mybatis的基础知识点
小编给大家分享一下Mybatis的基础知识点,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
mybatis
mybatis-config.xml详细配置(配置时要把多余的属性删除 不能有中文 否则报错!)
分页
减少数据访问量
limt实现分页
sql语句: select * from 表名 limt 0,5;
0:数据开始的位置
5:数据的长度
第一种:使用Mybatis
1接口
ListgetUserByLimit(Map map);
2mapeer.xml
2-1结果集映射
3测试
@Test public void getUserByLimitTest() { SqlSession sqlSession = MyBatisUtils.getSqlSession (); UserMapper mapper = sqlSession.getMapper (UserMapper.class); HashMap hashMap = new HashMap(); hashMap.put ("starIndex", 1); hashMap.put ("pageSize", 2); List userByLimit = mapper.getUserByLimit (hashMap); for (Object o : userByLimit) { System.out.println (o); } sqlSession.close (); }
第二种:使用RowBounds方法
1.接口
List getUserList();
2.实现接口
3.测试:
/** * 测试使用RowBounds实现分页 */@Test public void getUserByLimitRowBoundsTest() { SqlSession sqlSession = MyBatisUtils.getSqlSession (); RowBounds rowBounds = new RowBounds (0, 2); ListuserList = sqlSession.selectList ("com.kuang.w.dao.UserMapper.getUserList", null, rowBounds); for (User user : userList) { System.out.println (user); } //关闭 sqlSession.close (); }
第三种:使用Mybatis的分页插件 pageHeIper
sql 多对一处理
数据库 :
pojo
数据库中teacher-table表 对应实体类 Teacher
package com.kuang.w.pojo;import lombok.Data;/** * @author W */@Datapublic class Teacher { private int tId; private String tName;}
数据库中user表 对应 实体类Student
package com.kuang.w.pojo;import lombok.Data;/** * @author W */@Datapublic class Student { private int id; private int tid; private String name; private String password; private Teacher teacher;}
1.接口
ListgetStudentList();
2.xml配置实现接口
mybatis-config.xm配置
3 测试
@Test public void getStudentListTest() { SqlSession sqlSession = MyBatisUtils.getSqlSession (); StudentMapper mapper = sqlSession.getMapper (StudentMapper.class); ListstudentList = mapper.getStudentList (); for (Student student : studentList) { System.out.println (student); } sqlSession.commit (); sqlSession.close (); }
sql 一对多处理
数据表结构 对应的实体类 不变
第一种方式: 多表联查
1接口
ListgetTeacher(int tid);
2.1 xml实现接口
2.2映射配置
3测试
/*测试一对多*/ @Test public void getTeacherTest2() { SqlSession sqlSession = MyBatisUtils.getSqlSession (); TeacherMapper mapper = sqlSession.getMapper (TeacherMapper.class); Listteacher = mapper.getTeacher (1); for (Teacher teacher1 : teacher) { System.out.println (teacher1); } //提交事务 架子 这里可以不要 sqlSession.commit (); // 关闭 sqlSession.close (); }
结果
com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.kuang.w.dao.myTest,getTeacherTest2Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.PooledDataSource forcefully closed/removed all connections.PooledDataSource forcefully closed/removed all connections.PooledDataSource forcefully closed/removed all connections.PooledDataSource forcefully closed/removed all connections.Opening JDBC ConnectionCreated connection 164974746.Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@9d5509a]==> Preparing: select t.tid, t.tname, u.id, u.name, u.password from mybatis.user u, mybatis.teacher_table t where t.tid = u.tid and t.tid = ?; ==> Parameters: 1(Integer)<== Columns: tid, tname, id, name, password<== Row: 1, 狂神, 1, 天王盖地虎, 111<== Row: 1, 狂神, 2, 小波, 123<== Row: 1, 狂神, 3, 雷神, 922<== Row: 1, 狂神, 5, 马儿扎哈, 123<== Total: 4Teacher(tId=1, tName=狂神, students=[Student(id=1, tid=1, name=天王盖地虎, password=111), Student(id=2, tid=1, name=小波, password=123), Student(id=3, tid=1, name=雷神, password=922), Student(id=5, tid=1, name=马儿扎哈, password=123)])Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@9d5509a]Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@9d5509a]Returned connection 164974746 to pool.Process finished with exit code 0
第二种方式: 子查询
1接口
ListgetTeacher(int tid);
2 实现接口
3测试 同上
以上是"Mybatis的基础知识点"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
接口
数据
测试
配置
知识
实体
数据库
篇文章
基础
知识点
内容
方式
结果
雷神
马儿
天王
地虎
处理
不怎么
事务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
嘉兴智能软件开发项目
成年人学习网络安全教育
海康服务器怎么装固态硬盘
软件开发数据表
网络安全五字术语
基于众包的软件开发
数据库职工号的表示
青岛软件开发技术交流
网络安全硕士推荐
美国建服务器
会话管理器服务器
浙江行知学院网络安全怎么样
成都天盟网络技术有限公司
互联网科技行业前景如何
软件开发的研究方案模板
网络技术考试教程
无线网络技术ns2使用步骤
博野网络安全宣传
服务器虚拟机怎么上网
连接网络安全密码
数据库包含哪两种文件
服务器密码什么时候到期
南阳软件开发优化价格
德国网络安全大会
西利互联网科技
局域网内电脑都无法访问服务器
成都蜂擎网络技术有限公司
在哪里能大量获取用户数据库
中国网络安全十大公司
游戏软件开发在哪学