首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
mybatis从入门到精通 代码
2024-11-09
MyBatis从入门到精通:第一章测试代码
package tk.mybatis.simple.mapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Befo
MyBatis从入门到精通(一):MyBatis入门
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. MyBatis简介 2001年,Clinton Begin发起了一个名为iBATIS的开源项目,最初侧重于密码软件的研发,后来发展成为一款基于Java的持久层框架. 2004年,Clinton将iBATIS的名字和源码捐赠给了Apache软件基金会. 2010年,核心开发团队决定离开Apache软件基金会,并且将iBATIS改名
MyBatis从入门到精通(二):MyBatis XML方式的基本用法之Select
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 明确需求 书中提到的需求是一个基于角色的权限控制需求(RBAC,即Role-Based Access Control),提到权限管理,相信大家都不陌生,因为大部分的系统都是需要权限管理的,我在上家公司负责的系统之一就是权限系统,设计思路和书中提到的差不多,大致描述如下: 1)权限点用来管理要控制权限的资源,比如某个页面,某个按钮. 2)创建
MyBatis从入门到精通(三):MyBatis XML方式的基本用法之多表查询
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 多表查询 上篇博客中,我们示例的2个查询都是单表查询,但实际的业务场景肯定是需要多表查询的,比如现在有个需求: 查询某个用户拥有的所有角色.这个需求要涉及到sys_user,sys_user_role,sys_role三张表,如何实现呢? 首先,在SysUserMapper接口中定义如下方法. /** * 根据用户id获取角色信息 * *
MyBatis从入门到精通(四):MyBatis XML方式的基本用法之增删改
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. insert用法 1.1 简单的insert方法 假如现在我们想新增一个用户,该如何操作呢? 首先,在接口SysUserMapper中添加如下方法. /** * 新增用户 * * @param sysUser * @return */ int insert(SysUser sysUser); 然后打开对应的SysUserMapper.xml
MyBatis从入门到精通(五):MyBatis 注解方式的基本用法
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. @Select 注解 1.1 使用Sql语句设置别名方式 假设现在有个需求:根据id查询角色信息.使用注解方式该如何实现呢? 首先,在接口SysRoleMappper中添加如下方法: @Select({"SELECT id,role_name roleName,enabled,create_by createBy,create_t
MyBatis从入门到精通(六):MyBatis动态Sql之if标签的用法
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用if标签生成动态的Sql,主要包含以下3个场景: 根据查询条件实现动态查询 根据参数值实现动态更新某些列 根据参数值实现动态插入某些列 1. 使用if标签实现动态查询 假设有这样1个需求:根据用户的输入条件来查询用户列表,如果输入了用户名,就根据用户名模糊查询,如果输入了邮箱,就根据邮箱精确查询,如果同时输入了用户名和邮箱
MyBatis从入门到精通(七):MyBatis动态Sql之choose,where,set标签的用法
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用choose,where,set标签生成动态的Sql. 1. choose 用法 假设有这样1个需求:当参数id有值时优先使用id查询,当id没有值时就去判断用户名是否有值,如果有值就用用户名查询,如果没值,就使查询无结果. 首先,我们在接口SysUserMapper中添加如下方法: /** * 根据用户id或用户名查询
MyBatis从入门到精通(八):MyBatis动态Sql之foreach标签的用法
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用foreach标签生成动态的Sql,主要包含以下3个场景: foreach 实现in集合 foreach 实现批量插入 foreach 实现动态update 1. foreach 实现in集合 假设有这样1个需求:根据传入的用户id集合查询出所有符合条件的用户,此时我们需要使用到Sql中的IN,如 id in (1,100
MyBatis从入门到精通(九):MyBatis高级结果映射之一对一映射
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解MyBatis中实现查询结果一对一映射的3种方式: 使用别名实现自动映射 使用resultMap配置 使用resultMap的association标签配置 1. 使用别名实现自动映射 假设有这样1个需求:根据用户id查询用户信息的同时获取用户拥有的角色,为了举例,我们假设一个用户只能拥有一个角色(实际情况肯定不是这样的). 一般
MyBatis从入门到精通(十):使用association标签实现嵌套查询
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解使用association标签实现嵌套查询的方法. 1. 明确需求 仍然延用上篇博客中的需求:根据用户id查询用户信息的同时获取该用户的角色信息(假设一个员工只能拥有一个角色). 在上篇博客中,我们分别使用了3种方式来实现这个需求,但这3个需求都有一个共同点,就是我们使用了多表查询,即查询一次数据库就获取到我们想要的所有数据. 有
MyBatis从入门到精通(十一):MyBatis高级结果映射之一对多映射
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解MyBatis中如何使用collection标签实现查询结果一对多映射. 1. 使用collection标签 需求:根据用户id查询用户信息的同时获取用户拥有的角色,一个用户可以拥有1个或多个角色. 一般情况下,不建议直接修改数据库表对应的实体类. 所以这里我们延用之前博客中新建的类SysUserExtend,并添加如下代码,如下
MyBatis从入门到精通(十二):使用collection标签实现嵌套查询
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解使用collection标签实现嵌套查询的方法. 1. 需求升级 在上篇博客中,我们实现了需求:根据用户id查询用户信息的同时获取用户拥有的角色. 因为角色可以拥有多个权限,所以本篇博客我们升级需求为:根据用户id查询用户信息的同时获取用户拥有的角色以及角色包含的权限. 2. 实现方式 因为我们需要使用到权限表的映射,所以我们需要
MyBatis从入门到精通(1):MyBatis入门
作为一个自学Java的自动化专业211大学本科生,在学习和实践过程中"趟了不少雷",所以有志于建立一个适合同样有热情学习Java技术的参考"排雷手册". 最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正! 第1章 MyBatis入门 1.1 MyBatis简介 MyBatis是一款支持自定义SQL查询.存储过程和高级映射的持久层框架.消除了几乎所有JDBC代码和参数的手动设置
MyBatis从入门到精通(十三):使用discriminator鉴别器映射
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解鉴别器映射discriminator标签的简单用法. 1. 明确需求 在设计之初,sys_role表的enabled字段有2个可选值,其中1代表启用,0 代表禁用,当状态启用时就有对应的权限信息,当状态禁用时就没有对应的权限信息,只需查询出角色信息即可. 所以我们的需求为:根据用户id查询用户拥有的角色列表,如果角色是启用的,就继
MyBatis从入门到精通(十四):在MyBatis中使用类型处理器
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解在MyBatis中如何使用类型处理器. 1. 明确需求 在设计之初,sys_role表的enabled字段有2个可选值,其中0 代表禁用,1代表启用,而且实体类中我们使用的是Interger类型: /** * 有效标志 */ private Integer enabled; public Integer getEnabled()
MyBatis从入门到精通(第5章):5.4 Example 介绍
jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.Eclipse Version: 2019-12 M2 (4.14.0) MyBatis从入门到精通(第5章):MyBatis代码生成器 在 MBG 的 context 中将 targetRuntime 配置为 MyBatis3 时,MBG 会生成和 Example 相关的对象和方法,这一节就来介绍与 Example 相关的方法. 新建一个针对 country 表相关的 Example MBG 配置文件,新增的配置文件 gen
MyBatis从入门到精通(第9章):Spring集成MyBatis(下)
MyBatis从入门到精通(第9章):Spring集成MyBatis(下) springmvc执行流程原理 mybatis-spring 可以帮助我们将MyBatis代码无缝整合到Spring中.使用这个类库中的类,Spring将会加载必要的MyBatis工厂类和Session类. MyBatis Spring Adapter项目地址为: https://github.com/mybatis/spring <dependency> <groupId>org.mybatis<
MyBatis从入门到精通(第9章):Spring集成MyBatis(中)
MyBatis从入门到精通(第9章):Spring集成MyBatis(中) 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.应该将应用自身的设计和具体的实现技术解耦.技术实现是应用的底层支撑,它不应该直接对应用产生影响. 框架一般处在低层应用平台(如 J2EE)和高层业务逻辑之间的中间层. mybatis-spring 可以帮助我们将MyBatis代码无缝整合到Spring中.使用这个类库中的类,Spring将会加载必要的MyBatis工厂类和
MyBatis从入门到精通(第9章):Spring集成MyBatis(上)
MyBatis从入门到精通(第9章):Spring集成MyBatis(上) Spring是一个为了解决企业级Web应用开发过程中面临的复杂性,而被创建的一个非常流行的轻量级框架. mybatis-spring 可以帮助我们将MyBatis代码无缝整合到Spring中.使用这个类库中的类,Spring将会加载必要的MyBatis工厂类和Session类. MyBatis Spring Adapter项目地址为: https://github.com/mybatis/spring master
MyBatis从入门到精通(第5章):MyBatis代码生成器
jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.Eclipse Version: 2019-12 M2 (4.14.0) MyBatis从入门到精通(第5章):MyBatis代码生成器 MyBatis Generator ,后文中会使用缩写MBG来代替.MBG下载 MBG 通过丰富的配置可以生成不同类型的代码,代码包含了数据库表对应的实体类 .Mapper 接口类. Mapper XML 文件和 Example 对象等, 这些代码文件中几乎包含了全部的单表操作方法 .如果大
热门专题
selenium在识别元素时设置红框标记
ipv6外网ping不通openwrt
easyui accordion 默认折叠
base64url 解析
C# 图片 二进制数组 结构
httpclient发送消息到本地电脑
phpstrom 文件修改记录
element table单选功能 切换分页不要选中
syslog服务器搭建 windows
如何制作 itextsharp
ubuntu root vscode 白屏
vue get请求传递参数弄成json
rabbitmq文档
verilog中定义的Reg没有初始值
thoughtworks.xstream 转换复杂对象
gns3中ospfv3让r1学习到r2
windows命令脚本安装和卸载教程
opencascade-7.4.0 需要运行 env.bat
jquery 操作json
jquery删除选中的复选框