mybatis教程

来源:互联网 发布:debian ubuntu 知乎 编辑:程序博客网 时间:2024/06/09 22:22

mybatis实现增删该查
mybatis输入类型包括paramerType parameterMap
输入类型
parameterType 传入 简单类型,包装类型(pojo)
parameterMap
输出类型
resultType:指定就是查询出的单条记录所映射的java对象
resultMap

mapper.xml
查询用户
根据用户名查询用户

#{}表示一个占位符(?),${}表示拼接字符串,使用${}可能引起sql注入。${}中的字符串只能是${value};
<!-- 根据用户名名称模糊查询用户信息,可能返回多条,输入类型为简单类型,输出类型为pojo类型--><select id="findUserByName" parameterType="java.lang.String" resultType="com.mybatis.po.User">select * from user where username like ='%${value}%'</select>

用户综合查询
mapper.java
//根据用户名查询用户列表
//返回的值是单条用User 返回值是多条使用List 内部使用selectOne和selectList来查询数据库

public List<User> findUserByName(String name) throws Exception;

sqlsql使{}拼接sql,引起sql注入
字符#{}表示一个占位符 占位符就是一个问号 #{value}的值映射成一个 ?
;; #{id}:其中id表示接收的参数,参数名就是id,如果输入参数是简单类型,#{}中的参数名可以任意,可以是value或者其他
value:{}中只能使用value
select * from user from username like ‘%小明%’ 模糊查询小明 模糊查询使用%%进行匹配
select * from user from username like ‘小明’ 查询小明

select * from user from username like ? 问号是占位符,在jdbc中会自动的将输入的内容拼接 为 ‘小明’

代理对象内部调用selectone和selectList
如果mapper方法返回单个pojo对象(非集合对象),代理对象内部通过selecOne查询数据库
如果mapper方法返回集合对象,代理对象内部通过selectList查询数据库

mapper接口方法参数只能有一个是否影响系统开发

系统框架中,dao层的代码是被业务层公用的,即使mapper接口只有一个参数,可以使用包装类型的pojo满足不同的业务方法需求

0 0