mybatis多表查询,自动生成id
主要是在配置文件中,配置好所要包含的字段。
类关系:account----role,1对1
account包含role类
java类:
public class Account{
private Integer accountId;
private String username;
private String password;
private Role role;
}
public class Role {
private Integer id;
private Integer leave;
private String name;
}
数据库表:
--
-- 表的结构 `account`
-- CREATE TABLE IF NOT EXISTS `account` (
`accountId` int(32) NOT NULL AUTO_INCREMENT,
`userName` varchar(32) COLLATE utf8_bin NOT NULL,
`password` varchar(32) COLLATE utf8_bin NOT NULL,
`roleId` int(32) NOT NULL,PRIMARY KEY (`accountId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1005 ;
--
-- 表的结构 `role`
-- CREATE TABLE IF NOT EXISTS `role` (
`id` int(21) NOT NULL AUTO_INCREMENT,
`r_leave` int(11) NOT NULL,
`name` varchar(32) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=12 ;
因为我是分开的,所有有两个配置文件。可以写在一个配置文件中
account-resultmap.xml设置,在配置文件中,也包含了role类的所有对应:
<mapper namespace="accountMap">
<!-- id 用于*-mapper.xml 中进行自动填值 ,-->
<resultMap type="com.hoo.entity.Account" id="accountResultMap">
<id property="accountId" column="accountId"/>
<result property="username" column="userName"/>
<result property="password" column="password"/>
<association property="role" javaType="com.hoo.entity.Role">
<id property="id" column="id"/>
<result property="leave" column="r_leave"/>
<result property="name" column="name"/>
</association>
</resultMap>
</mapper>
mapper.xml设置,查的时候,直接查两表,mybatis自动对应数据:
<select id="getAllAccount" resultType="list" resultMap="accountMap.accountResultMap">
<![CDATA[
select * from account a,role r where a.roleId=r.id
]]>
</select> <!-- accountResultMap是account-resultmap.xml中定义的resultmap -->
<select id="getAccountById" parameterType="string" resultType="com.hoo.entity.Account" resultMap="accountMap.accountResultMap">
<![CDATA[
select * from account a,role r where a.accountId = #{id} and a.roleId=r.id
]]>
</select>
<!-- 自动生成id策略 -->
<insert id="addAccount" useGeneratedKeys="true" keyProperty="accountId" parameterType="account">
insert into account(accountId, status, username, password,phone,email,roleId)
values(#{accountId}, #{status}, #{username}, #{password},#{phone},#{email},#{role.id})
</insert>
mybatis多表查询,自动生成id的更多相关文章
- Mybatis最入门---代码自动生成(generatorConfig.xml配置)
[一步是咫尺,一步即天涯] 经过前文的叙述,各位看官是不是已经被Mybatis的强大功能给折服了呢?本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成.这里的代码自动生成包括,与数据库一 ...
- Mybatis多表查询出现null字段
写在前面 今天使用mybatis实现多表查询,记录一下其中遇到的坑 mybatis多表查询简介 mybatis多表查询主要有两个方式,通俗易懂的来说就是一个是查询少量属性(association),一 ...
- Solr自动生成ID
在Solr中,每一个索引,都要有一个唯一的ID,类似于关系型数据库表中的主键.为了方便创建索引,需要配置自动生成的ID,即UUID. 一.配置schema.xml文件 添加uuid字段类型,修改字段i ...
- Solr4.0 如何配置使用UUID自动生成id值
原文链接http://blog.csdn.net/keepthinking_/article/details/8501058#comments 最近学习了Lucene,随便也学习了Solr,Solr规 ...
- ASP.NET 4.0 ListView等容器控件中获取ClientID值与HTML中自动生成ID字符串不一样问题。
ASP.NET 4.0 中 ClientIDMode的属性 可以设置获取不同ID格式的值. 项目中遇到的问题: 1.ListView1 ItemDataBound事件中,获取ClientID结果与自动 ...
- Elasticsearch 索引文档如何使用自动生成 Id?
一个文档的 _index . _type 和 _id 唯一标识一个文档. 我们可以提供自定义的 _id 值,或者让 index API 自动生成. 如果你的数据没有自然的 ID, Elasticsea ...
- Mybatis总结之如何自动生成数据库表结构
一般情况下,用Mybatis的时候是先设计表结构再进行实体类以及映射文件编写的,特别是用代码生成器的时候. 但有时候不想用代码生成器,也不想定义表结构,那怎么办? 这个时候就会想到Hibernate, ...
- mybatis根据表逆向自动化生成代码(自动生成实体类、mapper文件、mapper.xml文件)
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- 使用mybatis generator插件,自动生成dao、dto、mapper等文件
mybatis generator 介绍 mybatis generator中文文档http://mbg.cndocs.tk/ MyBatis Generator (MBG) 是一个Mybatis的代 ...
随机推荐
- 从零开始学Linux系统(四)之Vi/Vim操作指令
模式切换: 编辑模式 <-- [:]<--命令模式 -->[a.i.o A.I.O]--> 插入模式 编辑模式操作: 设置行号 :set nu :set nonu 复制 ...
- C++之内部类与外部类(嵌套类)及友元
转载于:http://www.cnblogs.com/qzhforthelife/p/3226885.html 先上代码: class Outer { public: Outer(){m_outerI ...
- MYSQL性能察看
http://fengbin2005.iteye.com/blog/1580214 网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步 ...
- [lottery anayliser]lottery anayliser
抓取网页,获得获奖信息 #!/usr/bin/python import urllib2 import re import time def spider(url): ""&quo ...
- su对环境变量做了什么
服务器是ubuntu12.04 用一个账户app,使用su - app得到的环境变量和直接ssh登录的环境变量不同. 导致su - app,无法执行ifconfig su - app 的环境变量 /u ...
- DataXceiver error processing unknown operation src: /127.0.0.1:36479 dst: /127.0.0.1:50010处理
异常信息如下: 2015-12-09 17:39:20,310 ERROR datanode.DataNode (DataXceiver.java:run(278)) - hadoop07:50010 ...
- Moodle插件开发系列——XMLDB编辑器
Moodle插件开发系列——XMLDB编辑器 位置:网站管理>开发> XML编辑器 l XML编辑器是制作install.xml文件的工具,而install.xml是指定Moodle建立 ...
- RabbitMQ基础概念(消息、队列、交换机)
1.消息的确认 RabbitMQ需要对每一条发送的消息进行确认.消费者必须通过AMQP的basic.ack命令显式地向RabbitMQ发送一个确认,或者在订阅到队列的时候就将auto_ack参数设置为 ...
- String StrigBuffer StringBuilder 浅解
1.String是最基本的字符串类,用于表示字符串. 特点:对象内容不可变,但可以通过指向不同的对象来“表示”不同的内容. 使用场景:如果不涉及到内容改变,可以使用String. 注意:如果想将Str ...
- HDU 5869 Different GCD Subarray Query 树状数组+离线
Problem Description This is a simple problem. The teacher gives Bob a list of problems about GCD (Gr ...