mybatais基础
一,mybatis开发基于XML文件获取sqlSessionFactory方式进行查询
在mybatis框架中通过基于XML文件获取sqlSessionFactory方式进行查询,有两个重要配置文件,两个重要对象。
<mappers>
<mapper>resource="org/mybatis/example/***Mapper.xml" />
<package name="包名" />
</mappers> 。
***Mapper.xml文件,查询映射文件,里面书写sql语句。
文件,mybatis-conf.xml 全局配置文件,定义连接对象等,映射的mapper文件。定义映射的mapper文件使用:
对象,sqlSessionFactory,sqlSession工厂,产生 sqlSession对象。 sqlSession,数据库连接对象,可以理解为对connection的封装。
二,mybatis开发基于 mapper接口的开发
1,搭建开发环境,mybatis jar 包,mysql连接包,log4j的包。
2,创建mybati-config.xml,创建sqlSessionFactory对象。
3,获取sqlSession对象。
4,创建sql映射文件,EmployeeMapper.xml. 编写sql语句,在注册到mybati-config.xml中。
5,编写Mapper接口。
6,完成两个绑定。
sql映射文件与mapper接口的绑定, sql映射文件 namespace内为mapper接口的全类名。
mapper接口中方法与sql映射文件中的sql语句的绑定, sql接口中方法名与 sql映射文件中sql语句的id相同。
7,获取mapper接口的代理实现类对象。 sqlSession.getMapper(EmployeeMapper.class)
三,mybatis参数传递的几种类型和接收方式
传递的参数为一个普通类型参数(int,integer,string),在接收参数#{随便}内随便写。
参数个数大于一个,mybatis后台会将参数封装为一个map,map的key为(0,1,2,.....n-1或者param1,param2,param3,.......paramN)。获取参数时通过,0,1,2,3或者param1,param2进行获取。
命名参数,当参数个数大于一个时,使用0,1,2等索引获取参数,不太直观,可以通过@param(“XXX”)注解来对参数进行修饰,修饰后多个参数在被封装为Map后,Map的key为param注解的XXX。
POJO对象,当传递的参数为一个POJO对象时,#{}内取值为POJO对象的属性。
Map,我们可以将参数封装到Map中进行传值,#{}内取值即为Map的key。
传递的参数为Collection(List,Set),Array(数组),后台也会将参数封装为一个Map进行传递,如果为Collection,key为collection,如果为List,key为list, 如果为Array,key为array。建议使用@param注解对参数进行命名,提高代码的阅读行。
参数获取方式,${},#{}。其中#{}是sql预编译,参数的位置编译为占位符,${}是直接将参数拼接到sql语句中,有sql注入风险。#{} 预编译只能用在where条件,having过滤,limit分页后,其他位置必须使用${}进行sql拼接。