MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
理解:基于Java持久层框架,内部封装了jdbc,开发者只需要关系sql语句本身。
采用ORM的思想解决了实体和数据库映射的问题,对JDBC进行了封装,同时屏蔽了jdbc API底层访问细节。
ORM:将数据库表和实体类及实体类的属性对应起来,通过操作实体类就实现数据库的操作。
注意:实体类 的属性与数据库表 的字段名一一对应
一,三层架构
1,视图层:展示数据
2,业务层:处理业务需求
3,持久层:与数据进行交互
二,mybatis入门
1,步骤
1.1,创建maven工程并导入坐标
1.2,创建实体类和dao接口
1.3,创建mybatis的主配置文件
SqlMapConifg.xml
1.4,创建映射配置文件
IUserDao.xml
2,注意事项:
第一:创建IUserDao.xml和IUserDao.java时文件的路径要一致
第二:包在创建:com.itheiam.doa是三级目录
目录在创建时:com.itheiam.doa是一级目录·
第三:mybatis的映射配置文件位置必须和dao接口的包结构相同
第四:映射配置文件的mapper标签的namespace属性的取值必须是dao接口的全限定类
第五,映射配置文件的操作配置(select等)id属性的取值必须是dao接口的方法名
第六:满足以上要求就不用实现对应的接口
public static void main(String[] args) throws IOException { //1.读取配置文件 InputStream in=Resources.getResourceAsStream("SqlMapConfig.xml"); //2.创建SqlSessionFactory工厂 SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder(); SqlSessionFactory factory=builder.build(in);//创建工厂使用了构建者模式 //3.使用工厂生产SqlSession对象 SqlSession session=factory.openSession();//工厂模式 //4.使用SqlSession创建Dao接口的代理对象 IUserDao userDao=session.getMapper(IUserDao.class);//代理模式 //5.使用代理对象执行方法 List<User> users=userDao.findAll(); for(User user:users) { System.out.println(user); } //6.释放资源 session.close(); in.close(); }
注意:1.读取配置文件时用的路径不要使用绝对路径,也不要使用相对路径
使用类加载器,只能读取类路径的配置文件,或者,使用ServlerContext对象的getRealPath()
2.构建者模式:把对象的创建细节隐藏,让使用者直接调用方法即可拿到对象。
3.工厂模式:优势:解耦降低类之间的依赖关系
4.代理模式:优势:不修改源码的基础上对已有的方法增强
h
原文:https://www.cnblogs.com/gjx1212/p/14666059.html