resultMap 返回结果的映射



resultMap的id是这个映射的名字,可在查询语句中引用表示此查询返回该结果:

t

ype是模型对象的类名,也可以写成别名(简化作用)

简化成别名时,需要先注册别名:



resultMap内部

<id>标签表示该查询中涉及的主键的映射关系

<result>标签表示普通数据属性或字段的映射关系

property表示数据模型类中的属性名

column表示数据表中的字段名

<select> 表示使用select语句查询数据的方法

id属性与Dao中的方法相同!

resultMap表示返回结果(因为返回的数据对象可能很复杂,因些需要单独设置映射)

parameterType表示传入参数类型(利用HashMap可以传入一组参数)

SQL语句中的标签

与JSTL非常相似

<trim>一行的意思是此处会生成一个Where子句(prefix规定的)

如果该子句在组合过程中产生了多作的AND|OR,则trim会把多作的去掉

以保证SQL语句的正确性

<if>会测试相应的条件是否成立,成立则if中的表达式进入SQL语句,否则忽略

通过<if>可以动态拼接SQL表达式!

${ } 与 #{ } 两者有很大的区别!

${ }是替换性质的,如sortProperty的值将会出现在 ${ sortProperty } 的位置

因此有SQL注入的风险

#{ }会变成SQL语句中的 ? 参数,? 参数没有注入风险。

如果传入到<select>中的数据是SQL语句的字段名或运算符、关键字,则只能使用${ }

因为使用 #{ } 会变成 ?
,将会造成SQL语法错误

如 order by ? ? 是错误的,因为order by后面应该跟

列名 之后是
排序方向的关键字 ,不能是 ?

<insert> 表示插入数据的方法

如果数据库中有自增Id,而且还希望在插入数据之后获得新插入的Id值,则需要添加

useGeneratedKeys=”true” 及 keyProperty=”主键名”

执行成功后,可以通过

student.getStudentId() 获取主键值,也就是主键值会填充到传入的对象中   更新数据

删除数据

MyBatis映射示例的更多相关文章

  1. 第一个Mybatis程序示例 Mybatis简介(一)

    在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“internet”和“aba ...

  2. 基于eclipse的mybatis映射代码自动生成的插件

    基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...

  3. 基于eclipse的mybatis映射代码自动生成的插件http://blog.csdn.net/fu9958/article/details/7521681

    基于eclipse的mybatis映射代码自动生成的插件 分类: JAVA 数据库 工具相关2012-04-29 00:15 2157人阅读 评论(9) 收藏 举报 eclipsegeneratori ...

  4. Mybatis映射文件完整模板参照

    Mybatis映射文件完整模板参照 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE map ...

  5. 详解mybatis映射配置文件

    一  mybatis 映射文件结构 mybatis映射配置文件存在如下顶级元素,且这些元素按照如下顺序被定义. cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的 ...

  6. Mybatis映射文件中#取值时指定参数相关规则

    Mybatis映射文件中#取值时指定参数相关规则 在#{}中,除了需要的数值外,还可以规定参数的一些其他规则. 例如:javaType,jdbcType,mode(存储过程),numericScale ...

  7. SSM实战——秒杀系统之DAO层实体定义、接口设计、mybatis映射文件编写、整合Spring与Mybatis

    一:DAO实体编码 1:首先,在src目录下,新建org.myseckill.entity包,用于存放实体类: 2:实体类设计 根据前面创建的数据库表以及映射关系,创建实体类. 表一:秒杀商品表 对应 ...

  8. 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案

    1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...

  9. MyBatis 映射文件详解

    1. MyBatis 映射文件之<select>标签 <select>用来定义查询操作; "id": 唯一标识符,需要和接口中的方法名一致; paramet ...

随机推荐

  1. Linux更改Apache网站目录出错:Document root must be a directory解决

    Linux更改Apache网站目录出错:Document root must be a directory解决   修改   DocumentRoot     <Directory " ...

  2. 大数据量下MySQL插入方法的性能比较

    不管是日常业务数据处理中,还是数据库的导入导出,都可能遇到需要处理大量数据的插入.插入的方式和数据库引擎都会对插入速度造成影响,这篇文章旨在从理论和实践上对各种方法进行分析和比较,方便以后应用中插入方 ...

  3. 设置CentOS控制台分辨率图文详解

    最小化安装CentOS,默认是没有图形界面的,这个正合我意.但是命令行界面很小,会有很多输出被迫换行写,影响美观. 那么,怎样调整终端分辨率呢 解决方案:修改引导程序配置 /boot/grub/gru ...

  4. [svc]salt基本原理

    转载自:来自:http://tech.mainwise.cn/?p=438 说明:salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成 ...

  5. Windows剪贴板操作简单小例

    1.复制文字到剪贴板 CString strText = L"须要拷贝到剪贴板的文字"; if ( ::OpenClipboard(m_hWnd) ) { if ( ::Empty ...

  6. 479. Second Max of Array【easy】

    Find the second max number in a given array. Notice You can assume the array contains at least two n ...

  7. angularjs 构建主页 内置过滤器、日期的格式化

    从构建负责管理主屏幕的 MainController 开始.在这个 MainController 控制器内,只需设置一个每秒运转一次,同时更新一个局部作用域变量的延时 angular.module(' ...

  8. 在form action中滥用绝对路径导致session的attribute丢失(无法正常保存)

    症状: 刚才在做一个利用session的attribute保存用户的id的实验,login.jsp输入用户id,提交给LoginServlet去数据库验证,然后LoginServlet根据验证情况跳转 ...

  9. 部署静态页面到nginx

    1.将页面上传到某个位置.比如:/home/myapp/navi 2. server_name localhost;  localhost 更换为自己的域名 3.更改配置文件./usr/local/n ...

  10. redis使用场景介绍

    一:缓存——热数据 热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存,毕竟强大到冒泡的QPS和极强的稳定性不是所有类似工具都有的,而且相比于memcached还提供了 ...