目录
框架介绍
提升开发效率,半成品
三层架构
表现层:spring mvc、struts1、struts2
业务层:spring(full-stack)
持久层:mybatis、hibernate、jpa等
细化持久层
底层还是JDBC
运行必须有数据库驱动
框架:mybatis位于JDBC之上,应用之下
ORM框架
O:Object
R:Relational
M:Mapping
持久层k框架解决的问题就是ORM问题
增删改:对象数据持久化到数据库
查询:数据库数据封装到对象中
java类和表结构对应
java对象和表中的记录对应
MyBatis
01_MyBatis
mybatis的入门
搭建开发环境
导入坐标:mybatis、驱动、单元测试、可选的日志
建立mybatis主配置文件:会配置模板
日志配置i文件:可选的
入门案例
建立实体类和数据库表结构
建立dao接口
编写映射文件
注册映射文件
编码即可
dao编码方式
传统是编写dao的实现类
mybatis自动使用Proxy生成接口的类和对象
常用的类或接口
Sql'SessionFactory
重量级的
应该是单例的
线程安全的
SqlSession
轻量级的
线程不安全的
用时打开,用完关闭
抽取工具类和测试基类
实现增删改
实现查询
查询所有
条件查询
模糊c查询
参数只有一个简单类型:占位符可以随便写
参数有多个简单类型:占位符使用#{arg0}或#{param1}
参数是一个非简单类型:#{name}调用getName方法
#{}和${}区别:一个是占位符,一个是字符串拼接
02_MyBatis
获取数据库生成的主键
使用场景
方式一:支持自动增长的数据库。<insert autoGenKeys=“true”
方式二:<insert><selectKeys>书写数据库的专门获取生成的主键的语句。在插入之后获取还是插入之前获取
动态SQL
什么是动态SQL:根据参数不同,执行不同的SQL语句
动态SQL标签
if
用户条件查询
用于更新
用于添加:了解
foreach
数组:array
List:collection或list
Set:collection
Map:_parameter
以上参数都可以使用@Param在DAO方法中进行指定
choose when otherwise
格式化标签
where:有主体内容,加上where关键字,去掉第一个and
set:有主体内容,加上set关键字,去掉最后一个逗号
trim
多表的“连接”查询
多表的设计及类之间的关联关系。ORM框架学习最为重要的内容
根据多查询少:适用于多对一
使用别名自动映射
手动映射
手动映射:association
根据少查多:适用于一对多。collection
多对多查询:适用于多对多。语句不同
03_MyBatis
嵌套查询:分步查询、子查询
连接查询一次把关联的表记录都查出来。
分成多条:分次查询
配置相对步骤多了一些
根据多查少、根据少查多、多对多查询
嵌套的加载策略
立即加载:连接查询
延迟加载
配置