Mybatis是一个半自动化的ORM框架,首先我去百度了一下,得到如下解释,大家当扫盲吧。
MyBatis 本是
apache的一个开源项目
iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的
持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
开发前提:你的电脑已经安装Mysql和Eclipse开发工具。
根据我自己的实际开发经验,总结了以下几个步骤,方便开发者直奔主题。
3.0版本后从ibatis转变为mybatis
第一步:配置文件的编写
①添加config的dtd文件 在preference → xml → xml Catalog → Catalog Entry → URI key值里面填写config的路径
②在<configuration>里面配置 <enviroments default="development">
③在环境标签中 我们必须配置<transactionManager type="JDBC">与<dataSource type="POOLED">
④在<dataSource>标签里面我们配置 <propertity>,这里就是典型的数据源的四大参数driver url username password
第二步:实体类的编写
①按照需求写java的Pojo类
第三步:写实体类与数据库的映射文件
①尽量在同一个包下,进行映射文件的位置放置。建议命名:实体类名+Mapper
②添加mapper的dtd文件
③在<mapper>文件中直接可以写sql语句,标签如下:<insert> <select>
第四步:将映射文件添加到第一步的主配置文件中
①使用<mappers>标签,在里面<mappper resource="第三步中mapper文件的位置">标签
第五步:测试程序编写
①创建SqlSessionFactory
②通过SqlSessionFactory 创建 SQLSession
①添加config的dtd文件 在preference → xml → xml Catalog → Catalog Entry → URI key值里面填写config的路径
②在<configuration>里面配置 <enviroments default="development">
③在环境标签中 我们必须配置<transactionManager type="JDBC">与<dataSource type="POOLED">
④在<dataSource>标签里面我们配置 <propertity>,这里就是典型的数据源的四大参数driver url username password
第二步:实体类的编写
①按照需求写java的Pojo类
第三步:写实体类与数据库的映射文件
①尽量在同一个包下,进行映射文件的位置放置。建议命名:实体类名+Mapper
②添加mapper的dtd文件
③在<mapper>文件中直接可以写sql语句,标签如下:<insert> <select>
第四步:将映射文件添加到第一步的主配置文件中
①使用<mappers>标签,在里面<mappper resource="第三步中mapper文件的位置">标签
第五步:测试程序编写
①创建SqlSessionFactory
②通过SqlSessionFactory 创建 SQLSession
这里我提供一个测试的代码。
package com.zelininfo.mybatis.helloworld;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.zelininfo.mybatis.pojo.User;
public class HelloWorldTest {
private SqlSessionFactory sqlSessionFactory;
private SqlSession sqlSession;
@Before
public void init(){
try {
//1. 创建 SQLSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(Resources.getResourceAsReader("config.xml"));
//2. 创建 SQLSession
sqlSession = sqlSessionFactory.openSession();
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void destory(){
sqlSession.commit();
sqlSession.close();
}
@Test
public void testQueryUserById() {
User user = sqlSession.selectOne("com.zelininfo.mybatis.pojo.UserMappler.queryUserById", 1);
System.out.println(user);
}
@Test
public void testQueryAllUsers(){
List<User> users = sqlSession.selectList("com.zelininfo.mybatis.pojo.UserMappler.queryAllUsers");
System.out.println(users);
}
@Test
public void testSaveUser(){
User user = new User("Jerry", 22);
sqlSession.insert("com.zelininfo.mybatis.pojo.UserMappler.saveUser", user);
}
@Test
public void testUpdateUser(){
User user = sqlSession.selectOne("com.zelininfo.mybatis.pojo.UserMappler.queryUserById", 1);
user.setName("Toms");
user.setAge(23);
sqlSession.update("com.zelininfo.mybatis.pojo.UserMappler.updateUser", user);
}
@Test
public void testDeleteUser(){
sqlSession.delete("com.zelininfo.mybatis.pojo.UserMappler.deleteUser", 3);
}
}
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.zelininfo.mybatis.pojo.User;
public class HelloWorldTest {
private SqlSessionFactory sqlSessionFactory;
private SqlSession sqlSession;
@Before
public void init(){
try {
//1. 创建 SQLSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(Resources.getResourceAsReader("config.xml"));
//2. 创建 SQLSession
sqlSession = sqlSessionFactory.openSession();
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void destory(){
sqlSession.commit();
sqlSession.close();
}
@Test
public void testQueryUserById() {
User user = sqlSession.selectOne("com.zelininfo.mybatis.pojo.UserMappler.queryUserById", 1);
System.out.println(user);
}
@Test
public void testQueryAllUsers(){
List<User> users = sqlSession.selectList("com.zelininfo.mybatis.pojo.UserMappler.queryAllUsers");
System.out.println(users);
}
@Test
public void testSaveUser(){
User user = new User("Jerry", 22);
sqlSession.insert("com.zelininfo.mybatis.pojo.UserMappler.saveUser", user);
}
@Test
public void testUpdateUser(){
User user = sqlSession.selectOne("com.zelininfo.mybatis.pojo.UserMappler.queryUserById", 1);
user.setName("Toms");
user.setAge(23);
sqlSession.update("com.zelininfo.mybatis.pojo.UserMappler.updateUser", user);
}
@Test
public void testDeleteUser(){
sqlSession.delete("com.zelininfo.mybatis.pojo.UserMappler.deleteUser", 3);
}
}