文档章节

【Mybatis笔记】

静水楼台
 静水楼台
发布于 2017/04/13 12:41
字数 626
阅读 7
收藏 0
Mybatis-Spring整合在线文档-中文官网
Mybatis-Spring整合在线文档-英文官网

参数类型

1.Mybatis的Mapper如果只需要传入List或者Array,不需要显示的写parameterType,则可以省略,

<delete id="deleteBatch">//不需要写parameterType
    delete from rmp_binder where binder_id in
    <foreach collection="array" item="item" open="(" separator="," close=")">
        #{item}
    </foreach>
</delete>


2.传入的参数是List<Map>类型

<!-- 批量添加内容到活页夹 -->
<insert id="addContent2Binder" parameterType="list">			
			INSERT INTO rmp_binder_content(binder_id,cont_path,append_date) VALUES
		<foreach collection="list" item="item" separator=",">
			(#{item.binder_id},#{item.cont_path},#{item.append_date})
		</foreach>
</insert>
注意:括号()的位置,不能在<foreach>上。因为批量插入的格式为insert into xx(xx,xx,xx) values(xx,xx,xx),(xx,xx,xx),(xx,xx,xx)
每一次赋值都会有一个括号,而写在<foreach>上,只会生成一个括号。
List<HashMap<String, Object>> mapList = new ArrayList<HashMap<String, Object>>();
for (int i = 0 ; i < ids.length ; i++) {
	HashMap<String, Object> map = new HashMap<String, Object>();
	
	// map用来封装每条记录(id为自增)
	map.put("binder_id", binder_id);
	String contPath = "type=" + contentTypes[i] + ",id=" + ids[i];

	map.put("cont_path", contPath);
	map.put("append_date", new Date());

	mapList.add(map);//存入map
}
binderContentDao.addContent2Binder(mapList);//List<Map>类型


模糊查询

点击打开链接

主键自增

如果数据库支持自增,例如mysql,SQLServer,可以设置 useGeneratedKeys=”true”,然后把keyProperty 设成对应的列,就搞定了。

<insert id="insertBlog" parameterType="Blog" useGeneratedKeys=”true” keyProperty=”id”>  
	insert into Blog  
		(title,author_id)  
	values  
		(#{title},#{authorId})  
</insert>
还可以使用selectKey元素。使用mysql数据库nextval('student')为自定义函数,用来生成一个key。
<insert id="insertBlog" parameterType="Blog" >  
	<selectKey keyProperty="studentID" resultType="String" order="BEFORE">    
	   select nextval('id')    
	</selectKey>    
	insert into Blog  
		(id,title,author_id)  
	values  
		(#{id},#{title},#{authorId})  
</insert>


oracle主键自增
①创建序列
//创建序列BASIC_NOTICE
   CREATE SEQUENCE SEQ_BASIC_NOTICE
    INCREMENT BY 1 
    START WITH 1   
    NOMAXVALUE 
    NOCYCLE
    NOCACHE
②创建触发器
//创建触发器
CREATE OR REPLACE TRIGGER TRG_BASIC_NOTICE
  BEFORE INSERT
  ON BASIC_NOTICE
  FOR EACH ROW
  DECLARE
    -- local variables here
  BEGIN
    SELECT SEQ_BASIC_NOTICE.NEXTVAL INTO :NEW.NOTICE_ID FROM dual;
  END;

<insert id="savePerson" parameterType="hashmap" flushCache="true">
		<selectKey resultType="String"  keyProperty=”id” order=”BEFORE”>
			select SEQ_BASIC_NOTICE.nextval as id from dual
		</selectKey>
		insert into person(id, name, type, gongfu, description)
		    values(#{id}, #{name}, #{type}, #{gongfu}, #{description})	
	</insert>


其它

1.删除、修改、添加数据库会默认有返回值,返回值为影响的条数
所以在dao中声明方法时可以声明返回值为int型。

2.Mybatis为类名取别名
可以一个一个的设置,也可以批量设置
一个个的设置
<typeAlias>
    <typeAlias alias="" type="">
    <typeAlias alias="" type="">
<typeAlias>
批量设置
批量给指定包中的所有类设置别名,别名名称:类名(首字母小写)
<typeAlias>
    <package name="cn.soft.ssm.po"/>
<typeAlias>

3.Mybatis的Mapper.xml文件取别名
方法一:一个个的设置
<mappers>
    <mapper resource="/ / /xxMapper.xml"
</mappers>
方法二、批量设置
使用????????????


本文转载自:http://blog.csdn.net/javandroid/article/details/47125285

静水楼台
粉丝 0
博文 85
码字总数 2334
作品 0
杭州
程序员
私信 提问
MyBatis学习笔记系列教程

【MyBatis学习笔记】系列之预备篇一:ant的下载与安装 【MyBatis学习笔记】系列之预备篇二:ant入门示例 【MyBatis学习笔记】系列之一:MyBatis入门示例 【MyBatis学习笔记】系列之二:MyBat...

HenrySun
2016/10/15
140
0
MyBatis多对多保存示例——MyBatis学习笔记之十七

前几天有网友问到MyBatis多对多的问题,不过愧对网友厚爱的是,最近一直忙,直到现在才有时间处理此事。今天就先写一个多对多保存的示例,算是对这位网友的初步回应,以后会有更多相关的博文...

NashMaster2011
2013/08/11
0
0
如何在MyBatis-3.2.7中使用Log4j2 rc2——MyBatis学习笔记之十九

前天我上传了我的MyBatis系列课程(http://edu.51cto.com/course/course_id-1110.html)的第六讲,主要内容是如何使用Log4j2(具体版本为v2.0-rc1)为MyBatis 3.2.7配置日志。实际上目前最新...

NashMaster2011
2014/07/09
0
0
springmvc+mybatis学习笔记(汇总)

springmvc+mybatis学习笔记(汇总) 标签 : springmvc mybaits [TOC] 笔记分为两大部分:mybatis和springmvc mybatis springmvc 笔记内容主要是mybatis和springmvc的一些基本概念和使用方法,...

brianway
2016/03/30
2.3K
2
MyBatis多对多关联查询示例——MyBatis学习笔记之十八

MyBatis系列的上一篇博客发表时,笑笑还没有出生。转眼间八个月过去了,他已经是个大宝宝了。这么长时间未更新MyBatis系列的博客,想来真是罪过。不过有了宝宝之后,的确会分散自己很大一部分...

NashMaster2011
2014/04/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Rust 的 GUI 框架生态概览

本文比较全面比较了目前主流的 Rust 的 GUI 框架的表现。其中 ++ 表示非常好,-- 表示非常差,而 o 表示处于平均水平。 参与对比的框架共有 8 个,详细的比较结果如下: Electron + Neon El...

红薯
17分钟前
3
0
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
3
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
3
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
7
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部