跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Mybatis常用总结

1.参数注入

1.1用#{0},#{1}的形式,0代表第一个参数,1代表第二个参数public list querylist(string workerid, integer topnum);SELECT ID id, WORKER_ID workerId, UPDATE_DATE updateDateFROM USER_RECORDS tWHERE t.WORKER_ID = #{0}LIMIT #{1}1.2Map或者封装对象,workerId为map里面的键;如果是对象则workerId为对象中的属性,这种方法非常常用public Integer queryCountByWorkerId(Map queryParam);SELECT COUNT(1)FROM tableName FWHERE F.WORKER_ID = #{workerId}

1.3注解

public Integer queryCountByWorkerId(@param(“workerId”)String workerId);SELECT COUNT(1)FROM tableName FWHERE F.WORKER_ID = #{workerId}

2.返回

2.1映射

实体类与表字段对应select ID,CREATE_DATE,WORKERID from tableName这种方式查询语句查询的字段直接就是数据库里面的字段就好了,就定义映射的column

2.2直接返回对象

select ID id,CREATE_DATE createDate,WORKERID workerId from tableName这里查询返回的字段别名必须对应返回对象中的属性

3.执行原生sql

3.1sql参数:

public class ParamVo {private String sql;//getter setter 省略}

3.2接口:

/*** @功能描述: 创建* @param vo* @return*/ public int excuteCreateSql(ParamVo vo);/*** @功能描述: 查询* @param vo* @return*/ public List> excuteSelectSql(ParamVo vo);3.3xml:${sql}${}不编译sql直接执行,如果用#{sql}可能报错${sql}这里不知道返回类型用map或者hashmap作为返回4.include:有时候两个方法要返回的字段都一样或者where子句一样,这样为了避免重复写代码,就抽出来用include

4.1定义子句相同部分

FROM tableName1 FRIGHT JOIN tableName2 C ON F.WORKER_ID = C.WORKER_IDWHERE F.STATUS = 1 AND F.WORKER_ID = #{workerId}ORDER BY C.CREATE_DATE DESC

4.2引用

SELECT COUNT(1) SELECT ID id, WORKER_ID workerId, UPDATE_DATE updateDate,......

相关文章