MyBatis框架:持久层框架,对jdbc进行了封装。原来MyBatis属于apache(ibatis),后来转给了google(MyBatis)
搭建MyBatis的环境
1. 引入MyBatis的jar包
下载地址:https://github.com/mybatis/mybatis-3/releases
2. 创建MyBatis的核心配置文件mybatis-config.xml
MyBatis的帮助文档:http://www.mybatis.org/mybatis-3/zh/index.html
3. 创建表和对应的实体类
4. 创建接口和对应的mapper文件
需要在mybatis-config.xml文件中配置UserMapper.xml的路径
5. 创建测试类
MyBatis连接数据库五步曲
第一步:加载配置文件
第二步:获取SqlSessionFactory对象
第三步:获取SqlSession对象
第四步:获取mapper对象,进行对应的操纵
第五步:关流
在MyBatis中使用Log4J
分三步:
第一步:引入jar包
第二步:编写Log4J的配置文件
第三步:在mybatis-config.xml中配置Log4J
第四步:输出日志
使用MyBatis进行增删改查
id ==> 方法名
参数类型 ==> paramaterType
返回值类型 ==> resultType
设置别名
第一种方式:
<typeAliases>
<typeAlias type="com.luheng.bean.User" alias="user"></typeAlias>
</typeAliases>
第二种方式:
<typeAliases>
<package name="com.luheng.bean"/>
</typeAliases>
这种设置方式会为包下面的每一个实体类都起一个别名,别名就是实体类的首字母小写
User ==> user
StudentLevel ==> studentLevel
JDBC和MyBatis对比:
执行效率:JDBC比较快
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集
多字段查询解决方案
第一种方式:加@Param注解
第二种方式:使用下标
数据库中的字段和实体类的属性不一致的解决方案
第一种:给字段起别名(很少使用)
第二种:ResultMap
一对多关联查询的解决方案
多对一关联查询的解决方案
动态SQL
if
choose when otherwise
where
trim
set
foreach
List ==> list
Set ==> set
数组 ==> array
<where>标签可以删除多余的and和or
<set>标签可以删除多余的”,”逗号