我们来继续研究 mybatis 框架sql映射文件的属性
温馨提示:本问阅读需要4分钟,建议收藏后阅读!
各位小伙伴
祝大家元旦快乐
开始我们今天的分享
我们已经了解了 mybatis 框架的两种使用方式以及主配置文件 (mybatis-config.xml) 的属性。那么今天我们来一起了解sql 映射文件 (userMapper.xml) 的属性。
parameterType 输入参数
1)简单类型的单个参数
我们来模拟一个需求:根据用户 id 查询用户信息
先在接口类 UserMapper.Java 中,添加一个接口。
然后在对应的 UserMapper.xml 中,填写 sql 查询语句。
在测试类中测试一下。这个也没什么说的我们最近一直都在测试这些。
2)简单类型的多个参数
模拟需求:通过登录名和密码验证用户是否存在
先在接口类 UserMapper.Java 中,添加一个接口。这里需要添加两个参数
然后在对应的 UserMapper.xml 中,填写 sql 查询语句。再添加两个参数的时候可以在大括号里填上 0 代表第一个参数,1 第二个参数以此类推。
在测试类中测试一下。
这是2个参数,要是参数再多点,我们这样一个个的标,很麻烦。这是就可以利用包装对象,直接传一个对象进去。
3)包装类对象作为输入参数进行查询
模拟需求:根据界面输入的用户名称或者登录名称来查询符合条件的用户列表。
先创建一个包装类,包装我们的 User 对象,这里就可以包装很多参数了。
在接口类 UserMapper.Java 中,添加一个接口。
然后在对应的 UserMapper.xml 中,填写 sql 查询语句。
在测试类中测试一下。
再多的参数也不用怕了。
resultType/resultMap 对象
1)简单类型的输出例:Integer String Long 。
在接口类 UserMapper.Java 中,添加一个接口,查询用户总数。
然后在对应的 UserMapper.xml 中,填写 sql 查询语句。
在测试类中测试一下。
2)对象的输出
我们之前做的都是对象输出,给大家简单的测试一下。
3)HashMap 的输出
在接口类 UserMapper.Java 中,添加一个接口。
然后在对应的 UserMapper.xml 中,填写 sql 查询语句。
在测试类中测试一下。
这样看着不方便,我把它复制出来大家看一下结果。
3)resultMap 对象输出
这个是一个重点,假设我们的数据库命名和我们的 Java 属性命名是不一样的,这样我们就是映射不上,这个时候就需要手动设置一个 resultMap 来解决这个问题。
在接口类 UserMapper.Java 中,添加一个接口。
然后在对应的 UserMapper.xml 中,填写 sql 查询语句。
其中:
id 标签代表数据库表的主键
column 代表列名或者 sql 中的别名
property 代表 java 对象的属性名
在测试类中测试一下。
还是复制出来看一下。
这个resultMap很重要,大家多去试一下。至于有什么作用呢?我们之后会分享给大家的。
今天的分享就到这里了
伙伴们
元旦快乐
拜拜
有任何问题都可以在文章留言,娜姐都看着的呢!
合作,投稿,转载,版权问题请联系 李娜:Lina_Java
- 多线程中的ManualResetEvent
- 进程与线程
- ASP.NET TreeView相关问题
- 温故而知新:WinForm/Silverlight多线程编程中如何更新UI控件的值
- ASP.Net Web Page深入探讨
- 用Design+Blend轻松制作环形文字
- 对asp.net响应事件的试验
- 为服务器控件加入客户端事件处理的几种方法
- 温故而知新:Delegate,Action,Func,匿名方法,匿名委托,事件
- 如何在Silverlight4中使用摄像头
- Flask的集中控制
- 64位IIS(IIS6/IIS7)上跑Asp + Jet.Oledb的设置要点
- windows 2003 32位系统能支持的最大内存数
- .Net Core内存回收模式及性能测试对比
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 如何使用Cython对python代码进行加密
- PHP快速排序算法实现的原理及代码详解
- 从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
- keras实现VGG16 CIFAR10数据集方式
- PyTorch: Softmax多分类实战操作
- 为什么称python为胶水语言
- opencv 图像礼帽和图像黑帽的实现
- python文件及目录操作代码汇总
- 使用pyplot.matshow()函数添加绘图标题
- 如何卸载python插件
- Keras实现支持masking的Flatten层代码
- 用opencv给图片换背景色的示例代码
- 解决Keras 自定义层时遇到版本的问题
- Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
- Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法