mybatis框架
共四天
第一天:mybatis入门java
mybatis的概述 mybatis的环境搭建 mybatis入门案例 自定义mybatis框架(主要的目的是为了让你们了解mybatis中执行细节)
次日:mybatis基本使用sql
mybatis的单表crud操做 mybatis的参数和返回值 mybatis的dao编写 mybatis配置的细节 几个标签的使用
第三天:mybatis的深刻和多表数据库
mybatis的链接池 mybatis的事务控制及设计的方法 mybatis的多表查询 一对多(多对一) 多对多
第四天:mybatis的缓存和注解开发缓存
mybatis中的加载时机(查询的时机) mybatis中的一级缓存和二级缓存 mybatis的注解开发 单表CRUD 多表查询
一、什么是框架?mybatis
它是咱们软件开发中的一套解决方案,不一样的框架解决的是不一样的问题。 使用框架的好处: 框架封装了不少的细节,使开发者可使用极简的方式实现功能。大大提升开发效率。
二、三层架构架构
表现层: 是用于展现数据的 业务层: 是处理业务需求 持久层: 是和数据库交互的
三、持久层技术解决方案app
JDBC技术: Connection PreparedStatement ResultSet Spring的JdbcTemplate: Spring中对jdbc的简单封装 Apache的DBUtils: 它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装 以上这些都不是框架 JDBC是规范 Spring的JdbcTemplate和Apache的DBUtils都只是工具类
四、mybatis的概述框架
mybatis是一个持久层框架,用java编写的。 它封装了jdbc操做的不少细节,使开发者只须要关注sql语句自己,而无需关注注册驱动,建立链接等繁杂过程 它使用了ORM思想实现告终果集的封装。 ORM: Object Relational Mappging 对象关系映射 简单的说: 就是把数据库表和实体类及实体类的属性对应起来 让咱们能够操做实体类就实现操做数据库表。 user User id userId user_name userName 今天咱们须要作到 实体类中的属性和数据库表的字段名称保持一致。 user User id id user_name user_name
五、mybatis的入门maven
mybatis的环境搭建 第一步:建立maven工程并导入坐标 第二步:建立实体类和dao的接口 第三步:建立Mybatis的主配置文件 SqlMapConifg.xml 第四步:建立映射配置文件 IUserDao.xml 环境搭建的注意事项: 第一个:建立IUserDao.xml 和 IUserDao.java时名称是为了和咱们以前的知识保持一致。 在Mybatis中它把持久层的操做接口名称和映射文件也叫作:Mapper 因此:IUserDao 和 IUserMapper是同样的 第二个:在idea中建立目录的时候,它和包是不同的 包在建立时:com.itheima.dao它是三级结构 目录在建立时:com.itheima.dao是一级目录 第三个:mybatis的映射配置文件位置必须和dao接口的包结构相同 第四个:映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名 第五个:映射配置文件的操做配置(select),id属性的取值必须是dao接口的方法名 当咱们听从了第三,四,五点以后,咱们在开发中就无须再写dao的实现类。 mybatis的入门案例 第一步:读取配置文件 第二步:建立SqlSessionFactory工厂 第三步:建立SqlSession 第四步:建立Dao接口的代理对象 第五步:执行dao中的方法 第六步:释放资源 注意事项: 不要忘记在映射配置中告知mybatis要封装到哪一个实体类中 配置的方式:指定实体类的全限定类名 mybatis基于注解的入门案例: 把IUserDao.xml移除,在dao接口的方法上使用@Select注解,而且指定SQL语句 同时须要在SqlMapConfig.xml中的mapper配置时,使用class属性指定dao接口的全限定类名。 明确: 咱们在实际开发中,都是越简便越好,因此都是采用不写dao实现类的方式。 无论使用XML仍是注解配置。 可是Mybatis它是支持写dao实现类的。
六、自定义Mybatis的分析:ide
mybatis在使用代理dao的方式实现增删改查时作什么事呢? 只有两件事: 第一:建立代理对象 第二:在代理对象中调用selectList 自定义mybatis能经过入门案例看到类 class Resources class SqlSessionFactoryBuilder interface SqlSessionFactory interface SqlSession
新建一个普通的工程
)