- 框架(framework):整个或部分系统的可重用设计,表现为一组抽象构建实例间交互的方法;是应用开发者定制的应用骨架(软件开发的一套解决方案)。
- 优点:框架封装了很多的细节,让开发者可以使用极简的方式实现功能,从而提高开发效率。
1)JDBC技术:Connection,PreparedStatement,ResultSet
2)Spring的JdbcTemplate:Spring中对jdbc的简单封装
3)Apache的DBCUtils:它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装。
什么是Mybatis 概念:注意:
- Spring的JdbcTemplate和Apache的DBUtils都只是工具类而不是框架。
- JDBC是规范不是框架。
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
概述:- 封装了jdbc操作的许多细节,令开发者只需要关注sql语句本身,无需关注注册驱动和创建连接等繁杂过程。
- 使用了ORM思想实现了结果集的封装。
- ORM的全名为:Object Relational Mappging,我们喊它作:对象关系映射
把数据库表和实体类及实体类的属性对应起来,使我们可以只需要操作实体类就实现操作数据库表。
注:实体类中的属性和数据库表的字段名称保持一致。
age com.example.test;
import com.example.dao.UserDao;
import com.example.domain.User;
import com.example.mybatis.io.Resources;
import com.example.mybatis.sqlsession.SqlSession;
import com.example.mybatis.sqlsession.SqlSessionFactory;
import com.example.mybatis.sqlsession.SqlSessionFactoryBuilder;
import java.io.InputStream;
import java.util.List;
public class MybatisTest {
public static void main(String[] args)throws Exception {
//1. 读取配置文件
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
//2. 创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(is);
//3. 使用工厂生产SqlSession对象
SqlSession session = factory.openSession();、
//4. 使用SqlSession创建Dao接口的代理对象
UserDao userDao = session.getMapper(UserDao.class);
//5. 使用代理对象执行方法
List users = userDao.findAll();
for (User user : users) {
System.out.println(user);
}
//6. 释放资源
session.close();
is.close();
}
}
注意事项:
- 在映射配置中表明mybatis要封装到哪个实体类。
- 配置方式:指定实体类的全限定类名
- 把UserDao.xml移除,在dao接口的方法上使用@Select注解,并指定sql语句时,需要在 SqlMapperConfig.xml的mapper配置时使用class属性指定dao接口的全限定类名。
提示:虽然Mybatis支持写dao实现类,但在 日常开发时都是采用不写dao实现类的方式(不管使用xml还是注解装置)
自定义Mybatis解析:- Mybatis在使用代理dao的方式实现增删查改的主要作用:
- 在代理对象中调用selectList
- 创建代理对象
“图解”:



