`
javandroid
  • 浏览: 27668 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

【Mybatis笔记】

 
阅读更多
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>
方法二、批量设置
使用????????????


分享到:
评论

相关推荐

    mybatis笔记.zip

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC ...通过阅读这份“mybatis笔记”,你可以更深入地了解如何使用 MyBatis 进行数据访问,提升你的开发效率。

    mybatis笔记

    mybatis笔记

    传智播客mybatis笔记

    ### MyBatis基础知识与应用详解 #### 一、MyBatis概述 MyBatis是一个优秀的持久层框架,它简化了Java应用程序与关系型数据库交互的复杂性。原名为iBatis,起初作为Apache的一个开源项目,后于2010年迁移到Google ...

    狂神说Mybatis笔记,md格式的

    本笔记基于狂神说的讲解,将全面解析Mybatis的核心概念、使用方法以及实战技巧。 1. **Mybatis概述** Mybatis 是一个轻量级的ORM(Object-Relational Mapping)框架,它允许开发者用XML或注解来配置和映射原生信息...

    【狂神说】MyBatis笔记(全).zip

    【狂神说】MyBatis笔记,全部,完整,格式为md

    MyBatis笔记

    ### MyBatis搭建与使用详解 #### 一、MyBatis简介 MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以通过简单...

    mybatis笔记一对应代码

    【标题】"mybatis笔记一对应代码"涵盖了MyBatis框架的基础使用和核心概念,这是一份关于如何在实际开发中应用MyBatis的详细笔记。MyBatis是一款优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者注解...

    吴天雄-Mybatis笔记.doc

    Mybatis 是一款流行的开源持久层框架,源自 iBatis,主要功能是对 JDBC 的封装,提供半自动化的 ORM(对象关系映射)支持。这个框架允许开发者编写 SQL 命令来处理数据库操作,同时减轻了编写传统 JDBC 代码的负担。...

    MyBatis笔记.md

    MyBatis笔记.md

    MyBatis笔记(狂神说java)

    【MyBatis笔记(狂神说java)】是针对Java开发者的一份详尽的MyBatis学习资料,它深入浅出地介绍了MyBatis这一流行持久层框架的使用与实践。MyBatis是一个轻量级的Java ORM(对象关系映射)框架,它解决了在Java开发...

    mybatis笔记(二)

    【标题】"mybatis笔记(二)" 涉及到的是MyBatis框架在使用时的一些深入探讨,尤其是与MySQL数据库连接以及Java 1.7版本的兼容性问题。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。这个...

    mybatis笔记.rar

    在提供的压缩包`02mybatis笔记`中,很可能是对MyBatis的进一步学习和实践总结,包括了如何创建和使用Mapper,如何编写动态SQL,以及如何处理输入输出参数等内容。这份笔记对于初学者来说是非常有价值的参考资料,...

    狂神说java MyBatis 笔记

    【狂神说java MyBatis 笔记】 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解...

    java-Mybatis笔记.docx

    "java-Mybatis笔记.docx" 从标题和描述中,我们可以看出这篇笔记是关于java和Mybatis的相关知识点,下面我们将对这些知识点进行详细的解释和分析。 首先,笔记中提到使用jdbc操作数据库的痛苦经历,包括加载驱动、...

    Mybatis笔记.pages

    Mybatis笔记.pages

    MyBatis笔记珍藏版

    MyBatis笔记珍藏版 很容易学的 请用oneNote查看 相信对你的帮助不是一个积分就能比拟的

Global site tag (gtag.js) - Google Analytics