Mybatils框架(一)

2014-11-24 09:12:28 · 作者: · 浏览: 0
Mybatils框架
1.什么是Mybatis
Mybatis是对JDBC的封装,它隐藏了具体的JDBC的API,它把SQL语句放到了配置文件中,它能自动把不同的输入数据映射到SQL语句的动态参数上,它能自动把SQL语句的执行结果映射为JAVA对象…… MyBatis是一个持久化层的框架!
Mybatis是一个ORM框架
可以说Mybatis是一个半自动的ORM框架,Hibernate是全自动的
2.

配置文件(SqlMapConfig.xml)
基本作用就是配置JDBC连接的有关信息,比如URL、用户名、密码等等
如:
< xml version="1.0" encoding="UTF-8" >
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">




















映射文件

基本作用就是编写SQL语句,同时给每个SQL语句定义一个唯一标识(ID),在程序中通过此ID来调用这条SQL语句。

< xml version="1.0" encoding="UTF-8" >
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


insert into t_admin (username,password) values (#{username},#{password})



程序代码

//创建SqlSession的工厂!
SqlSessionFactory factory = null;
try {
//通过配置文件,创建工厂对象
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
factory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e1) {
e1.printStackTrace();
}

//打开一个session
SqlSession session = factory.openSession();

try {
//插入
session.insert("cn.com.leadfar.cms.backend.model.Admin.add", admin);

//提交事务
session.commit();

} catch (Exception e) {
e.printStackTrace();
session.rollback();
} finally{
//关闭session
session.close();
}

3.两种xml文件的配置
(1)
< xml version="1.0" encoding="UTF-8" >
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">



insert into t_user (id,name,age,birthday,money)values(seq_user_id.nextval,#{name},#{age} ,#{birthday} ,#{money})


update t_user set name=#{name},age=#{age},birthday=#{birthday},money=#{money} where id=#{id}


delete t_user where id=#{id}



(2)
< xml version="1.0" encoding="UTF-8" >
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">











OracleDriver" />











(3)dao层
package org.leadfar;
import java.io.IOException;
import java.io.Reader;
import java.util.Date;
import junit.framework.TestCase;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class StudentDaoTest extends TestCase {
private SqlSessionFactory factory ;
@Override
protected void setUp() throws Exception {
Reader reader = null;
try {
reader = Resources.getResourceAsReader("Mybatils.xml");
factory =new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("读取Mybatils.xml文件失败");
}
}
public void testSave() {
SqlSessionFactory factory = null;
Reader reader = null;
try {
reader = Resources.getResourceAsReader("Mybatils.xml");
factory =new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
/