Mybatis
ORM框架:映射框架,提供动态sql语句(set标签/sql片段/if标签/foreach遍历),提供API(SQlSession里面功能查询列表,直接获取Mapper接口代理对象),日志输出(log4j)
基本使用步骤
1)准备好jar包 (mybatis核心jar包)
2)准备mybatis核心配置文件(sql-config.xml/mybatis-config.xml)
配置properties(加载外部配置文件)/配置环境/别名/插件配置/开启二级缓存/配置mapper映射器的包名
3)准备接口文件和映射文件
XxxDao/XxxMapper----->XxxDao.xml/XxxMapper.xml
4)读取核心配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml") ;
5)创建SqlSessionFactoryBuilder--->public SqlSessionFactory build(InputStream inputStream)
6)创建执行对象SqlSession
SqlSession sqlSession = sqlSessionFactory对象.openSession() ;
7)获取接口对象---jdk动态代理
XxxDao xxDao = sqlSession.getMapper(接口类型.class) ;
8)调用接口方法
使用mybatis的mapper代理调用接口方法的注意事项:
1)接口文件名和映射文件名称一致
2)建议 接口文件所在包的结构和映射文件的包结构一致
3)接口映射文件XxxDao.xml 里面标签的id值必须和接口的方法名一致
4)映射文件中的namespace名称空间必须指定为"接口的完全限定名称"
mybatis关于模糊查询的语法:
使用'%${value}%'(字符拼接)或者使用 #{}(占位符号)
mybatis多个参数传递:
interface UseDao{
User selectUserByUsernameAndSex(@Param("username")String name,@Param("sex")String gender) ;
User selectUserByUsernameAndSex(Map<String,Object> map) ;
//通过mybatis提供的参数绑定的注解 @Param
//Map的key值需要和占位符号的内容一致
select * from user where username = #{username} and sex = #{sex}
Mybatis分页插件PageHelper的使用
1.在pom.xml中导包
<!--mybatis的分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2.在mybatis-config.xml核心配置文件中配置分页插件拦截器
<!--配置插件-->
<plugins>
<!--插件里面属性
interceptor指定当前拦截器
-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>