mybitis数据库操作

<?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">
<mapper namespace="com.mml.crm2.user.mapper.UserMapper">
<!-- Result Map -->
<resultMap id="BaseResultMap" type="com.mml.crm2.user.model.UserModel">
    <result column="id" property="id" />
    <result column="parent_id" property="parent_id" />
    <result column="parent_name" property="parent_name" />
    <result column="user_code" property="user_code" />
    <result column="password" property="password" />
    <result column="name" property="name" />
    <result column="phone" property="phone" />
    <result column="salary" property="salary" />
    <result column="birthday" property="birthday" />
    <result column="state" property="state" />
    <result column="sex" property="sex" />
    <result column="create_time" property="create_time" />
    <result column="leave_time" property="leave_time" />
    <result column="image" property="image" />
    <result column="achievement" property="achievement" />
    <result column="partition_id" property="partition_id" />
    <result column="partition_name" property="partition_name" />
    <association property="storeModel" javaType="com.mml.crm2.store.model.StoreModel">
        <result column="stores_id" property="id" />
        <result column="store_name" property="name" />
    </association>
    <association property="roleModel" javaType="com.mml.crm2.sys.model.RoleModel">
        <result column="role_id" property="id" />
        <result column="role_name" property="name" />
    </association>
</resultMap>

<!-- table all fields - sql片段 -->
<sql id="Base_Column_List">
    user_code,name,password,birthday,phone,
    sex,image,achievement,
    state,create_time,
    parent_id,role_id        
    <if test="storeModel.id != null">
        ,stores_id
    </if>
    <if test="partition_id != null">
        ,partition_id
    </if>
</sql>
<!-- 查询条件 -->
<sql id="Example_Where_Clause">
    where 1=1
    <if test="model.user_code != null and model.user_code != ''">
        and user_code like #{model.user_code}
    </if>
    <if test="model.name != null and model.name != ''">
        and name like #{model.name}
    </if>
    <if test="model.parent_id != null">
        and parent_id = #{model.parent_id}
    </if>
    <if test="model.id != null">
        and id != #{model.id}
    </if>
</sql>
<sql id="Example_Order_Clause">
    <if test="pager.orderby !=null and pager.orderby !=''">
        order by #{pager.orderby}
    </if>
    <if test="pager.pageOn">
        limit #{pager.rowStart},#{pager.pageLimit}
    </if>
</sql>

<!-- 插入记录 -->
<insert id="insert" parameterType="com.mml.crm2.user.model.UserModel">
    <!--selectKey 会将 SELECT LAST_INSERT_ID()的结果放入到传入的model的主键里面, keyProperty 
        对应的model中的主键的属性名,这里是 user 中的id,因为它跟数据库的主键对应 order AFTER 表示 SELECT LAST_INSERT_ID() 
        在insert执行之后执行,多用与自增主键, BEFORE 表示 SELECT LAST_INSERT_ID() 在insert执行之前执行,这样的话就拿不到主键了, 
        这种适合那种主键不是自增的类型 resultType 主键类型 -->
    <selectKey resultType="java.lang.Integer" order="AFTER"
        keyProperty="id">
        SELECT LAST_INSERT_ID()
    </selectKey>
    insert into realtymanage.user(
    <include refid="Base_Column_List" />
    ) values(#{user_code},#{name},#{password},#{birthday},#{phone},
    #{sex},#{image},#{achievement},#{state},
    #{create_time},#{parent_id},
    #{roleModel.id}    
    <if test="storeModel.id != null">
        ,#{storeModel.id}
    </if>
    <if test="partition_id != null">
        ,#{partition_id}
    </if>
    )
</insert>
<!-- 删除记录 -->
<delete id="delete" parameterType="Object">
    delete from realtymanage.user where
    id=#{id}
</delete>

<delete id="deleteModel" parameterType="Object">
    delete
    from realtymanage.user where
    user_code=#{user_code}
</delete>
<sql id="update_condition">
    name=#{name},birthday=#{birthday},phone=#{phone},
    salary=#{salary},sex=#{sex},achievement=#{achievement},
    state=#{state},create_time=#{create_time},leave_time=#{leave_time},
    parent_id=#{parent_id},role_id=#{roleModel.id},stores_id=#{storeModel.id}
</sql>
<!-- 根据,修改记录 -->
<update id="update" parameterType="Object">
    update realtymanage.user set 
    <include refid="update_condition" />
    where id = #{id}
</update>

<!-- 修改记录,只修改只不为空的字段 -->
<update id="updateActive" parameterType="Object">
    <trim suffixOverrides=",">
        update realtymanage.user set
        id=id,
        <if test="achievement != null">
            achievement = #{achievement},
        </if>
        <if test="leave_time != null and leave_time != '' ">
            leave_time = #{leave_time},
        </if>
        <if test="parent_id != null  ">
            parent_id = #{parent_id},
        </if>
        <if test="roleModel.id != null ">
            role_id = #{roleModel.id},
        </if>
        <if test="password != null and password != '' ">
            password = #{password},
        </if>
        <if test="storeModel.id != null ">
            stores_id = #{storeModel.id},
        </if>
        <if test="phone != null and phone != '' ">
            phone = #{phone},
        </if>
        <if test="name != null and name != '' ">
            name = #{name},
        </if>
        <if test="salary != null ">
            salary = #{salary},
        </if>
        <if test="create_time != null and create_time != '' ">
            create_time = #{create_time},
        </if>
        <if test="birthday != null and birthday != '' ">
            birthday = #{birthday},
        </if>
        <if test="sex != null and sex != '' ">
            sex = #{sex},
        </if>
        <if test="state != null and state != '' ">
            state = #{state},
        </if>
    </trim>
    where id=#{id}
</update>
<!-- 系统用户 列表总数 -->
<select id="selectCount" resultType="java.lang.Integer"
    parameterType="Object">
    SELECT count(1) FROM realtymanage.user_view
    <include refid="Example_Where_Clause" />
</select>

<!-- 查询系统用户列表 -->
<select id="select" resultMap="BaseResultMap" parameterType="Object">
    SELECT * FROM realtymanage.user_view where id = #{id}
</select>
<select id="selectModel" resultMap="BaseResultMap" parameterType="Object">
    SELECT * FROM realtymanage.user_view where user_code = #{user_code}
</select>

<!-- 查询系统用户列表 -->
<select id="selectBlurModelList" resultMap="BaseResultMap">
    select *from realtymanage.user_view
    <include refid="Example_Where_Clause" />
    <include refid="Example_Order_Clause" />
    <!-- <if test="pager.orderCondition != null and pager.orderCondition != 
        ''"> -->
    <!-- ${pager.orderCondition} -->
    <!-- </if> -->
</select>
<select id="selectModelList" resultMap="BaseResultMap">
    select *from realtymanage.user_view
    <include refid="Where_Clause" />
    <include refid="Example_Order_Clause" />
    <!-- <if test="pager.orderCondition != null and pager.orderCondition != 
        ''"> -->
    <!-- ${pager.orderCondition} -->
    <!-- </if> -->
</select>
<sql id="Where_Clause">
    where 1=1
    <if test="model.parent_id != null">
        and parent_id = #{model.parent_id}
    </if>
    <if test="model.roleModel.id != null">
        and role_id = #{model.roleModel.id}
    </if>
    <if test="model.state != null and model.state != ''">
        and state = #{model.state}
    </if>
</sql>
</mapper>   
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值