学习目标:
- 学会MyBatis的环境搭建
- 熟练应用MyBatis进行单表增删改查操作
- 能够自定义MyBatis框架
- 熟练掌握MyBatis的配置
学习内容:
一、mybatis基本使用
1、回顾MyBatis自定义和环境搭建
2、完善自定义MyBatis的注解开发
二、mybatis的单表crud操作
1、MyBatis基于代理DAO的CRUD操作
三、mybatis的参数和返回值
1、参数:OGNL表达式(Object Graphic Navigation Language:对象图导航语音)
- 通过对象的取值方法来获取数据,在写法上将get省略
- 如
- 类:user.getUsername()
- OGNL:user.username
- MyBatis为什么能直接写username而不用user
- 因为parameterType中已经提供了属性所属的类,所以不需要对象名,直接写属性名
2、返回值:
- 封装对象(实体类)的属性名称与从数据库获取的列名不一致时怎么办
-
在UserDao.xml映射文件的SQL语句中起别名
select id as userId,address as userAddress from user -
在UserDao.xml映射文件中添加resultMap映射,并在函数映射中用resultMap属性替代resultType属性
# resultMap对应上面的id值
SELECT * from USER
-
四、mybatis的dao编写
1、归根到底就是调用execute函数
五、mybatis的配置细节(几个标签的使用)
1、Propreties标签的使用
- 配置连接池时,连接数据库的信息可以进行调用
- 在configuration标签下面直接进行Propreties标签的定义
下面直接用${driver}表示 - 连接外部jdbcConfig.properties
下面要与外部文件保持一致 ${jdbc.driver}
- 在configuration标签下面直接进行Propreties标签的定义
- URL是什么
- Uniform Resource Locator 统一资源定位符,可以唯一表示一个资源的位置
- http://localhost:3306/my/batis
协议 主机 端口 URI - URI:Uniform Resource Identifier 统一资源标识符,应用中唯一定位一个资源
- 可以用url表示相关配置文件的位置,也可以用resource表示
2、typeAliases标签的使用
- 使用typeAliases配置别名,只能配置domain中类的别名
<typeAliases>
<!--type属性指定实体类的全类名,alias属性指定别名,指定别名后不区分大小写-->
<typeAlias type="com.xuefeng.domain.User" alias="user"></typeAlias>
<!--用于指定要配置别名的包,当指定之后,改包下实体类都会注册别名,类名就是别名,不区分大小写-->
<package name="com.xuefeng.domain"></package>
</typeAliases>
3、package标签的使用
- 如上
<!--配置映射文件的位置-->
<mappers>
<mapper resource="com/xuefeng/dao/Userdao.xml" />
<!--用于指定dao接口所在的包,指定之后就不需要再写mapper,resource,class,直接能找到对应文件与映射-->
<package name="com.xuefeng.dao"></package>
</mappers>