概念
作用
[1]抽取公共问题
[2]开发专注业务
[3]降低维护成本
[4]层级逻辑复用
分层
数据访问层
业务逻辑层
界面层
分类
[1]Activiti 工作流
[2]Structs 持久层
[3]Hibernate 持久层
[4]Mybatis 持久层
[5]SpringData 持久层
[6]Spring 服务层
[7]SpringMVC 表现层
JDBC
定义 Java DataBase Connectivity
属性 SQL执行API
流程
[1]加载驱动 Class.forName("com.mysql.jdbc.Driver").newInstance();
[2]获取DB连接 Connection connection = DriverManger.getConnection( url,username,password);
[3]执行SQL PrepareStatement ps = connection.prepareStatement(SQL);
ps.execute();
[4]处理结果集 ResultSet rs = ps.getResultSet();
[5]关闭DB连接
整合-c3p0
[1]获取数据源 ComboPooledDataSource(); [ c3p0-config.xml ]
[2]获取DB连接
[3]执行SQL
[4]处理结果集
[5]关闭连接
安全_防止SQL注入 PrepareStatement
区别
[1]直接编译Statement SQL使用参数 单次连接有效 每次编译
[2]预先编译PreparedStatement SQL使用占位符 整个DB有效 一次编译,每次传参
DBUtils
属性 JDBC访问框架_轻量级别
条件 JavaBean属性与DB字段必须一致
组成
[一]QueryRunner
[二]ResultSetHandler
[1]ArrayHandler 结果集第一行,转换数组
[2]ArrayListHandler 结果集每一行,转换数组,存放List
[3]BeanHandler 结果集第一行,封装JavaBean
[4]BeanListHandler 结果集每一行,封装JavaBean,存放List
[5]ScalarrHandler 单行单列的结果集
[三]c3p0
[1]连接数据源 默认扫描 classpath目录的"c3p0-config.xml"
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
[2]创建查询实例 封装获取数据源、预编译PreparedStatement、处理结果集
QueryRunner queryRunner = new QueryRunner( C3P0Util.getDataSource() );
[3]执行查询 封装释放资源 [ 放回连接池与DB的连接 ]
queryRunner.query( SQL,new ScalarHandler() ) ;
[4]执行操作
queryRunner.update( SQL,, );
安全_防止SQL注入 PrepareStatement
c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/mhg</property>
<property name="user">root</property>
<property name="password">k9718</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</default-config>
</c3p0-config>
Hibernate
属性 全自动ORMORM数据访问层框架
原理 解析xml,反射调用JavaBean方法
组成
[1]*.java 映射类 描述数据库表结构
[2]*.hbm.xml 映射文件 描述数据库表与映射类的关系 属性:字段;类:表;实例:记录
[3]*.cfg 配置文件 数据库连接信息
[4]*.xml 配置文件 数据库连接信息
[5]*.properties 配置文件 数据库连接信息
MyBatis
属性 半自动ORM数据访问层框架_轻量级别
原理 解析xml,反射调用JavaBean方法
条件 JavaBean属性与DB字段不必一致,可以设置别名
内核 JDBC
组成
[1]配置文件 管理数据源、事务
[2]映射文件 管理SQL、JavaBean、映射输入参数、输出参数
功能
[1]SQL动态生成 配置文件标签拼接
[2]SQL位置分离 配置文件与代码分离
[3]SQL集中管理 SQLMapper
[4]缓存功能 一级缓存sqlSession级别、二级缓存mapper级别
[5]延迟加载
安全_防止SQL注入 #{}没有注入问题,${}存在注入问题
说明 资源文件mapper.xml,修改后无须重新编译
Spring
SpringMVC
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191012145358840.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RkaG1iYmtseWsyMDE4,size_16,color_FFFFFF,t_70)