java的互联网应用可以通过MyBatis框架访问数据库。
概念:
持久层以及常用框架:持久层框架作用是将业务数据存储到磁盘,具备长期存储的能力,只要不是磁盘损坏、断电或者其他情况下,重新开启系统,可以读取数据。通常执行持久化任务的都是数据库系统,特点是具有巨大的磁盘空间,缺点是比较慢。在互联网秒杀场景下,每秒执行成千上万次的访问,慢可能导致宕机,在这样的场景下 可以考虑使用缓存Redis(NoSQL)内存数据库。
数据库:关系数据库和内关系数据库NOSQL,
缓存以及常用缓存:内存数据库,Redis和Memcache,Redis具备持久化的功能
Mybatis的最大亮点:
1、不屏蔽SQL,可以使用SQL语句,提高性能
2、提供强大、灵活的映射机制,可以动态的组装SQL
3、提供使用了Mapper接口,需要一个借口和XML文件就能创建映射器,使开发者更加关注于业务逻辑开发。
Mybatis的核心组件:
SqlSessionFactoryBuilder:构造器,根据配置或者代码生成SqlSessionFactory,采用的分布构建Builder。
SqlSessionFactory:工厂接口,生成SqlSession对象
SqlSession:会话,一个可以直接执行SQL,换可以获取Mapper接口*(推荐使用)
Mapper:映射器,由一个java接口和XML文件构成
SqlSessionFactory工厂接口的创建,单例,实现类(SqlsessionManager(多线程环境)、DefaultSqlSessionFactory(一般单线程))
1、XML配置方式mybatis-config.xml
数据库环境配置<environment><datasource>
映射文件配置<mapper>
别名配置<typeAlias>
2、Java代码方式(不推荐使用,代码冗余)
SqlSession会话:
1、获取Mapper接口
2、发送SQL语句
3、控制数据库事务
3、Mapper映射,接口和对应的XML文件组成RoleMapper.java和RoleMapper.xml
描述映射规则
提供SQL语句
配置缓存
提供动态SQL
组件的生命周期
1、SqlSessionFactoryBuilder:创建SqlSessionfactory之后失去作用,删除
2、SqlSessionFactory:相当于数据库连接池,设置为单例模式,创建SqlSession连接,和Mybatis的存活时间一样
3、SqlSession:连接对象,它的存活未一次业务请求操作。执行完就关闭,返回给SqlsessionFactory
4、Mapper:存活跟随SqlSession,一次业务请求
实例Demo: