mybatis的运行原理:
百度
mybatis:在 模糊查询时
使用 #{} 和 ${} 的区别
#{}的用法: 相当于jdbc的中的PreparedStatement预编译
不会出现sql注入问题, 安全
select * from user where name like concat('%',#{value},'%')
${}的用法: 相当于 jdbc的Statment 字符串拼接 ,
不建议使用,容易出现sql注入问题
select * from user where name like '%${value}%';
===================================================
mybatis的分页方式:
只 使用了 入参尾 Map集合的分页方式:
public List<User> getUsersByLimit(Map<String,Object> map);
map.put("startRow",(pageNo-1)*pageSize);
map.put("pageSize",pageSize);
select * from user
limit #{startRow},#{pageSize};
2)使用 RowBounds 对象进行 分页
sql不需要使用 limit 关键字
sql语句编写如下:
select * from user
session.selectList("命名空间",null,new RowBounds(开始行,页大小));
====================================================
SqlMapConfig这个 全局配置文件:
1) 别名:
由于 返回值类型 ,和 入参 的全路径名 较长
所以mybatis 使用 别名的方式 来 简化开发
用法: 在全局配置 文件中, 使用 别名标签 typeAliases
<typeAliases>
<typeAliase type="com.oracle.pojo.User" alias="user">
<package name="com.oracle.pojo">
2)mappers 用来加载 指定的 mapper.xml 映射文件的
mappers有以下几种类型:
扫描本地文件
1)<mapper url="C:\\Users\\Administrator\\Desktop\\UserDao.xml"/>
扫描接口
2)<mapper class="com.oracle.dao.UserDao"/>
扫描映射文件
3)<mapper resource="com/oracle/mapper/UserDao.xml"/>
4)package name="com.oracle.mapper"
mybatis的 接口 和 mapper.xml 一般情况下 放在一起
====================================================
mybatis的开发方式:
3种:
1)接口+实现类的方式 + mapper.xml映射文件
UserDao + UserDaoImpl 传统的开发方式
2)接口 + mapper.xml映射文件
动态代理模式开发
对数据库的 crud 操作:
UserDao ----> mybatis帮你 创建 接口的 实现类
3)基于注解开发
===============================================
掌握 mybatis的 动态代理开发模式:
1)编写UserMapper接口
2)编写UserMapper.xml映射文件
3)导入 SqlMapConfig全局配置文件
4)编写 测试类
通过 session.getMapper(UserMapper.class);
获取 动态代理对象
使用mybatis的动态代理模式 时
实现登录操作,要用
@Param 注解
使用方式:
@Param("sql语句#{}中的名") String name
@Param("sql语句#{}中的名") String pwd
mybatis动态代理开发模式
最新推荐文章于 2021-03-02 21:22:31 发布