mybatis讲解

1.  #{}和${}

#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。

Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为pojo属性名称。如果pojo属性里有对象,想获得属性对象的属性,则使用对象.属性赋值。如:#{user.username}或${user,username}

${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。

2.

parameterType:指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中。

resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象。

3.mapper代理方式开发规范:

开发规范

Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。

Mapper接口开发需要遵循以下规范:

1、 Mapper.xml文件中的namespace与mapper接口的类路径相同。

2、 Mapper接口方法名和Mapper.xml中定义的每个statement的id相同

3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同

4、 Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

4.mybaits的返回值类型的别名在sqlMapconfig.xml里配置

mybaits里自己支持的别名类型:


别名


映射的类型


_byte


byte


_long


long


_short


short


_int


int


_integer


int


_double


double


_float


float


_boolean


boolean


string


String


byte


Byte


long


Long


short


Short


int


Integer


integer


Integer


double


Double


float


Float


boolean


Boolean


date


Date


decimal


BigDecimal


bigdecimal


BigDecimal


map


Map

5.resultType和resultMap的讲解:

resultType可以指定pojo将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功。

如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系,resultMap实质上还需要将查询结果映射到pojo对象中。

resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。                                    77bb

原文地址:https://www.cnblogs.com/hongyuansu/p/8596077.html

时间: 2024-10-03 16:09:06

mybatis讲解的相关文章

迄今为止把Mybatis讲解的最详细的PDF,图文并茂,通俗易懂

废话不多说,直接进入文章. 我们在使用MyBatis的时候,会在xml中编写sql语句.如图: 那么,MyBatis底层是如何构造sql,写了接口为啥就能执行sql? 下面带着这个疑问我们一步步分析. 梳理MyBatis的设计思路 创建SqlSessionFactory实例 实例化过程中,加载配置文件创建configuration对象 通过factory创建SqlSession 通过SqlSession获取mapper接口动态代理 动态代理回调sqlsession中某查询方法 SqlSessio

MyBatis之高级关联和集合映射(二、嵌套结果综合案例)

接上一篇,这一次,只讲嵌套结果,同样是上一次的三张表 上次忘了介绍 resultMap,补上: resultMap概念视图 constructor – 类在实例化时,用来注入结果到构造方法中 idArg – ID参数:标记结果作为ID可以帮助提高整体效能 arg – 注入到构造方法的一个普通结果 id – 一个ID结果:标记结果作为ID可以帮助提高整体效能 result – 注入到字段或JavaBean属性的普通结果 association – 一个复杂的类型关联:许多结果将包成这种类型 col

JavaEE秒杀系统实战应用(百度网盘)

课程目录 第01课00.秒杀系统项目需求分析 00:09:50 第02课01.秒杀系统项目说明 00:05:52 第03课02.秒杀系统-基础回顾Mybatis讲解1 00:36:16 第04课03.秒杀系统-基础回顾Mybatis讲解200:13:33 第05课04.秒杀系统-基础回顾Mybatis讲解300:31:40 第06课05.秒杀系统-基础回顾SpringMVC讲解00:21:19 第07课06.秒杀系统-数据库设计100:26:42 第08课07.秒杀系统-数据库设计200:21:

秒杀系统企业级实战应用之真实工业界案例

下载地址:百度网盘下载 目录: 第01课.秒杀系统项目需求分析  00:09:50   第02课.秒杀系统项目说明  00:05:52   第03课.秒杀系统-基础回顾Mybatis讲解1  00:36:16   第04课.秒杀系统-基础回顾Mybatis讲解200:13:33   第05课.秒杀系统-基础回顾Mybatis讲解300:31:40   第06课.秒杀系统-基础回顾SpringMVC讲解00:21:19   第07课.秒杀系统-数据库设计100:26:42   第08课.秒杀系统-

MyBatis Generator 详细讲解

MyBatis Generator中文文档 MyBatis Generator中文文档地址: http://mbg.cndocs.tk/ 该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置. 本文中所有节点的链接都是对应的中文文档地址,可以点击查看详细信息. 注:本文后面提到的MBG全部指代MyBatis Generator. 运行MyBatis Generator 有4种运行MBG的方

Mybatis 入门之resultMap与resultType讲解实例

resultMap:适合使用返回值是自定义实体类的情况 resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型 resultMap : type:映射实体类的数据类型 id:resultMap的唯一标识 column:库表的字段名 property:实体类里的属性名 配置映射文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-

MyBatis集成Spring开发 讲解

MyBatis集成Spring开发 讲解 简介:Spring集成Mybatis开发简述有两种方式,第一种是在applicationContext.xml中配置接口扫描类(同时也扫描了sql.xml配置文件)或者注入接口类(MapperScannerConfigurer.MapperFactoryBean这两个在test中有讲解如何配置),第二种是原生的Mybatis,不用接口开发,而在applicationContext.xml中当配置sqlSessionFactory时候,配置如conf.xm

Mybatis主配置文件常见使用讲解

在开发中我们通常将Mybatis中配置文件分两种,主配置文件与和dao对应的映射文件. 其实最后mybatis解析的还是一个主配置文件. 而映射文件会通过我们配置<mappers>属性,或指定扫描路径,将映射文件导入主配置文件,最后一起解析. 下面是主配置文件常见使用讲解: Mybatis中properties文件的引入 properties导入后可以将可能会改变的属性放在单独的文件,例如连接数据时的账号密码等,方便管理, 在mybatis中使用properties标签,如下,resource

JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) SpringMVC默认支持的类型 b) 简单数据类型 c) Pojo类型 d) Pojo包装类型 e) 自定义参数绑定 6.SpringMVC和Struts2的区别   第二天 1.高级参数绑定 a) 数组类型的参数绑定 b) List类型的绑定 2.@RequestMapping注解的使用 3.Con