使用SSM框架开发企业级应用初级笔记

******************第一章*******************


框架技术
是一个应用程序的半成品
提供可重用的公共结构
按一定规则组织的一组组件

分析优势
不用再考虑公共问题
专心在业务实现上
结构统一,易于学习、维护
新手也可写出好程序

持久化是程序数据在瞬时状态和持久状态间转换的过程


使用MyBatis的开发步骤
下载mybatis-3.2.2.jar包并导入工程
编写MyBatis核心配置文件(configuration.xml)
创建实体类-POJO
DAO层-SQL映射文件(mapper.xml)
创建测试类
读取核心配置文件mybatis-config.xml
创建SqlSessionFactory对象,读取配置文件
创建SqlSession对象
调用mapper文件进行数据操作

MyBatis框架优缺点
优点
与JDBC相比,减少了50%以上的代码量
最简单的持久化框架,小巧并简单易学
SQL代码从程序代码中彻底分离,可重用
提供XML标签,支持编写动态SQL
提供映射标签,支持对象与数据库的ORM字段映射
缺点
SQL语句编写工作量大,对开发人员有一定要求
数据库移植性差


MyBatis的核心对象
SqlSessionFactoryBuilder
丨build()
SqlSessionFactory
丨openSession()
SqlSession
mybatis-config.xml 系统核心配置文件

SqlSessionFactoryBuilder
用过即丢,其生命周期只存在于方法体内
可重用其来创建多个 SqlSessionFactory 实例
负责构建SqlSessionFactory,并提供多个build方法的重载

SqlSessionFactory
SqlSessionFactory是每个MyBatis应用的核心
作用:创建SqlSession实例
作用域:Application
生命周期与应用的生命周期相同
单例:存在于整个应用运行时,并且同时只存在一个对象实例

SqlSession
包含了执行SQL所需的所有方法
对应一次数据库会话,会话结束必须关闭
线程级别,不能共享

小结
非集成环境下的最佳实践
SqlSessionFactoryBuilder
用过即丢,推荐作用域范围:方法体内
SqlSessionFactory
最佳作用域范围:应用的全局作用域
生命周期与应用的生命周期相同
SqlSession
线程级
一个request请求期间


mybatis-config.xml 系统核心配置文件

configuration 配置
properties 可以配置在Java 属性配置文件中
settings 修改 MyBatis 在运行时的行为方式
typeAliases 为 Java 类型命名一个别名(简称)
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
mappers 映射器


配置properties元素的两种方式
通过外部指定的方式(database.properties),实现动态配置 《 用的多
例:
      
......

直接配置为xml,实现动态配置
例:
......

外部指定高于直接配置

第一章具体示例
//指定外部文件名

//Log4g配置 固定
//实体类不用指定完全限定名,name指到包就行了
//可以写多个配置,defuault默认配置名
//此配置名称
//事务管理器配置
//有三种POOLED使用Mybatis自带数据库连接池来管理数据库连接,UNPOOLED不使用任何数据库连接池来管理数据库连接,JNDI JNDI形式使用数据库连接,主要用于项目正常使用的时候
//外部指定的文件内容读取

//所要映射的文件

//事物管理机制 JDBC管理事物方式或者MANAGED WEB容器管理事物方式



"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
******************第六章*******************

常用增强处理类型

使用SSM框架开发企业级应用初级笔记_第1张图片

定义切面
使用SSM框架开发企业级应用初级笔记_第2张图片
******************第十章*******************


懒汉模式和饿汉模式区别

使用SSM框架开发企业级应用初级笔记_第3张图片


注意: 在整个程序运行期间,有且仅有一个实例。
若违背这一点,所设计的类就不是单例类




@RequestParam(value="参数名" required="boolean") String 参数名 ||

//获取上一页面传过来的值 等价于 request.getParameter("参数名") value是固定传来的参数名
required是boolean值 表示是否一定要传值过来


你可能感兴趣的:(使用SSM框架开发企业级应用初级笔记)