简单的mybatis增删改查模板:

<?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.suneee.scn.chtpub.wms.dao.UserDao"> <select id="queryPage" resultType="com.suneee.scn.chtpub.wms.model.UserDO" parameterType="java.util.Map"> SELECT
id as id,
whid as whid,
userid as userid,
usercode as usercode,
department as department
FROM
sp_users
WHERE
1 = 1
<if test="whid !=null and whid != '' ">
AND whid = #{whid,jdbcType=VARCHAR}
</if> <if test="userid !=null and userid != '' ">
AND userid = #{userid,jdbcType=VARCHAR}
</if>
<if test="usercode !=null and usercode != '' ">
AND usercode = #{usercode,jdbcType=VARCHAR}
</if> <if test="department !=null and department != '' ">
AND department = #{department,jdbcType=VARCHAR}
</if> limit #{pageSize,jdbcType=NUMERIC} offset #{start,jdbcType=NUMERIC}
</select> <select id="getModelTotal" resultType="int" parameterType="java.util.Map"> SELECT
count(1)
FROM
sp_users
WHERE
1 = 1
<if test="whid !=null and whid != '' ">
AND whid = #{whid,jdbcType=VARCHAR}
</if> <if test="userid !=null and userid != '' ">
AND userid = #{userid,jdbcType=VARCHAR}
</if>
<if test="usercode !=null and usercode != '' ">
AND usercode = #{usercode,jdbcType=VARCHAR}
</if> <if test="department !=null and department != '' ">
AND department = #{department,jdbcType=VARCHAR}
</if>
</select> <select id="checkListIfExist" resultType="com.suneee.scn.chtpub.wms.model.UserDO" parameterType="java.util.Map"> SELECT
usercode as usercode
FROM
sp_users
WHERE
1=1
<if test="usercode !=null and usercode != '' ">
AND usercode = #{usercode,jdbcType=VARCHAR}
</if>
</select> <insert id="insertModel" parameterType="java.util.Map"> INSERT INTO sp_users
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="whid != null and whid != '' ">
whid,
</if>
<if test="userid != null and userid != '' ">
userid,
</if>
<if test="usercode != null and usercode != '' ">
usercode,
</if>
<if test="department != null and department != '' ">
department,
</if> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <if test="whid != null and whid != '' ">
#{whid,jdbcType=VARCHAR},
</if>
<if test="userid != null and userid != '' ">
#{userid,jdbcType=VARCHAR},
</if>
<if test="usercode != null and usercode != '' ">
#{usercode,jdbcType=VARCHAR},
</if>
<if test="department != null and department != '' ">
#{department,jdbcType=VARCHAR},
</if> </trim>
</insert> <delete id="deleteModel" parameterType="java.lang.Integer">
DELETE FROM
sp_users
WHERE
id = #{id,jdbcType=NUMERIC}
</delete> <select id="initQuery" parameterType="java.lang.Integer" resultType="com.suneee.scn.chtpub.wms.model.UserDO">
SELECT
id,
whid,
userid,
usercode,
department
FROM
sp_users
WHERE
1 = 1
AND id = #{id,jdbcType=NUMERIC} </select> <update id="updateModel" parameterType="java.util.Map">
UPDATE
sp_users
SET
whid = #{whid,jdbcType=VARCHAR},
<!-- userid = #{userid,jdbcType=VARCHAR}, -->
usercode = #{usercode,jdbcType=VARCHAR},
department = #{department,jdbcType=VARCHAR} WHERE
1=1
AND
id = #{id,jdbcType=NUMERIC} </update> </mapper>

简单的单表CRUD,parameterType和resultType都可以用实体Model代替,自动映射。

复杂多表的CRUD,parameterType要用map,在service里面要设置好对应的map K-V值,result一般用自定义的映射resultMap,里面定义了不同表字段对应的一个大Bean的映射,这里不能用resultType了!例如:

<resultMap id="BaseResultMap" type="com.suneee.scn.chtpub.wms.model.SuppCargoDO">
<id column="workqid" property="workqid" jdbcType="VARCHAR" />
<result column="description" property="description" jdbcType="VARCHAR" />
<result column="itemnumber" property="itemnumber" jdbcType="VARCHAR" />
<result column="whid" property="whid" jdbcType="VARCHAR" />
<result column="locationid" property="locationid" jdbcType="VARCHAR" />
<result column="workstatus" property="workstatus" jdbcType="VARCHAR" />
<result column="qty" property="qty" jdbcType="NUMERIC" />
<result column="zone" property="zone" jdbcType="VARCHAR" />
<result column="employeeid" property="employeeid" jdbcType="VARCHAR" />
<result column="datedue" property="datedue" jdbcType="VARCHAR" />
</resultMap>

service层的代码:

package com.suneee.scn.chtpub.wms.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.alibaba.dubbo.common.json.JSONObject;
import com.suneee.scn.chtpub.wms.common.util.DictUtil;
import com.suneee.scn.chtpub.wms.common.util.Page;
import com.suneee.scn.chtpub.wms.dao.UserDao;
import com.suneee.scn.chtpub.wms.model.DictionaryDO;
import com.suneee.scn.chtpub.wms.model.UserDO;
import com.suneee.scn.chtpub.wms.model.UserSearchDTO; @Service("userService")
public class UserService { @Autowired
UserDao userDao; public int updateModel(UserDO bean) {
Map<String,Object> reqMap = new HashMap<String, Object>();
reqMap.put("id",bean.getId());
reqMap.put("whid",bean.getWhid());
// reqMap.put("userid",bean.getUserid());
reqMap.put("usercode",bean.getUsercode());
reqMap.put("department",bean.getDepartment());
int result = userDao.updateModel(reqMap);
return result;
} public UserDO initQuery(int id) {
return userDao.initQuery(id);
} public void deleteModel(Integer id) {
Map<String, Object> reqMap = new HashMap<String, Object>();
reqMap.put("id",id);
userDao.deleteModel(reqMap);
} public int insertModel(UserDO bean) {
Map<String, Object> reqMap = new HashMap<String, Object>();
reqMap.put("whid",bean.getWhid());
reqMap.put("userid",bean.getUserid());
reqMap.put("usercode",bean.getUsercode());
reqMap.put("department",bean.getDepartment()); return userDao.insertModel(reqMap);
} public List<UserDO> checkListIfExist(JSONObject reqJson) {
Map<String, Object> reqMap = new HashMap<String, Object>();
String checkcode = reqJson.getString(DictUtil.User_ID); reqMap.put("usercode", checkcode);
return userDao.checkListIfExist(reqMap);
} public Page<UserDO> queryPage(Page<UserDO> page, UserSearchDTO bean) {
int pageNo = page.getPageNo();
int pageSize = page.getPageSize(); // 页大小
int start = (pageNo -1)*pageSize; Map<String,Object> reqMap = new HashMap<String, Object>(); reqMap.put("start", start);
reqMap.put("pageSize", pageSize); reqMap.put("whid",bean.getWhid());
reqMap.put("userid",bean.getUserid());
reqMap.put("usercode",bean.getUsercode());
reqMap.put("department",bean.getDepartment()); List<UserDO> listIfExist = userDao.queryPage(reqMap); page.setResults(listIfExist); int totalCount = userDao.getModelTotal(reqMap); page.setTotalCount(totalCount); // 总条数
int totalPageCount =totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
page.setPageCount(totalPageCount);
return page; }
}

【Mybatis】简单的mybatis增删改查模板的更多相关文章

  1. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  2. Mybatis实现数据的增删改查

    Mybatis实现数据的增删改查 1.项目结构(使用maven创建项目) 2.App.java package com.GetcharZp.MyBatisStudy; import java.io.I ...

  3. salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建

    VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载 ...

  4. 【转载】salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建

    salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建   VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的 ...

  5. MyBatis增删改查模板

    1. 首先,和Spring整合一下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=& ...

  6. SSM-MyBatis-02:Mybatis最基础的增删改查(查全部和查单独一个)

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 继续上次的开始,这次记录的是增删改查,上次重复过的代码不做过多解释 首先先创建mysql的表和实体类Book ...

  7. Mybatis实现部门表增删改查以及排序

    废话不说,直接开门见山! 需要在WebContent下的lib下导入两个包 mybatis-3.2.5.jar ojdbc6.jar package com.xdl.entity; import ja ...

  8. Mybatis框架二:增删改查

    这里是搭建框架和准备数据: http://www.cnblogs.com/xuyiqing/p/8600888.html 实现增删改查功能: 测试类: package junit; import ja ...

  9. Mybatis(3) 映射文件-增删改查

    映射文件: 映射文件是根据数据库模型生成的编写sql脚本xml文件, mapper标签中namespace属性值为对应模型实体类的全类名. <?xml version="1.0&quo ...

随机推荐

  1. python中快速获取本地时区当天0点时间戳的一种方法

    如下所示,看了网上的几种方法,这种方法算是代码量比较小的,同时可以保证求的是本地时区的0点时间戳,返回的是浮点数,需要的话自己转一下int In [1]: import time In [2]: fr ...

  2. 使用WinIO库实现保护模式下的IO和内存读写

    问题已解决: 原因是函数的调用方式与WinIO中不一致,使用的时候漏掉了__stdcall. 函数原定义为: 在实际的GPIO读写中遇到以下问题: SetPortVal可正常写入,但是GetPortV ...

  3. ELKStack入门篇(一)之ELK部署和使用

    一.ELKStack简介 1.ELK介绍 中文指南:https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details ELK Stack包 ...

  4. kobject和kset的一些学习心得

    #include <linux/module.h> #include <linux/kernel.h> #include <linux/kobject.h> #in ...

  5. MVC捕获数据保存时的具体字段验证错误代码

    ////捕获验证错误代码 //try //{ // // 调试写数据库 //} //catch (DbEntityValidationException dbEx) //{ //}

  6. python全栈开发-面向对象-初识2

    python_17_day 今日主要内容: 1.类空间,对象空间,查询顺序. 2.组合. 1.类空间,对象空间,查询顺序. class Person: animal = '高级动物' soul = ' ...

  7. php json 转换

    在PHP语言中使用JSON   作者: 阮一峰 日期: 2011年1月14日 目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它. 我写过一篇<数据类型和JSON格式& ...

  8. Linux学习—导航文件系统

    与windows相同,Linux操作系统也是以被称之为分层目录结构的方式来组织文件的.这意味着文件是以树形结构的目录中进行组织的,该树形结构目录可能包含文件和其他目录.文件系统的第一个目录叫做根目录, ...

  9. Scrum立会报告+燃尽图(十一月二十五日总第三十三次):展示博客

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2413 项目地址:https://git.coding.net/zhang ...

  10. 1.12Linux下软件安装(学习过程)

    实验介绍 介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用. 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 ...