框架(framework)是一个提供了可重用的公共结构的半成品。
Struts2是以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个整洁基于MVC设计模式实现的Web应用程序框架
新框架特性:从逻辑中分离出横切关注点的拦截器,减少或者消除配置文件,贯穿整个框架的强大表达式语言,支持可变更和可重用的基于MVC模式的标签API等
Hibernate框架是一个优秀的持久化框架,负责简化将对象数据保存到数据库中,或者重数据库中读取数据并封装到对象的工作。
Hibernate通过简单配置和编码即可替代JDBC烦琐的程序代码
Spring也是一个开源框架。它的目标是使现有的JavaEE技术更容易使用和促进良好的编程习惯。它是一个轻量级的框架,渗透了JavaEE技术的方方面面。
它主要作为依赖注入容器和AOP实现存在,还提供了声明式事物,对DAO层的支持等简化开发的功能。
SpringMVC框架是Spring框架提供的构建Web应用程序的全功能MVC模块,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面,是结构最清晰的MVC Model2的实现
MyBatis是一个优秀的数据持久层框架,在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。
数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称
Mybatis是一个开源的数据持久层框架。它内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询,存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置及结果集的检索。MyBatis作为持久层框架,其主要思想是将其程序中的大量SQL语句剥离出来,在配置文件中,实现SQL的灵活配置。这样做的好处是将SQL与程序代码分离,可以在不修改程序代码的情况下,直接配置文件中修改SQL。
ORM(Object/Relational Mapping)即对象/关系映射,是一种数据持久化技术。它在对象模型和关系型数据库之间建立对应关系,并提供了一种机制,通过JavaBean对象去操作数据库表中的数据
mybatis-3.2.2.zip(Mybatis的jar)
mybatis-3-mybatis-3.2.2.zip(Mybatis源码包)
2.部署jar包
3.编写Mysatis核心配置文件 configuration.xml
"http://mybatis.org/dtd/mybatis-3-config.dtd">
mybatis-config.xml文件的几个常用元素作用
configuration:配置文件的根元素节点
properties:通过resource属性从外部指定properties属性文件(database.properties),该属性文件描述数据库连接的相关配置,位置也在/resouorces目录下
settings:设置MyBatis运行中一些行为,比如此处设置Mybatis的log日志实现为LOG4J,及使用log4j实现日志功能
environments:表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上,该元素节点可以配置多个environment子元素节点,但是必须指定一个默认的运行环境(通过default指定)
environment:配置Mybatis的一套运行环境,需指定运行环境id,事物管理,数据配置源等相关信息
mappers:告诉MaBatis去哪里找到SQL映射文件
mapper:mappers的子元素节点,具体指定SQL映射文件路径
4.创建实体类POJO
5.创建DAO接口
6.创建SQL映射文件
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
SELECT COUNT(1) FROM `smbms_provider`;
7.编写测试类
1.读取配置文件
String resource = “mybatis-config.xml”;
InputStream is = Resources.getResourceAsStream(resource);
2.创建SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
3.创建SQLSession对象
Int count = 0;
SqlSession session = null;
Session=factory.openSession();
Count = session.selectOne(“com.xw.dao.provider.ProviderMapper. getProviderCount”);
Logger.debug(“ProviderMappereTest count”+count)
4.关闭SQLSession对象
session.close();