mybatis的实际应用
简单基本的增删改查语句就不说了,直接从一对一,一对多的关系开始:
association联合:联合元素用来处理“一对一”的关系;
collection聚集:聚集元素用来处理“一对多”的关系;
MyBatis 可以用两种方式加载:
1. select: 执行一个其它映射的SQL 语句返回一个Java实体类型。较灵活;
2. resultsMap: 使用一个嵌套的结果映射来处理通过join查询结果集,映射成Java实体类型。
实例:
<resultMap id="resultMap" type="***.vo.Article">
<id column="id" property="id" />
<result column="user_id" property="userId" />
//...
<result column="create_time" property="createTime" />
<result column="modify_time" property="modifyTime" />
<result column="delete_time" property="deleteTime" />
<association property="category" column="id" select="getCategory" />
<collection property="tags" column="id" javaType="ArrayList"
ofType="com.zhaozhi.writing.service.vo.Tag" select="getTags" />
</resultMap>
<resultMap id="categoryMap" type="***.vo.Category">
<id column="id" property="id" />
<result column="name" property="name" />
//..
<result column="create_time" property="createTime" />
<result column="modify_time" property="modifyTime" />
<result column="delete_time" property="deleteTime" />
</resultMap>
<resultMap id="tagMap" type="***.vo.Tag">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="create_time" property="createTime" />
<result column="modify_time" property="modifyTime" />
<result column="delete_time" property="deleteTime" />
</resultMap>
<select id="getCategory" resultMap="categoryMap" parameterType="java.lang.Integer">
select c1.* from category as c1,article_categories a2,article a3 where
c1.id=a2.category_id and c1.user_id = a3.user_id
and a2.article_id=a3.id and a3.id=#{id} and c1.delete_time is null and
a2.delete_time is null and a3.delete_time is null
</select>
<select id="getTags" resultMap="tagMap" parameterType="java.lang.Integer">
select t1.* from tag as t1,article_tags a2,article a3 where t1.id=a2.tag_id
and a2.article_id=a3.id and a3.id=#{id} and a2.delete_time is null
</select>
mybatis的实际应用的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...
- [原创]mybatis中整合ehcache缓存框架的使用
mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...
- 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程
本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...
- mybatis plugins实现项目【全局】读写分离
在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...
- MyBatis基础入门--知识点总结
对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...
- Mybatis XML配置
Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...
- MyBatis源码分析(一)开篇
源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...
- (整理)MyBatis入门教程(一)
本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...
- MyBatis6:MyBatis集成Spring事物管理(下篇)
前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...
随机推荐
- 07、python的基础-->数据类型、集合、深浅copy
一.数据类型 1.列表 lis = [11, 22, 33, 44, 55] for i in range(len(lis)): print(i) # i = 0 i = 1 i = 2 del li ...
- kafka的简介
1. kafka是一个分布式消息队列.具有高性能.持久化.多副本备份.横向扩展能力.生产者往队列里写消息,消费者从队列里取消息进行业务逻辑.一般在架构设计中起到解耦.削峰.异步处理的作用. 1.1 b ...
- git 关于commit命令的修改
1 修改最后一次提交的信息 git commit --amend 2 对于历史提交 git rebase -i HEAD~5 没毛病,
- webservice的使用-axis1-01
1.搭建axis服务器 1.1 下载axis-bin-1_4.zip文件并解压 1.2 拷贝\axis-1_4\webapps目录下的axis到tomcat目录下的webapps目录下并启动 1.3 ...
- mavenFailed to execute goal org.apache.maven.plugins:maven-surefire-plugin解决方法
在项目上右键==>属性==>java构建路径==>源代码,然后把几个文件夹全部删除,然后再添加文件夹中把它们从新添加,然后再maven intall,部署.
- Codeforces 1105E 最大独立集 状态DP 中途相遇法
题意:你有一个字符串, 有两种操作,一种是改变字符串,一种是某个用户询问这个字符串,如果一个用户每次查询字符串的时候都是他的用户名,他就会高兴.问最多有多少个用户会高兴? 题意:容易发现,在两个1操作 ...
- jq enter键发送
$('.content').keypress(function(e) { if(e.keyCode === 13) { //调用接口 return false; } }) .
- 【JavaWeb项目】一个众筹网站的开发(九)邮件开发
Java官方支持邮件开发,Javax-mail jdk中默认没有,需要另外下载 apache的基于Javax-mail开发了commons-mail,更加简单高效,推荐使用 一.电子邮件接收和发送协议 ...
- 调试Android有什么错误
项目目录的cmd调试查看有什么错误 gradlew processDebugManifest --stacktrace
- input select 值得绑定与获取
<div style="margin-top:100px"> <!--Input 值得绑定--> <div id="app20"& ...