MyBatis框架实现简单增删改查

MyBtatis 是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架
MyBatis 使用简单的XML或注解用于配置和原始映射,将接口和JAVA的P0J0s(普通的Java对象),映射成数据库中 的记录。
这个框架操作的是Dao层,方便我们访问数据库,
1.加载配置 2. SQL解析 3. SQl执行 4.结果映射
导包 以及创建配置
MyBatis框架实现简单增删改查_第1张图片
然后是在数据库中建表,创建自己需要的表格以及实体类,配置这个xml文件和数据库建立连接,将文件放在src下



	 
		
		
		
		
	
	
		
		
		
		
	
	
		
			
			
				
				
				
				
			
		
	
	
		
		
	



编写实体类和dao接口,
package com.jredu.dao;

import java.util.List;

import com.jredu.entity.Address;

public interface AddressDao {
	
	
	int insert(Address address);
	
	int delete(int id);
	
	int update(Address address);
	
	Address select(int id);
	
	List
selectAll(); }
配置映射文件,放在dao层下




	
	
		insert into address values(address_seq.nextval,#{province},#{city},#{area})
	
	
		delete from address where id=#{id}
	
	
		update address set province=#{province},city=#{city},area=#{area} where id=#{id}
	
	
	
 

然后就是编写测试类
测试类有三种不同的写法
第一种最为复杂
public static void main(String[] args) {
		// TODO Auto-generated method stub
		//配置信息地址
		String resource="mybatis-config.xml";
		//定义一个输入流
		InputStream is=null;
		//从配置文件当中读取信息
		is=Test.class.getClassLoader().getResourceAsStream(resource);
		//创建一个sql对象工厂
		SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
		//得到所有的sql对象
		SqlSession sqlSession=factory.openSession();
		//通过sqlsesion得到对象(通过getMapper方法把对应的映射文件转成具体实现)
		UserDao userDao=sqlSession.getMapper(AdressDao.class);
		//具体实现参考方法二
	}
方法二 是将方法先封装好了,在拿出来使用,比较方便
package com.jredu.util;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**
 * sqlsesion对象工具类
 * @author Administrator
 *
 */
public class SqlSessionFactoryUtil {

	private static SqlSessionFactory factory;
	//文件名
	private final static String resource="mybatis-config.xml";
	
	private static SqlSessionFactory getFactory() {
		if(factory==null) {
			InputStream is=null;
			try {
				is=Resources.getResourceAsStream(resource);
				factory=new SqlSessionFactoryBuilder().build(is);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally{
				try {
					is.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return factory;
	}
	/**
	 * 得到sqlsession对象
	 * @return
	 */
	public static SqlSession openSession() {
		return getFactory().openSession();
	}
}
具体实现
package com.jredu.test;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.jredu.dao.AddressDao;
import com.jredu.entity.Address;
import com.jredu.util.SqlSessionFactoryUtil;

public class TestAdress {
	
	public static void main(String[] args) {
		SqlSession session=SqlSessionFactoryUtil.openSession();
		AddressDao dao=session.getMapper(AddressDao.class);
//		Address a=new Address();
//		a.setProvince("山东");
//		a.setCity("烟台");
//		a.setArea("zhifu");
//		int code=dao.insert(a);
//		if(code>0){
//			session.commit();
//			System.out.println("添加成功!");
//		}
//		int code=dao.delete(2);
//		if(code>0){
//			session.commit();
//			System.out.println("删除成功");
//		}
//		Address a=new Address();
//		a.setProvince("山东");
//		a.setCity("烟台");
//		a.setArea("莱山");
//		a.setId(3);
//		int code=dao.update(a);
//		if(code>0){
//			session.commit();
//			System.out.println("更新成功");
//		}
//		Address a=new Address();
//		a=dao.select(5);
//		System.out.println(a);
		List
list =dao.selectAll(); System.out.println(list); } }

方法三 是用到了lig4j,编写日志,犹豫篇幅问题,放在下一篇 博客。本篇博客只是简单抛出一个例子。需要继续了解MyBatis框架http://blog.csdn.net/zhaolimulin













你可能感兴趣的:(Mybatis,Java)