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

设计表的默认值
SSM框架中mapper层,增删改查,如何实现的更多相关文章
- IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)
原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...
- Maven+SSM框架实现简单的增删改查
Spring介绍: spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情.然而, Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Ja ...
- idea使用maven搭建ssm框架实现登陆商品增删改查
创建项目->maven->webapp->输入坐标->完成. pom.xml <project xmlns="http://maven.apache.org/P ...
- golang学习之beego框架配合easyui实现增删改查及图片上传
golang学习之beego框架配合easyui实现增删改查及图片上传 demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DO ...
- 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器
一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...
- 深入理解--SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用
SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...
- SSM框架之MyBatis框架实现简单的增删改查
MyBatis框架介绍 MyBatis是一个优秀的数据持久层框架,在实体类和SQL语句之间建立映射关系是一种半自动化的ORM实现,其封装性要低于Hibernate,性能优越,并且小巧,简单易学,应用也 ...
- SSM框架中各层作用
SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...
- 基于SSM之Mybatis接口实现增删改查(CRUD)功能
国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...
随机推荐
- MySQL笔记02(黑马)
DDL操作数据库.表 操作数据库:CRUD C(Create):创建 创建数据库: create database 数据库名称; 创建数据库,判断不存在,再创建: create database if ...
- 【NX二次开发】Block UI 选择对象
属性说明 属性 类型 描述 常规 BlockID String 控件ID Enable Logical 是否可操作 Group ...
- 【NX二次开发】Block UI 从列表选择部件
属性说明 属性 类型 描述 常规 BlockID String 控件ID Enable Logical 是否可操作 Group ...
- 工具篇:介绍几个好用的guava工具类
前言 平时我们都会封装一些处理缓存或其他的小工具.但每个人都封装一次,重复造轮子,有点费时间.有没有一些好的工具库推荐-guava.guava是谷歌基于java封装好的开源库,它的性能.实用性,比我们 ...
- Oracle几大后台进程
pmon,smon,dbwr,lgwr,reco,ckpt.六大核心进程.无论哪个进程出现故障,都会导致数据库实例崩溃.如果杀掉某个进程,在ALERT LOG中会发现各种错误. MMAN(Memory ...
- PowerMockito的一些注意事项
PowerMockito的一些注意事项 目录 PowerMockito的一些注意事项 1 注解@PowerMockIgnore({"javax.crypto.*"}) 2 Powe ...
- 感知机与支持向量机 (SVM)
感知机与SVM一样都是使用超平面对空间线性可分的向量进行分类,不同的是:感知机的目标是尽可能将所有样本分类正确,这种策略指导下得出的超平面可能有无数个,然而SVM不仅需要将样本分类正确,还需要最大化最 ...
- redis学习第二天
Redis 在 2.8.9 版本之后添加了 HyperLogLog 结构 Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常 ...
- 【Azure 应用服务】Azure Function集成虚拟网络,设置被同在虚拟网络中的Storage Account触发,遇见Function无法触发的问题
一切为了安全,所有的云上资源如支持内网资源访问,则都可以加入虚拟网络 问题描述 使用Azure Function处理Storage Account中Blob 新增,更新,删除等情况.Storage A ...
- react 的优点
1. 声明式开发 react 是声明式的开发方式,与之对应的是命令式开发方式.之前用jquery写代码的时候,我们都是直接操作dom,这种我们称为命令式的编程.命令式编程需要我们一点点的告诉dom,它 ...