MyBatis
文丑颜不良啊
平平无奇的Java开发小白
展开
-
MyBatis中一对多映射与一对多查询
一对多的映射只有两种配置方式,都是使用collection标签进行的。collection集合的嵌套结果映射和association类似,集合的嵌套结果就是指通过一次SQL查询将所有的结果查询出来,然后通过配置的结果映射,将结果映射到不同的对象中去。在一对多的关系中,主表的一条数据会对应关联表中的多条数据,因此一般查询时会查询出多个结果,按照一对多的数据结构存储数据的时候,最终的结果数会小于等于查询的总记录数。在我们设定的虚拟系统中,一个用户拥有多个角色,每个角色又是多个权限的集合,所以要渐进式的去实原创 2020-08-25 15:31:06 · 719 阅读 · 0 评论 -
MyBatis的一对一映射
一对一映射其实就是我们常说的一对一查询。在生活中,到处充斥着一对一、一对多的例子。我们之前说过的那个用户-角色-权限的系统就是一个活生生的案例。当存在比较复杂的对应关系时,我们可能要写多个方法来分别查询这些数据,然后再组合到一起。这种处理方式特别适合用在大型系统上,由于分库分表,这些用法可以减少表与表之间的关联查询,方便系统进行扩展。但是在一般的企业级应用中,使用MyBatis的高级结果映射便可以轻松的处理这种一对一、一对多的关系。使用自动映射处理一对一关系我们假设在之前提到的那个系统模型中一个用户只原创 2020-08-14 13:44:09 · 3931 阅读 · 0 评论 -
Mybatis注解的基本用法
Mybatis注解方式就是将SQL语句直接写在接口上,而省略了去XML文件中写查询的SQL语句。这种方法的优点是对于需求比较简单的系统,效率较高。缺点是当SQL语句有变化时都需要重新编译代码。所以一般情况下不建议使用注解方式,不论是自己开发还是团队开发,都不建议使用注解的开发方式。在Mybatis注解SQL中,最基本的就是@Select、@Insert、@Update、@Delete四种,换句话说就是,增删改查都可以使用注解方式来完成。@Select之前如果我们不使用注解的方式来进行select原创 2020-08-12 17:01:04 · 1634 阅读 · 0 评论 -
MyBatis中foreach用法
foreach用法SQL语句中有时会使用in关键字,如id in {1,2,3},我们可以使用${ids}方式直接获取值,但是这种方法不能防止SQL注入,想避免SQL注入的话就需要使用#{id}的方式,这时我们就可以配合使用foreach标签了。foreach可以对数组、Map或实现了Iterable接口(List、Set)的对象进行遍历。数组在处理时会转换为List对象,因此foreach遍历的对象可以分为两大类:Iterable类型和Map类型。foreach实现in集合foreach实现i原创 2020-08-14 10:09:13 · 9100 阅读 · 2 评论 -
MyBatis与动态SQL查询
MyBatis的强大特性之一便是它的动态SQL,现在使用的MyBatis的动态SQL在XML中支持以下几种标签:if关于if的用法有如下几种: 在where条件中使用if 在update更新列中使用if 在insert动态插入列中使用if我们先来进行在where条件中使用if:数据还是之前的数据,假设现在有一个新的需求:实现一个用户管理的高级查询功能,根据输入的条件去检索用户信息。当只输入用户名时,需要根据用户名进行模糊查询;当只输入密码时,根据密码进行匹配,当同时输入这两个条件的时候,原创 2020-08-13 19:31:26 · 434 阅读 · 0 评论 -
MyBatis与简单增删改查
selcet在我们之前说过的权限系统中,我们需要使用到查询功能来查询用户、角色和权限等数据。在使用纯粹的JDBC时,需要写查询语句,并且对结果集进行手动处理,将结果集映射到对象的属性中。使用MyBatis时,只需要在XML中添加一个select元素,写一个SQL,再做一些简单的配置,就可以将结果直接映射到对象中。总结一下操作方法:在接口类中写查询的方法,常见的如selectById()、selectAll()等 在与接口类对应的XML文件中写SQL语句 写测试类文件进行接口中方法的测试接下来我原创 2020-08-13 14:24:30 · 229 阅读 · 0 评论 -
Mybatis基本查询准备
之前我们说过,MyBatis是一款优秀的支持自定义SQL查询、存储过程和高级映射的持久层框架,而且,与JDBC相比,MyBatis简化了相关的代码,使得代码更加简洁。所以,MyBatis最常用的地方就是结合数据库一起进行相关CRUD操作。在正式进行增删改查操作前,我们需要准备一下需要的数据库和其他文件。我们假设一个场景,来设定一个简单的权限控制需求,采用RBAC(Role-Based Access Control,基于角色的访问控制方式),这个简单的权限管理将会是我后续文章的基础示例。那么这个权限管理都原创 2020-08-13 09:42:07 · 204 阅读 · 0 评论 -
我了解的Mybatis
MyBatis的前身是iBATIS,是Clinton Begin在2001年发起的一个开源项目,最初侧重于密码软件的开发,后来发展成为一款基于Java的持久层框架。2004年,Clinton将iBATIS的名字和源码捐赠给了Apache软件基金会,接下来的6年中,开源软件世界发生了巨大的变化,一切开发实践、基础设施、许可,甚至数据库技术都彻底改变了。2010年,核心开发团队离开了Apache软件基金会,并且将iBATIS改名为MyBatis。MyBatis是一款优秀的支持自定义SQL查询、存储过程和高级原创 2020-08-12 17:19:29 · 147 阅读 · 0 评论