<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 这里的namespace名字必须为执行该sql的dao地址 -->
<mapper namespace="cn.tramp.iblog.dao.IUserMapper">
<resultMap type="cn.tramp.iblog.domain.User" id="userResultMap">
<id property="user_id" column="user_id"/>
<result property="role_id" column="role_id"/>
<result property="user_name" column="user_name"/>
<result property="password" column="password"/>
<result property="user_nickname" column="user_nickname"/>
<result property="gender" column="gender"/>
<result property="user_email" column="user_email"/>
<result property="user_birthday" column="user_birthday"/>
<result property="photo_path" column="photo_path"/>
<result property="is_show_birthday" column="is_show_birthday"/>
<result property="marriage_state" column="marriage_state"/>
<result property="occupation" column="occupation"/>
<result property="live_place" column="live_place"/>
<result property="native_place" column="native_place"/>
<result property="personal_intro" column="personal_intro"/>
<result property="is_lock" column="is_lock"/>
</resultMap>
<!-- one to many 嵌套查询-->
<resultMap type="cn.tramp.iblog.domain.User" id="userBlogResultMap">
<id property="user_id" column="user_id"/>
<result property="role_id" column="role_id"/>
<result property="user_name" column="user_name"/>
<result property="password" column="password"/>
<result property="user_nickname" column="user_nickname"/>
<result property="gender" column="gender"/>
<result property="user_email" column="user_email"/>
<result property="user_birthday" column="user_birthday"/>
<result property="photo_path" column="photo_path"/>
<result property="is_show_birthday" column="is_show_birthday"/>
<result property="marriage_state" column="marriage_state"/>
<result property="occupation" column="occupation"/>
<result property="live_place" column="live_place"/>
<result property="native_place" column="native_place"/>
<result property="personal_intro" column="personal_intro"/>
<result property="is_lock" column="is_lock"/>
<!-- ofType 指定集合中元素的类型 -->
<collection property="blogList" column="user_id" ofType="cn.tramp.iblog.domain.Blog">
<id property="blog_id" column="blog_id"/>
<result property="user_id" column="user_id"/>
<result property="blog_type_id" column="blog_type_id"/>
<result property="blog_title" column="blog_title"/>
<result property="key_words" column="key_words"/>
<result property="blog_content" column="blog_content"/>
<result property="post_datetime" column="post_datetime"/>
<result property="edit_datetime" column="edit_datetime"/>
<result property="read_times" column="read_times"/>
<result property="comment_times" column="comment_times"/>
</collection>
</resultMap>
<!-- one to many 多条SQL-->
<resultMap type="cn.tramp.iblog.domain.User" id="userBlogResultMap1">
<id property="user_id" column="user_id"/>
<result property="role_id" column="role_id"/>
<result property="user_name" column="user_name"/>
<result property="password" column="password"/>
<result property="user_nickname" column="user_nickname"/>
<result property="gender" column="gender"/>
<result property="user_email" column="user_email"/>
<result property="user_birthday" column="user_birthday"/>
<result property="photo_path" column="photo_path"/>
<result property="is_show_birthday" column="is_show_birthday"/>
<result property="marriage_state" column="marriage_state"/>
<result property="occupation" column="occupation"/>
<result property="live_place" column="live_place"/>
<result property="native_place" column="native_place"/>
<result property="personal_intro" column="personal_intro"/>
<result property="is_lock" column="is_lock"/>
<!-- ofType 指定集合中元素的类型 -->
<collection property="blogList" column="user_id" ofType="cn.tramp.iblog.domain.Blog"
select="cn.tramp.iblog.dao.IBlogMapper.queryForBlogByUserID" />
</resultMap>
<sql id="userColumns">
<![CDATA[
role_id, user_name, password
]]>
</sql>
<select id="queryForUserBlogList" parameterType="int" resultMap="userBlogResultMap">
SELECT * FROM iblog_user, iblog_blog WHERE
iblog_user.user_id=iblog_blog.user_id AND iblog_user.user_id=#{user_id}
</select>
<!-- seGeneratedKeys设置 为"true"表明要MyBatis获取由数据库自动生成的主 键;keyProperty="id"指定把获取到的主键值注入
到User的user_id属性 -->
<insert id="insert" parameterType="cn.tramp.iblog.domain.User" useGeneratedKeys="true" keyProperty="user_id">
INSERT INTO iblog_user(role_id,user_name,password,user_nickname,gender,user_email,
user_birthday, photo_path, is_show_birthday, marriage_state, occupation, live_place,
native_place, personal_intro, is_lock)
VALUES(
#{role_id},
#{user_name},
#{password},
#{user_nickname},
#{gender},
#{user_email},
#{user_birthday},
#{photo_path},
#{is_show_birthday},
#{marriage_state},
#{occupation},
#{live_place},
#{native_place},
#{personal_intro},
#{is_lock}
)
</insert>
<update id="update" parameterType="cn.tramp.iblog.domain.User">
UPDATE iblog_user SET
role_id = #{role_id},
user_name = #{user_name},
password = #{password},
user_nickname = #{user_nickname},
gender = #{gender},
user_email = #{user_email},
user_birthday = #{user_birthday},
photo_path = #{photo_path},
is_show_birthday = #{is_show_birthday},
marriage_state = #{marriage_state},
occupation = #{occupation},
live_place = #{live_place},
native_place = #{native_place},
personal_intro = #{personal_intro},
is_lock = #{is_lock}
WHERE user_id = #{user_id}
</update>
<select id="queryForObject" parameterType="int" resultType="cn.tramp.iblog.domain.User" resultMap="userBlogResultMap1">
<![CDATA[
SELECT * FROM iblog_user
WHERE user_id = #{user_id}
]]>
</select>
<select id="queryUserByEmail" parameterType="string" resultType="cn.tramp.iblog.domain.User" resultMap="userResultMap">
<![CDATA[
SELECT * FROM iblog_user
WHERE user_email = #{user_email}
]]>
</select>
<select id="queryUserByName" parameterType="string" resultType="hashmap">
SELECT <include refid="userColumns"/>
FROM iblog_user
WHERE user_name = #{user_name}
</select>
<select id="getTotalCount" parameterType="string" resultType="int">
SELECT count(*) FROM iblog_user
<if test="columnName != null">
WHERE #{columnName} LIKE %#{value}%
</if>
</select>
<select id="queryUserByPage" parameterType="cn.tramp.iblog.utils.Page" resultType="list" resultMap="userResultMap">
SELECT * FROM iblog_user
ORDER BY user_id
LIMIT #{offset}, #{pageSize}
</select>
<delete id="delete" parameterType="int">
DELETE FROM iblog_user WHERE user_id = #{user_id}
</delete>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 这里的namespace名字必须为执行该sql的dao地址 -->
<mapper namespace="cn.tramp.iblog.dao.IBlogMapper">
<resultMap type="cn.tramp.iblog.domain.Blog" id="blogResultMap0">
<id property="blog_id" column="blog_id"/>
<result property="user_id" column="user_id"/>
<result property="blog_type_id" column="blog_type_id"/>
<result property="blog_title" column="blog_title"/>
<result property="key_words" column="key_words"/>
<result property="blog_content" column="blog_content"/>
<result property="post_datetime" column="post_datetime"/>
<result property="edit_datetime" column="edit_datetime"/>
<result property="read_times" column="read_times"/>
<result property="comment_times" column="comment_times"/>
</resultMap>
<!-- 嵌套查询 -->
<resultMap type="cn.tramp.iblog.domain.Blog" id="blogResultMap">
<id property="blog_id" column="blog_id"/>
<result property="user_id" column="user_id"/>
<result property="blog_type_id" column="blog_type_id"/>
<result property="blog_title" column="blog_title"/>
<result property="key_words" column="key_words"/>
<result property="blog_content" column="blog_content"/>
<result property="post_datetime" column="post_datetime"/>
<result property="edit_datetime" column="edit_datetime"/>
<result property="read_times" column="read_times"/>
<result property="comment_times" column="comment_times"/>
<association property="user" column="user_id" javaType="cn.tramp.iblog.domain.User"
select="cn.tramp.iblog.dao.IUserMapper.queryForObject"/>
</resultMap>
<!-- one to one relation 结果集映射-->
<resultMap type="cn.tramp.iblog.domain.Blog" id="blogUserResultMap">
<id property="blog_id" column="blog_id"/>
<result property="user_id" column="user_id"/>
<result property="blog_type_id" column="blog_type_id"/>
<result property="blog_title" column="blog_title"/>
<result property="key_words" column="key_words"/>
<result property="blog_content" column="blog_content"/>
<result property="post_datetime" column="post_datetime"/>
<result property="edit_datetime" column="edit_datetime"/>
<result property="read_times" column="read_times"/>
<result property="comment_times" column="comment_times"/>
<association property="user" javaType="cn.tramp.iblog.domain.User" column="user_id">
<id property="user_id" column="user_id"/>
<result property="role_id" column="role_id"/>
<result property="user_name" column="user_name"/>
<result property="password" column="password"/>
<result property="user_nickname" column="user_nickname"/>
<result property="gender" column="gender"/>
<result property="user_email" column="user_email"/>
<result property="user_birthday" column="user_birthday"/>
<result property="photo_path" column="photo_path"/>
<result property="is_show_birthday" column="is_show_birthday"/>
<result property="marriage_state" column="marriage_state"/>
<result property="occupation" column="occupation"/>
<result property="live_place" column="live_place"/>
<result property="native_place" column="native_place"/>
<result property="personal_intro" column="personal_intro"/>
<result property="is_lock" column="is_lock"/>
</association>
</resultMap>
<sql id="userColumns">
<![CDATA[
role_id, user_name, password
]]>
</sql>
<select id="queryForBlogByID" parameterType="int" resultType="cn.tramp.iblog.domain.Blog" resultMap="blogUserResultMap">
SELECT * FROM iblog_blog , iblog_user WHERE iblog_blog.user_id = iblog_user.user_id AND iblog_blog.blog_id = #{blog_id}
</select>
<!-- seGeneratedKeys设置 为"true"表明要MyBatis获取由数据库自动生成的主 键;keyProperty="id"指定把获取到的主键值注入
到User的user_id属性 -->
<insert id="insert" parameterType="cn.tramp.iblog.domain.Blog" useGeneratedKeys="true" keyProperty="blog_id">
INSERT INTO iblog_blog(user_id,blog_type_id,blog_title,key_words,blog_content,post_datetime,
edit_datetime, read_times, comment_times)
VALUES(
#{user_id},
#{blog_type_id},
#{blog_title},
#{key_words},
#{blog_content},
#{post_datetime},
#{edit_datetime},
#{read_times},
#{comment_times}
)
</insert>
<update id="update" parameterType="cn.tramp.iblog.domain.Blog">
UPDATE iblog_blog SET
user_id = #{user_id},
blog_type_id = #{blog_type_id},
blog_title = #{blog_title},
key_words = #{key_words},
blog_content = #{blog_content},
post_datetime = #{post_datetime},
read_times = #{read_times},
comment_times = #{comment_times}
WHERE blog_id = #{blog_id}
</update>
<select id="queryForBlog" parameterType="int" resultType="cn.tramp.iblog.domain.Blog" resultMap="blogResultMap0">
<![CDATA[
SELECT * FROM iblog_blog
WHERE blog_id = #{blog_id}
]]>
</select>
<select id="queryForBlogByUserID" parameterType="int" resultType="list" resultMap="blogResultMap0">
<![CDATA[
SELECT * FROM iblog_blog
WHERE user_id = #{user_id}
]]>
</select>
<select id="getTotalCount" parameterType="string" resultType="int">
SELECT count(*) FROM iblog_blog
<if test="params != null">
WHERE #{params} LIKE %#{params}%
</if>
</select>
<select id="queryBlogByPage" parameterType="cn.tramp.iblog.utils.Page" resultType="list" resultMap="blogResultMap">
SELECT * FROM iblog_blog
ORDER BY user_id
LIMIT #{offset}, #{pageSize}
</select>
<delete id="delete" parameterType="int">
DELETE FROM iblog_blog WHERE blog_id = #{blog_id}
</delete>
</mapper>
分享到:
相关推荐
mybatis一对多的查询方法详解! mybatis一对多的查询方法详解! mybatis一对多的查询方法详解! mybatis一对多的查询方法详解!
MyBatis简单的一对一和一对多测试,表根据JavaBean自己创建,测试已通过
就是代码而已《哈哈哈》
自己根据mybatis文档测试其中的一对一,一对多,association,collection的使用,更有利于理解。
mybatis 一对多性能优化 demo mybatis 一对多性能优化 demo
MyBatis一对多映射实例,代码完整,可运行
MyBatis高级映射(一对多查询)
【MyBatis学习笔记六】——MyBatis一对一,一对多,多对一,多对多.zip博客地址:https://blog.csdn.net/weixin_43817709/article/details/117537580
实现Mybatis框架中一对多关联映射的查询操作。 User用户表 - Order_form订单表属于 1-N 的关系。 一个用户对象包含一批订单信息
Mybatis实现关联查询一对一和一对多实现,具体效果看博文 http://blog.csdn.net/evankaka/article/details/45674101
Mybatis实现一对一、一对多关联查询,关联查询:多个表联合查询,只查询一次,通过resultMap里面的、标签配置一对一、一对多;涉及到的一对一、一对多关系: - 班级classes、班主任teacher是一对一的关系 - 班级...
mybatis 一对多 多对一
一对多的选择和插入,数据比较简单,自己建立一下表
举个例子:每个人可以拥有多个银行卡(一对多)、每张银行卡只会对应一个用户(一对一)、每个人可能拥有多个不同的社会角色,每一个不同的社会角色也会对应不同的人(多对多),Mybatis作为大名鼎鼎的SSM的组成部分...
Mybatis的一对一,一对多
本项目实用Spring + Spring MVC + Mybatis。数据库实用Mysql数据库 项目主要涉及,SSM框架的配置搭建,涉及Mybatis一对多的插入和查询,同时也涉及到一些简单的文件上传和下载.
mybatis 一对一 一对多例子 oracle 数据库 ,xml配置,方法
一对多,从多得一方取出一的一方.只是一个小例子,表结构能才出来的
Mybatis实现一对一,一对多数据插入数据实验报告