简单的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. C# JSON和对象之间互相转换

    1.首先是声明用户信息对象,DataContract修饰类,表示可以被解析成JSON,DataMember修饰属性,Order表示 解析的顺序,另外Lover是数组列表,表示女朋友个数 Address ...

  2. 【转载】Alpha混合物体的深度排序

    原文:Alpha混合物体的深度排序 先说个题外话, 本来我想解答一下最近Creators Club论坛上经常出现的一个问题, 意外的是在网上竟然找不到什么全面的答案.. 这是个有着复杂答案的简单问题: ...

  3. 深度学习:参数(parameters)和超参数(hyperparameters)

    1. 参数(parameters)/模型参数 由模型通过学习得到的变量,比如权重和偏置 2. 超参数(hyperparameters)/算法参数 根据经验进行设定,影响到权重和偏置的大小,比如迭代次数 ...

  4. js页面动态时间展示

    效果图: 具体代码 js代码 <script type="text/javascript"> var t = null; t = setTimeout(time,100 ...

  5. Gulp 有用的地址

    gulp似乎成为web开发的必选工具. 推荐一个非常好的入门教程 https://markgoodyear.com/2014/01/getting-started-with-gulp/ 官方插件列表: ...

  6. Linux查看文件内容

    查看文件内容的命令: cat:连接文件并且打印在标准输出 tac:连接并且倒序打印文件 more:屏幕文件熟读过滤器 less head:输出文件的第一部分 tail:输出文件最后的部分 nl:输出文 ...

  7. docker部署war包到阿里云

    最近买了个阿里云服务器,配置1核2g内存,学习够了.记录下过程. 1,服务器相关,请看下图,云服务器主要配置是安全组和密钥,前者是开放端口,后者可以用于远程连接(比如我windows系统通过putty ...

  8. MongoDB Chapter1:Introduction

    你是在防火墙后面吗? 为了继续本课程,您必须能够将计算机的传出请求发送到我们在MongoDB Atlas中设置的数据库服务器.这些服务器在Amazon AWS中的端口27017上运行. 请单击http ...

  9. Python如何对折线进行平滑曲线处理?

    在用python绘图的时候,经常由于数据的原因导致画出来的图折线分界过于明显,因此需要对原数据绘制的折线进行平滑处理,本文介绍利用插值法进行平滑曲线处理: 实现所需的库 numpy.scipy.mat ...

  10. 个人第十一周PSP

    11.24 --11.30本周例行报告 1.PSP(personal software process )个人软件过程. 类型 任务 开始时间                结束时间 中断时间 实际用 ...