Mybatis
文章平均质量分 80
向着百万年薪努力的小赵
当注意力专注于一件事上,岁月就会显得十分轻浮,快的有些过于浪荡——远近书疏,莫不手答,笔翰如流,未尝壅滞
展开
-
Mybatis关联(嵌套)查询与延迟加载
我们在查询业务数据的时候经常会遇到关联查询的情况,比如查询员工就会关联部门(一对一),查询学生成绩就会关联课程(一对一),查询订单就会关联商品(一对多),等等。映射结果有两个标签,一个是,一个是。是select标签的一个属性,适用于返回JDK类型(比如Integer.String等等)和实体类。这种情况下结果集的列和实体类的属性可以直接映射。如果返回的字段无法直接映射,就要用来建立映射关系。对于关联查询的这种情况,通常不能用来映射。......原创 2022-07-20 16:51:48 · 10923 阅读 · 0 评论 -
Mybatis批量操作解析
我们在项目中会有一些批量操作的场景,比如导入文件批量处理数据的情况(批量新增商户、批量修改商户信息),当数据量非常大,比如超过几万条的时候,在Java代码中循环发送SQL到数据库执行肯定是不现实的,因为这个意味着要跟数据库创建几万次会话。即使在同一个连接中,也有重复编译和执行SQL的开销。例如循环插入10000条(大约耗时3秒钟)∶在MyBatis里面是支持批量的操作的,包括批量的插入、更新、删除。......原创 2022-07-20 16:06:48 · 11891 阅读 · 0 评论 -
Mybatis动态SQL解析
由于前台传入的查询参数不同,所以写了很多的ifelse,还需要非常注意SQL语句里面的and、空格、逗号和转移的单引号这些,拼接和调试SQL就是一件非常耗时的工作。MyBaits的动态SQL就帮助我们解决了这个问题,它是基于OGNL表达式的。......原创 2022-07-20 15:48:33 · 11565 阅读 · 0 评论 -
Mybatis配置文件——全配置解析
为了让大家方便的使用,特意把总结放在文章开头,有帮助到你就点个关注呗配置名称配置含义配置简介包裹所有配置标签整个配置文件的顶级标签properties属性该标签可以引入外部配置的属性,也可以自己配置。该配置标签所在的同一个配置文件的其他配置均可以引用此配置中的属性setting全局配置参数用来配置一些改变运行时行为的信息,例如是否使用缓存机制,是否使用延迟加载,是否使用错误处理机制等。此项数据过于庞大,在下面细讲类型别名。.........原创 2022-07-20 15:35:38 · 16870 阅读 · 0 评论 -
Mybatis——#{}和${}的区别
在使用mybatis的时候我们会使用到#{}和${}这两个符号来为sql语句传参数,那么这两者有什么区别呢?#{}是预编译处理,是占位符,${}是字符串替换,是拼接符Mybatis在处理#{}的时候会将sql中的#{}替换成?号,调用PreparedStatement来赋值如:设userName=yuze看日志我们可以看到解析时将#{userName}替换成了 ?然后再把yuze放进去,外面加上单引号设userName=yuze看日志可以发现就是直接把值拼接上去了这极有可能发生sql注入,下面举了原创 2022-07-08 09:38:49 · 51683 阅读 · 107 评论 -
为什么使用mybatis
话不多说进入主题为什么要使用Mybatis在Mybatis出现以前,乃至于与mybatis相似的框架出现以前,我们是怎么连接数据库的?依靠JDBC而传统的JDBC连接数据库,大致是以下代码:如果项目当中的业务比较复杂,表非常多,各种操作数据库的增删改查的方法也比较多的话,那么这样代码会重复出现很多次。在每一段这样的代码里面,都需要自己去管理数据库的连接资源,如果忘记写close()了,就可能会造成数据库服务连接耗尽。对于结果集的处理,要把 ResultSet转换成POJO的时候,必须根据字段原创 2022-04-29 10:47:25 · 1037 阅读 · 1 评论