1.学习安排
四天
day1:mybaits入门
mybaits概述
mybatis的环境搭建
mybatis入门案例
自定义mybatis框架(主要目的是了解mybatis中执行细节)
day2:
mybatis基本使用
mybatis的单表crud操作
mybatis的参数和返回值 设置
mybatis的dao编写
mybatis配置的细节(几个标签的使用)
day3:
mybatis深入和多表
mybatis连接池的使用
mybatis事务控制和设计方法
mybatis多表查询(一对多、多对多)
day4:mybatis缓存和注解开发
mybatis中加载时机(查询时机)
Mybatis的一级缓存和二级缓存
mybatis注解开发(单表CRUD 和 多表查询)
2.三层架构和SSM框架的对应关系
三层架构
表现层:展示数据
业务层:处理业务需求
持久层:和数据库交互
对应关系
MyBaits:持久层框架,和数据库交互
Spring:不属于任何层,提供IOC和AOP支持
Spring MVC框架:表现层框架
3.JDBC操作数据库的问题
1.持久层技术解决方案
JDBC技术:
Connection
PreparedStatement
ResultSet
Spring的JdbcTemplate:
Spring中对jdbc简单封装
Apache的DBUtils:
和Spring的JdbcTemplate很像
以上都不是框架;
JDBC是规范
jdbcTemplate和DBUtils都是工具类
2.jdbc代码回顾
public static void main(String[] args){
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try{
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","root");
String sql = "select * from user where name = ?";
preparedStatement = connection.prepareStatement(sql);
resultset = preparedStatement.executeQuery();
while(resultSet.next()){
System.out.println(resultSet.toString());
}
}catch(Exception e){
e.printStackTrace();
}finally{
//释放资源
}
}
jdbc存在的问题
在实际业务开发中,我们只关注Sql语句,而jdbc中我们需要准备很多东西,注册驱动、创建各种类、封装对象、释放资源等等。
因此Mybatis能够将这些繁琐的操作封装起来
4.Mybatis框架概述
持久层框架,java编写
封装了jdbc操作的很多细节,仅需关注sql本身,无需关注链接等复杂过程
利用ORM思想实现了结果集的封装;
ORM
- Object Relational Mapping
- 将数据库表和实体类的属性对应起来;
- 通过操作实体类实现操作数据库表