mybatis 配置文件
MyBatis: http://mybatis.org
Github: http://github.com.mybatis.
框架是一个提供可重用的公共结构的半成品。框架就是应用程序的骨架。
Stus2 以Web Work 优秀 的设计思想为核心,提供了一个更加整洁的给予MVC 设计模式实现的web应用程序框架,
框架的特点:从逻辑分离出横切关注点的拦截器,减少或者消除配置文件,贯穿整个框架的强大表达式语言。支持可变更可重用的基于MVC模式的标签API。
2.Hibernate 框架
Hibernate 是一个优秀的持久化框架,负责简单化将对象保存到数据库中,或从数据库中读取数据并封装到对象的工作。Hibernate 通过简单配置和编码即可替代JDBC 繁琐的程序代码。Hibernate 已经成为当前主流的数据库持久化框架,被广泛 应用在实际中工作。
3.Spring框架
- spring 是开源框架。
- 是一个轻量级框架,渗透Java EE 技术方方面面。
- 主要作用:依赖注入容器和AOP 实现存在,提供声明事务、对DAO 层的支持等简单化开发功能。
- 方便多种等框架集成。
- SSM 集成框架指的就是基于SpringMVC + Spring + MyBatis 的技术框架,使用这个集成框架是是应用程序更加健壮、稳固、轻巧和优雅,这也是当前最流行的框架
4. Spring MVC 框架
- Spring MVC 是Spring 框架提供构建Web 应用程序的全功能MVC模块,融合Spring Web Flow ,是结构最清晰的MVC MOdel2 的实现,
- 拥有高度的可配置性,支持视图技术,定制架构模式。越来越应用互联应用的开发中。
5 MyBatis 框架
myBatis 是优秀的持久化层框架,在实体类和SQL 语句之间建立映射关系,是半自动化的ORM 实现,其封装要低于HIbernate,性能优越,并且小巧,简单易学,应用广发。
6.数据持久化是将内存中的数据模型转换为存储模型,以及储存模型转换为内存中的数据模型的统称。
7.数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。
Myabtis 作为持久化层框架:主要思想是将程序大量的SQL 语句玻离出来,配置在配置文件中。实现SQL的灵活性配置。SQL 与程序代码分离,可以不修改代码的情况下,直接在配置文件中修改SQL。
二 、什么是ORM
对象 / 关系映射 (Object /Relatetional Mapping ,ORM)是一种数据持久化技术。他在对象模型和关系性数据库之间建立对应关系。并且提供一种机制,通过JavaBean 对象 去操作数据库表中的数据。
建立Mybatis 项目 的步骤:
1. 下载mybatis-3.1.1.2.zip 包
2.部署jar 包
3.编写Mubats核心配置文件
4. 创建实体类
5.创键dao接口
6.创建Sql映射文件
7.编写测试类
| mybatis-3.5.4.jar | 核心包 |
| commons-logging-1.2.jar | 日志处理 |
| asm-7.1.jar | java字节码的类库 |
| cglib-3.3.0.jar | 动态集成Java类或实现接口 |
| javassist-3.26.0-GA.jar | 分析、编辑、创建Java字节码的类库 |
| log4j-1.2.17.jar | 日志系统 |
| log4j-api-2.13.0.jar | 日志系统的封装、对外提供统一的API接口 |
| slf4j-log4j12-1.7.30.jar | slf4j对log4j 想应驱动,完slf4绑定log4j |
| mysql-connector-java-5.1.7-bin.jar | 日志包 |
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> 3 <configuration> 4 5 <!--引入database.properties--> 6 <properties resource="dataSource.properties"/> 7 <!--配置myabtis 的log 实现为 LOG4J--> 8 <settings> 9 <setting name="loglmpl" value="LOG4J"/> 10 </settings> 11 <!-- 1.配置环境,默认的环境id为mysql --> 12 <environments default="mysql"> 13 <!-- 1.2.配置id为mysql的数据库环境 --> 14 <environment id="mysql"> 15 <!-- 使用JDBC的事务管理 --> 16 <transactionManager type="JDBC" /> 17 <!-- 配置数据库连接信息(数据库连接池) --> 18 <dataSource type="POOLED"> 19 <property name="driver" value="${driver}" /> 20 <property name="url" value="${url}" /> 21 <property name="username" value="${user}" /> 22 <property name="password" value="${password}" /> 23 </dataSource> 24 </environment> 25 </environments> 26 27 <!-- 2.配置Mapper的位置 去哪找SQL映射文件的路径 --> 28 <mappers> 29 <mapper resource="cn/smbums/dao/user/UserMapper/xml"/> 30 </mappers> 31 </configuration>
1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 <!-- namespace 表示命名空间 --> 5 <mapper namespace="cn.smbms.dao.user.UserMapper"> 6 <!-- SQL语句 --> 7 <!--查询用户表记录数 resulType SQL语句的返回值类型--> 8 <select id="count" resultType="int"> 9 select count( 1) as count from smbms_user 10 </select> 11 </mapper>
1 package com.itheima.test; 2 3 4 import com.itheima.po.Customer; 5 import org.apache.ibatis.io.Resources; 6 import org.apache.ibatis.session.SqlSession; 7 import org.apache.ibatis.session.SqlSessionFactory; 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 9 import org.junit.Test; 10 11 import java.io.IOException; 12 import java.io.InputStream; 13 import java.util.List; 14 15 /** 16 * 测试类 17 */ 18 public class MybatisTest { 19 20 21 /** 22 * 根据id 查询信息 23 * @throws IOException 24 */ 25 @Test 26 public void findCustomerByIdTest() throws Exception { 27 // 1.读取配置文件 28 String resource = "mybatis-config.xml"; 29 InputStream is = Resources.getResourceAsStream(resource); 30 // InputStream is = MybatisTest.class.getClassLoader().getaResourceAsStream(resource); 31 // 2.根据配置文集创建SqlSessionFactory sql 会话工厂对象 32 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is); 33 34 // 3.通过SQLSessionFactory 会话对象配置SQLSession对象 35 int count =0; 36 SqlSession sqlSession =null; 37 sqlSession = ssf.openSession(); 38 // 4.SQLSession执行映射文件提交SQL语句,并且返回映射结果 39 count = sqlSession.selectOne("cn.smbms.dao.user.UserMapper.count"); 40 logger.debug("UserMapperTest count--->"+count); 41 // 打印结果 42 System.out.println(customer.toString()); 43 // 5.关闭SQLSession 44 sqlSession.close(); 45 } 46 }
浙公网安备 33010602011771号