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数据库如何获取时间戳

设计表的默认值

SSM框架中mapper层,增删改查,如何实现的更多相关文章

  1. IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)

    原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...

  2. Maven+SSM框架实现简单的增删改查

    Spring介绍: spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情.然而, Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Ja ...

  3. idea使用maven搭建ssm框架实现登陆商品增删改查

    创建项目->maven->webapp->输入坐标->完成. pom.xml <project xmlns="http://maven.apache.org/P ...

  4. golang学习之beego框架配合easyui实现增删改查及图片上传

    golang学习之beego框架配合easyui实现增删改查及图片上传 demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DO ...

  5. 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器

    一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...

  6. 深入理解--SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用

    SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...

  7. SSM框架之MyBatis框架实现简单的增删改查

    MyBatis框架介绍 MyBatis是一个优秀的数据持久层框架,在实体类和SQL语句之间建立映射关系是一种半自动化的ORM实现,其封装性要低于Hibernate,性能优越,并且小巧,简单易学,应用也 ...

  8. SSM框架中各层作用

    SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...

  9. 基于SSM之Mybatis接口实现增删改查(CRUD)功能

    国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...

随机推荐

  1. Redis--狂神说Redis基础汇总(完结)

    Redis--狂神说Redis基础汇总(完结) 2021.6.12-2021.6.14:端午学学玩玩弄完了Redis基础的汇总,越学越觉得自己知识量的匮乏. 参考链接:狂神说Java--Redis汇总 ...

  2. 【逆向&编程实战】Metasploit中的安卓载荷凭什么吊打SpyNote成为安卓端最强远控

    文章作者:MG1937 QQ:3496925334 CNBLOG:ALDYS4 未经许可,禁止转载 前言 说起SpyNote大家自然不陌生,这款恶意远控软件被利用在各种攻击场景中 甚至是最近也捕获到了 ...

  3. 【渗透实战】记一次艰难的内网漫游第四期_蹭我WIFI?看我如何利用组合拳日进蹭网者内网

    /文章作者:Kali_MG1937 CSDN博客ID:ALDYS4 QQ:3496925334/ 内网漫游系列第三期:[渗透实战]记一次艰难的内网漫游第三期_我是如何利用APT攻击拿到内网最高权限的 ...

  4. noip模拟6[辣鸡·模板·大佬·宝藏]

    这怕不是学长出的题吧 这题就很迷 这第一题吧,正解竟然是O(n2)的,我这是快气死了,考场上一直觉得aaaaa n2过不了过不了, 我就去枚举边了,然后调了两个小时,愣是没调出来,然后交了个暴力,就走 ...

  5. [Azure DevOps] 如何使用任务组

    1. 使用 PowerShell 脚本 在上一篇文章中我们学会了怎么使用扩展在编译前实时更改版本号.有些情况下我们希望不适用扩展,例如喜欢发明轮子,或者根本没有安装扩展的权限.这时候我们可以自己写 P ...

  6. sleep、wait方法之间区别

    sleep.wait方法之间区别 1.所属的类不同 sleep是Thread类的静态方法,而wait是Object类的成员方法 2.锁机制不一样 sleep方法:会让出资源调度器为当前线程分配的时间片 ...

  7. ESCMScript(2)Module语法

    严格模式 ES6 的模块自动采用严格模式,不管你有没有在模块头部加上"use strict";. 严格模式的限制如下 变量必须声明后再使用 函数的参数不能有同名属性,否则报错 不能 ...

  8. k8s部署docker容器

    一.环境 需机器已部署好k8s和docker的环境 二.操作步骤 1.将制作好的镜像推送到docker仓库 docker tag nginx:test harbor:test-nginx docker ...

  9. sed 大括号 sed {} 的作用详解

    今天看别人写的脚本的时候,看到了sed  -r   {}   我看网上对于这个的记录比较少,所以就写了这篇随笔. 先看一下效果 cat  test.txt image: qqq/www/eee:TAG ...

  10. ClouderaManager安装kafka报错

    是因为默认的java heap size是50M,将broker_max_heap_size参数设置为512M后,重启kafka服务即可