zoukankan      html  css  js  c++  java
  • SSM框架中mapper层,增删改查,如何实现

    1、批量修改

    <!-- 批量修改 MySQL-->
    <update id="updateBatch" parameterType="java.lang.String" >
    update tabaccount set STATUSVALUE= #{statusvalue,jdbcType=INTEGER}
    where accid in (
    <foreach collection="accid" item="accid" separator=",">
    #{accid}
    </foreach>
    )
    </update>

    <!-- 批量删除Oracle -->
    <delete id="deleteBatch" parameterType="java.lang.Short" >
    begin
    <foreach collection="arrEmp" item="empno" separator=";">
    delete from EMPs
    where EMPNO = #{empno}
    </foreach>
    ; end;
    </delete>

    2、分页

    <!-- 分页 MySQL  语句最后加limit a,b        a是数据第几条,b是每页显示的多少条数据-->
    <select id="page" resultMap="BaseResultMap" parameterType="java.lang.Integer">
    SELECT a.accid, a.accname, a.accrealname,a.accpwd, a.accphone, a.accbirthday, a.rolevalue,a.createtime, a.deleteflag,
    a.updatetime, a.url, a.statusvalue,r.roleid, r.rolevalue, r.rolename,s.statusid,s.statusvalue, s.statusname,
    s.statusmemo FROM tabaccount a INNER JOIN
    tabaccrole r ON a.rolevalue=r.rolevalue INNER JOIN tabstatus s ON s.statusvalue=a.statusvalue
    where a.deleteflag=1 limit #{page,jdbcType=INTEGER},3
    </select>

    <!-- 分页Oracle   三层查询利用 伪列ROWNUM  1,3代表显示数据1-3条sql语句如下-->

    SELECT rn,accname,accrealname,loginlogid,accid, loginlogtime , loginlogip FROM (
    SELECT ROWNUM rn, accname,accrealname,loginlogid,accid, loginlogtime , loginlogip FROM
    (SELECT t.accname,t.accrealname,l.loginlogid, l.accid,l.loginlogtime ,
    l.loginlogip from TABACCOUNT t INNER JOIN tabloginlog l
    ON l.accid=t.accid ORDER BY loginlogtime DESC ))WHERE rn BETWEEN 1 AND 3

    3、多表链接

    首先,主表account的实体类中,要加入所要连接的表的属性

     补充完整set,get方法,重写to String

    其次,在accountMapper.xml文件中的BaseResultMap中加入连接表的标签

    <!-- 1对1 连接表-->
    <association property="role" resultMap="com.unite.test.dao.RoleMapper.BaseResultMap">
    </association>
    <association property="status" resultMap="com.unite.test.dao.StatusMapper.BaseResultMap">
    </association>

    最后,写查询所有方法sql语句多表链接

    <!-- 查询所有 -->
    <select id="sellectAll" resultMap="BaseResultMap" >
    SELECT a.accid, a.accname, a.accrealname,a.accpwd, a.accphone, a.accbirthday, a.rolevalue,a.createtime, a.deleteflag,
    a.updatetime, a.url, a.statusvalue,r.roleid, r.rolevalue, r.rolename,s.statusid,s.statusvalue, s.statusname,
    s.statusmemo FROM tabaccount a INNER JOIN
    tabaccrole r ON a.rolevalue=r.rolevalue INNER JOIN tabstatus s ON s.statusvalue=a.statusvalue
    where a.deleteflag=1
    </select>

    4、模糊查询

    // 多条件查询 dao层  accountMapper.class文件

     // 利用注解绑定参数

    List<Account> sellectMore(@Param("accname")String accname,@Param("statusvalue")Integer statusvalue);

    <!-- 多条件查询   mapper.xml-->
    <!-- <where>标签 自动加上where关键字 也可以自动删掉 and也可以智能忽略掉 -->
    <select id="sellectMore" resultMap="BaseResultMap" >
    SELECT a.accid, a.accname, a.accrealname,a.accpwd, a.accphone, a.accbirthday, a.rolevalue,a.createtime, a.deleteflag,
    a.updatetime, a.statusvalue,a.url, r.roleid, r.rolevalue, r.rolename,s.statusid,s.statusvalue, s.statusname,
    s.statusmemo FROM tabaccount a INNER JOIN
    tabaccrole r ON a.rolevalue=r.rolevalue INNER JOIN tabstatus s ON s.statusvalue=a.statusvalue
    <where>
    <if test="accname != null" >
    and accname like concat(concat('%',#{accname,jdbcType=VARCHAR}),'%')
    </if>
    <if test="statusvalue != null" >
    and a.statusvalue = #{statusvalue,jdbcType=DECIMAL}
    </if>
    and a.deleteflag=1
    </where>
    </select>

    5、新增

    难点:1、注册用户选出生日期,jsp界面日期是String类型,而数据库是date类型,实体类的日期也是date类型如何转换?

    首先,在实体类的操作,加注解

    //前台日期string类型,后台自动转date
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date accbirthday;

    其次、配置文件操作在springMVC-servlet.xml中加入

    <!-- 前台日期string类型,后台自动转date -->
    <mvc:annotation-driven></mvc:annotation-driven>

    在beans中

    难点:2、MySQL数据库如何获取时间戳

     设计表的默认值

  • 相关阅读:
    ASP.NET应用程序与页面生命周期
    Git源码管控规范
    redis cluster
    jwt token and shiro
    openapi and light-4j
    ps 证件照制作
    js eval 动态内容生成
    pdnovel 看书 读书 听书
    crawler 使用jQuery风格实现
    websocket聊天体验(二)
  • 原文地址:https://www.cnblogs.com/wangxue1314/p/11853168.html
Copyright © 2011-2022 走看看