2019独角兽企业重金招聘Python工程师标准>>>

上一篇文章《接口方式编程》中讲述的是返回单个对象(包括对象、整型、字符串)等等,这篇文章讲述的是返回一个list。

查询单个对象的返回可以采用resultType,例如

1>返回是一个对象的,这个时候,数据库查询到的数据:字段命名别名的时候要和接收对象中的属性名称要一一对应起来,否则会出现数据库查询得到数据,但是显示出来的却为null的现象。

    <select id="getJobFocus" resultType="com.zhiji.caren.VO.JobFocus">selecth.JOB_ID as jobId,j.JOB_NAME as jobName,j.ENTERPRISE_ID as enterpriseId,j.SALARY_MIN as salaryMin,j.SALARY_MAX as salaryMax,j.WORK_YEARS_ID as workYearsId,j.LOCATION_ID as locationId,tt.LOCATION_NAME as locationName,e.ENTERPRISE_NAME as enterpriseName,e.ENTERPRISE_LOGO as enterpriseLogo,j.NEGOTIABLE_FLAG as negotiableFlag,w.WORK_YEARS_INFO as workYearsInfo,h.ADD_TIME as addTimeFROMT_USER_JOB_FOCUS hLEFT JOINT_JOB jonj.JOB_ID=h.JOB_IDLEFT JOINT_ENTERPRISE eone.ENTERPRISE_ID = j.ENTERPRISE_IDLEFT JOINT_WORK_YEARS wonw.WORK_YEARS_ID = j.WORK_YEARS_IDLEFT JOIN T_LOCATIONttontt.LOCATION_ID = j.LOCATION_IDwhereh.USER_ID=#{uesrId}<if test="lastTime != null">and h.ADD_TIME&lt;=#{lastTime}</if>order by h.ADD_TIME desclimit 0,#{pageIndex}</select>返回对象为public class JobFocus {/** 职位id */private String jobId;/** 职位名称 */private String jobName;/** 企业id */private String enterpriseId;/** 企业名称 */private String enterpriseName;/** 企业LogoURL */private String enterpriseLogo;/** 薪资类别 */private String negotiableFlag;/** 薪水最小值 */private String salaryMin;/** 薪水最大值 */private String salaryMax;/** 工作地点id */private String locationId;/** 工作地点名称 */private String locationName;/** 工作经验id */private String workYearsId;/** 工作经验信息 */private String workYearsInfo;/** 添加时间*/private String addTime;//此处省略属性的get与set方法}

2>返回是String类型的

    <select id="getJobTypeUpdTime" resultType="java.lang.String">SELECT MAX(UPD_TIME) FROM T_JOB_TYPE limit 0,1</select>

3>返回是整型类型的

    <select id="selectOprNum" resultType="java.lang.Integer">SELECT COUNT(1)FROMt_user_enterprise_oper tueoWHEREtueo.ENTERPRISE_ID = #{objectId}ANDtueo.OPER_TYPE = #{type}</select>

一、这篇讲述的是返回的是一个list,用resultMap方式来接收转换

接收的resultMap

    <resultMap id="BaseResultMapJobList" type="com.zhiji.caren.VO.JobList"><result column="JOB_ID" jdbcType="NUMERIC" property="jobId" /><result column="JOB_NAME" jdbcType="VARCHAR" property="jobName" /><result column="ENTERPRISE_ID" jdbcType="NUMERIC" property="enterpriseId" /><result column="ENTERPRISE_NAME" jdbcType="VARCHAR" property="enterpriseName" /><result column="ENTERPRISE_LOGO" jdbcType="VARCHAR" property="enterpriseLogo" /><result column="NEGOTIABLE_FLAG" jdbcType="NUMERIC" property="negotiableFlag" /><result column="SALARY_MIN" jdbcType="NUMERIC" property="salaryMin" /><result column="SALARY_MAX" jdbcType="NUMERIC" property="salaryMax" /><result column="LOCATION_ID" jdbcType="NUMERIC" property="locationId" /><result column="LOCATION_NAME" jdbcType="VARCHAR" property="locationName" /><result column="WORK_YEARS_ID" jdbcType="NUMERIC" property="workYearsId" /><result column="WORK_YEARS_INFO" jdbcType="VARCHAR" property="workYearsInfo" /><result column="ADD_TIME" jdbcType="VARCHAR" property="addTime" /><result column="flag" jdbcType="VARCHAR" property="flag" /></resultMap>

查询的SQL语句

    <select id="getJobListInfo" parameterType="com.zhiji.caren.VO.JobParams"resultMap="BaseResultMapJobList">SELECTtj.JOB_ID,tj.LOCATION_ID,tl.LOCATION_NAME,tj.JOB_NAME,tj.NEGOTIABLE_FLAG,tj.SALARY_MAX,tj.SALARY_MIN,tj.ADD_TIME,tj.ENTERPRISE_ID,te.ENTERPRISE_NAME,te.ENTERPRISE_LOGO,twy.WORK_YEARS_ID,twy.WORK_YEARS_INFO,'' AS flagFROMt_jobtj,t_location tl,t_enterprise te,t_hr th,t_work_yearstwy,t_job_category tjcWHERE tj.LOCATION_ID = tl.LOCATION_IDANDtl.LOCATION_LEVEL = 2AND tl.USE_FLAG = 1AND tj.ENTERPRISE_ID =te.ENTERPRISE_IDAND te.USE_FLAG = 1AND tj.HR_ID = th.HR_IDANDth.USE_FLAG = 1AND tj.WORK_YEARS_ID = twy.WORK_YEARS_IDANDtj.JOB_CATEGORY_ID = tjc.JOB_CATEGORY_IDAND tjc.USE_FLAG = 1<if test="jobCategoryId != null">ANDtjc.JOB_CATEGORY_ID =#{jobCategoryId}</if><if test="locationId != null">ANDtl.LOCATION_ID = #{locationId}</if><if test="workYearId != null">ANDtwy.WORK_YEARS_ID = #{workYearId}</if><if test="enterpriseId != null">ANDtj.ENTERPRISE_ID = #{enterpriseId}</if><if test="hrId != null">ANDtj.HR_ID = #{hrId}</if><if test="searchStr != null">ANDtj.JOB_NAME LIKE concat(concat('%',#{searchStr}),'%')</if><if test="lastTime != null">ANDtj.ADD_TIME &lt;= #{lastTime}</if>GROUP BY tj.JOB_IDORDER BYtj.ADD_TIME DESCLIMIT #{pageIndex}</select>

接口层

    /*** 获取工作列表* * @param job*            参数* @return 工作列表*/List<JobList> getJobListInfo(JobParams job);

bean层

public class JobParams {//beanprivate Integer jobCategoryId;private Integer locationId;private Integer salaryId;private Integer workYearId;private Integer pageIndex;private String  lastTime;private String  searchStr;private Integer enterpriseId;private Integer hrId;//此处省略set和get方法}

二、插入

    <insert id="insert" parameterType="com.zhiji.caren.model.Job" useGeneratedKeys="true" keyProperty="job_id" >insert into t_job (JOB_NAME, JOB_TYPE_ID,JOB_DEPARTMENT, ENTERPRISE_ID, JOB_CATEGORY_ID,SALARY_MIN, SALARY_MAX, LOCATION_ID,HR_ID, WORK_YEARS_ID,EDU_REQUIREMENT_ID,JOB_DESCRIPTION, JOB_ADDRESS, AUDIT_FLAG,STIKY_FLAG, NEGOTIABLE_FLAG, HR_INFO_FLAG,USE_FLAG, VALID_TIME,UPD_USER_ID,ADD_TIME, UPD_TIME)values (#{jobName,jdbcType=VARCHAR},#{jobTypeId,jdbcType=INTEGER},#{jobDepartment,jdbcType=VARCHAR}, #{enterpriseId,jdbcType=INTEGER},#{jobCategoryId,jdbcType=INTEGER},#{salaryMin,jdbcType=INTEGER},#{salaryMax,jdbcType=INTEGER},#{locationId,jdbcType=INTEGER},#{hrId,jdbcType=INTEGER}, #{workYearsId,jdbcType=INTEGER},#{eduRequirementId,jdbcType=INTEGER},#{jobDescription,jdbcType=VARCHAR}, #{jobAddress,jdbcType=VARCHAR},#{auditFlag,jdbcType=CHAR},#{stikyFlag,jdbcType=INTEGER},#{negotiableFlag,jdbcType=INTEGER}, #{hrInfoFlag,jdbcType=INTEGER},#{useFlag,jdbcType=INTEGER}, #{validTime,jdbcType=CHAR},#{updUserId,jdbcType=INTEGER},#{addTime,jdbcType=CHAR},#{updTime,jdbcType=CHAR})</insert>

注意:这里插入语句中没有带上job_id,因为在这里设置了主键自增长

<insert id="insert" parameterType="com.zhiji.caren.model.Job" useGeneratedKeys="true" keyProperty="job_id" >

同时还要求,将该表的job_id字段设置为自增长。

三、更新

    <update id="updateByPrimaryKey" parameterType="com.zhiji.caren.model.Job">update t_jobsetJOB_NAME = #{jobName,jdbcType=VARCHAR},JOB_TYPE_ID =#{jobTypeId,jdbcType=INTEGER},JOB_DEPARTMENT =#{jobDepartment,jdbcType=VARCHAR},ENTERPRISE_ID =#{enterpriseId,jdbcType=INTEGER},JOB_CATEGORY_ID =#{jobCategoryId,jdbcType=INTEGER},SALARY_MIN =#{salaryMin,jdbcType=INTEGER},SALARY_MAX =#{salaryMax,jdbcType=INTEGER},LOCATION_ID =#{locationId,jdbcType=INTEGER},HR_ID = #{hrId,jdbcType=INTEGER},WORK_YEARS_ID = #{workYearsId,jdbcType=INTEGER},EDU_REQUIREMENT_ID =#{eduRequirementId,jdbcType=INTEGER},JOB_DESCRIPTION =#{jobDescription,jdbcType=VARCHAR},JOB_ADDRESS =#{jobAddress,jdbcType=VARCHAR},AUDIT_FLAG =#{auditFlag,jdbcType=CHAR},STIKY_FLAG = #{stikyFlag,jdbcType=INTEGER},NEGOTIABLE_FLAG = #{negotiableFlag,jdbcType=INTEGER},HR_INFO_FLAG =#{hrInfoFlag,jdbcType=INTEGER},USE_FLAG = #{useFlag,jdbcType=INTEGER},VALID_TIME = #{validTime,jdbcType=CHAR},UPD_USER_ID =#{updUserId,jdbcType=INTEGER},ADD_TIME = #{addTime,jdbcType=CHAR},UPD_TIME = #{updTime,jdbcType=CHAR}where JOB_ID =#{jobId,jdbcType=INTEGER}</update>

四、删除

    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">delete from t_jobwhere JOB_ID = #{jobId,jdbcType=INTEGER}</delete>

查询、增加、修改和删除均讲完了,注意:后三个执行操作后,需要在接口实现层commit(),这个主要针对的是事务管理那一块,目前我配置的事务还没有起效果,原因还没找到,这里就不贴出实现层的代码了。上面讲述的内容可以满足单次的增加、修改和删除。

转载于:https://my.oschina.net/u/2312022/blog/524753

myBatis --(3)数据的增删改查相关推荐

  1. spring整合mybatis(实现数据的增删改查)

    一.专业术语解释 1.spring:是分层的Java SE/EE应用full - stack轻量级开源框架,以IoC(控制反转)和AOP(面向切面编程)为内核,提供展现层spring MVC 和 sp ...

  2. MyBatis笔记——配置文件完成增删改查

    l 完成品牌数据的增删改查操作 § 要完成的功能列表清单:□ 查询® 查询所有数据® 查看详情® 条件查询□ 添加□ 修改® 修改全部字段® 修改动态字段□ 删除® 删除一个® 批量删除准备环境:§ ...

  3. servlet mysql insert_servlet+mybatis 实现mysql的增删改查实例

    古人云:温故而知新.趁周末,重新来学习了一遍servlet + mybatis 实现mysql的增删改查,算是对自己学习的一个总结和记录. 开门见山,首先我们来看一下项目目录结构: 不难发现这是一个m ...

  4. JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用)

    JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用) 文章目录 JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用) 环境搭建 ...

  5. 极其方便的使用Mybatis单表的增删改查

    [活动]Python创意编程活动开始啦!!!      CSDN日报20170427 --<如何在没有实际项目经验的情况下找到工作>      深入浅出,带你学习 Unity 目录(?)[ ...

  6. datatables增删改查php,jQuery+datatables插件实现Ajax加载数据与增删改查功能示例_白峰_前端开发者...

    本文实例讲述了 这里给大家分享一下我在项目中用datatables实现ajax加载数据与增删改查 注意,需要引入  搜索  新增  编辑  删除 职业姓名性别爱好 //点击查找 $(" ...

  7. php mysql增删改查实例_php连接数据库实现用户数据的增删改查实例

    下面小编就为大家带来一篇使用PHP连接数据库_实现用户数据的增删改查的整体操作示例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 main页面(主页面) 代号 姓名 性 ...

  8. vue修改数据连接数据库_vue实现数据的增删改查

    在管理员的一些后台页面里,个人中心里的数据列表里,都会有对这些数据进行增删改查的操作.比如在管理员后台的用户列表里,我们可以录入新用户的信息,也可以对既有的用户信息进行修改.在vue中,我们更应该专注 ...

  9. Vue+ElementUI纯前端技术实现对表格数据的增删改查

    Vue+ElementUI纯前端技术实现对表格数据的增删改查 页面展示效果 一.页面结构 分为三个部分 head body 以及script 一般我个人是在head中引入一些组件库 , 还有一些样式 ...

  10. Node+Vue实现对数据的增删改查

      这是一个用于学生签到的小例子.主要用到的技术有node和Vue:用node搭建小型服务器,配置好路由,前端用vue写好组件,数据库采用的是mysql. 文件结构如下:   主要是功能是对数据的增删 ...

最新文章

  1. PAT甲级排队问题合集 (持续更新中)
  2. Isometric Game 及译法漫谈
  3. 高阶程序员之路-轻松学习分布式锁
  4. SAP配置webdynpro完全手册
  5. 没学c语言可以学python_学了Python,但是没有学c,直接去学c++是可行的吗?
  6. xBIM 基础16 IFC的空间层次结构
  7. c++将字符串转换成 int 类型
  8. spring boot学习(2) SpringBoot 项目属性配置
  9. FullCalendar 七:FullCalendar应用——整合农历节气和节日
  10. python分布式事务_分布式事务的管理--atomikos
  11. libreoffice转换文件为pdf文件乱码问题解决办法
  12. 大数据技术——Spark实时计算
  13. CPU计算机性能的操作方法,把电脑CPU性能调到最大的三种方法
  14. 《根道果:禅修的方法与次第》读后感
  15. java影院订票系统图形界面,java简单影院订票系统Word版
  16. 选择性粘贴出现html,为什么我把EXCEL表中的一个数据复制,选择性粘贴会出现这个对话框?...
  17. golang 实现 tcp-聊天室
  18. mysql键值相同_mysql什么是键值重复
  19. 【css】表格单元格td元素设置最大高度
  20. 转载:揭秘内容付费的三种商业模式(原作者:小马宋)

热门文章

  1. 分享一些不错的sql语句
  2. [导入]ASP.NET 2.0数据处理之高级分页/排序
  3. 常见英文缩写 (持续更新……)
  4. MySQL经常使用命令--create命令使用
  5. 向前看:联想未来可期
  6. Android通过Alpha实现渐变效果的几个方法
  7. MYSQL的空间查询
  8. 算法点心----求出用1,2,5这三个数不同个数组合的和为100的组合个数。
  9. 广告位管理系统---使用说明
  10. 另菜单或工具栏按钮失效的mfc处理方法