【Mybatis】简单的mybatis增删改查模板
简单的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增删改查模板的更多相关文章
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
- Mybatis实现数据的增删改查
Mybatis实现数据的增删改查 1.项目结构(使用maven创建项目) 2.App.java package com.GetcharZp.MyBatisStudy; import java.io.I ...
- salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载 ...
- 【转载】salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建 VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的 ...
- MyBatis增删改查模板
1. 首先,和Spring整合一下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=& ...
- SSM-MyBatis-02:Mybatis最基础的增删改查(查全部和查单独一个)
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 继续上次的开始,这次记录的是增删改查,上次重复过的代码不做过多解释 首先先创建mysql的表和实体类Book ...
- Mybatis实现部门表增删改查以及排序
废话不说,直接开门见山! 需要在WebContent下的lib下导入两个包 mybatis-3.2.5.jar ojdbc6.jar package com.xdl.entity; import ja ...
- Mybatis框架二:增删改查
这里是搭建框架和准备数据: http://www.cnblogs.com/xuyiqing/p/8600888.html 实现增删改查功能: 测试类: package junit; import ja ...
- Mybatis(3) 映射文件-增删改查
映射文件: 映射文件是根据数据库模型生成的编写sql脚本xml文件, mapper标签中namespace属性值为对应模型实体类的全类名. <?xml version="1.0&quo ...
随机推荐
- class kind type sort区别
class多用于 级别比如高级货就是 first class,primary class等等,以此类推kind 和sort 基本一样,就像你说的,译为 种类,what kind of疑问,回答时用so ...
- Luogu3804 【模板】后缀自动机
题面 题解 一个串的出现次数等于$endpos$的大小,也是$parent$树上节点的$size$大小, 构建出后缀自动机,按拓补序,模拟即可. 代码 #include<cstdio> # ...
- iOS 的音频播放
一.Audio Toolbox 1.使用代码 #import <AudioToolbox/AudioToolbox.h> AudioServicesPlaySystemSound(1106 ...
- 九、Django之ORM
一.ORM概述 用于实现面向对象编程语言里不同类型系统的数据之间的转换,换言之,就是用面向对象的方式去操作数据库的创建表以及增删改查等操作. 到目前为止,当我们的程序涉及到数据库相关操作时,一般操作流 ...
- js文件上传库
收集了2个与具体UI库和框架无任何耦合的JS文件上传库:支持断点续传.支持npm安装. resumable.js fileapi
- Maven学习(十八)-----Maven依赖管理
其中一个Maven的核心特征是依赖管理.管理依赖关系变得困难的任务一旦我们处理多模块项目(包含数百个模块/子项目). Maven提供了一个高程度的控制来管理这样的场景. 传递依赖发现 这是很通常情况下 ...
- new表达式,operator new和placement new介绍
new/delete是c++中动态构造对象的表达式 ,一般情况下的new/delete都是指的new/delete表达式,这是一个操作符,和sizeof一样,不能改变其意义. new/delete表达 ...
- MySQL高性能优化实战总结
1.1 前言 MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰.在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多 ...
- 用Tensorflow完成简单的线性回归模型
思路:在数据上选择一条直线y=Wx+b,在这条直线上附件随机生成一些数据点如下图,让TensorFlow建立回归模型,去学习什么样的W和b能更好去拟合这些数据点. 1)随机生成1000个数据点,围绕在 ...
- 从零开始的Python爬虫速成指南
序 本文主要内容:以最短的时间写一个最简单的爬虫,可以抓取论坛的帖子标题和帖子内容. 本文受众:没写过爬虫的萌新. 入门 0.准备工作 需要准备的东西: Python.scrapy.一个IDE或者随便 ...