2.映射器Mapper
相当于dao层,不用写实现类(mybatis底层会采用动态代理模式 会跟我生成实现)
步骤:
(1) 创建项目 配置mybatis-config.xml 和昨天一样
(2) 创建接口 ProductMapper (XXXXMapper) 里面定义一个方法findAll -->以前dao层/mapper层
(3) 在对应的ProductMapper.xml namespace 和
标签里面id (namespace+id) == (ProductMapper包路径+方法)
select * from product
3.高级查询
3.1 like查询
方式一(存在sql注入的问题):
and productName like '%${productName}%'
方式二:
and productName like concat('%',#{productName},'%')
3.2特殊符号转译
方式一:
Eq:
and salePrice > #{minPrice} and salePrice < #{maxPrice}
方式二(CDATA):
Eq:
and salePrice > #{minPrice} and salePrice <= #{maxPrice}
]]>
4.结果映射
处理表字段和domain的对象字段不一致的情况
4.1 使用别名
select id,productName pName,salePrice,costPrice,cutoff from product
4.2 返回Map解决
select id,productName,salePrice,costPrice,cutoff from product
5.关系处理
5.1 对一方处理
嵌套结果: 只发送一条sql
嵌套查询: 发送 1+n条sql
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
SELECT
p.id,p.productName,p.salePrice, p.costPrice,p.cutoff,p.dir_id
FROM product p
select * from productDir where id = #{dir_id}
5.2 对多方进行处理
嵌套结果和嵌套查询
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select dir.id ,dir.dirName from productDir dir
select id,productName pName,salePrice,costPrice,cutoff
from product where dir_id = #{dir_id}
6.SSM整合
6.1 整合步骤
(1)创建项目--web项目 (maven/普通web)
(2)导入三个框架的jar包
(3)配置文件
applicationContext.xml --配置spring+mybatis
cn.itsource.ssm.domain