使用MyBatis写一个增删改查的操作

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

对数据库进行增删改查我们一开始使用JDBC使用原始的方法我们要写大量的代码。后来我们了解了框架例如:hibernate虽然我们可以减少对数据的操作,但是当我们遇到复杂的数据操作的时候这个时候我们就要去了解hql。还是没有明确的解决我们对数据的操作。

但是MyBatis 可以帮我们跟好的进行对数据的操作。话不多说我们直接上代码掩饰:

项目的整体架构:

使用MyBatis写一个增删改查的操作_第1张图片

我们现在没有页面只能利用测试类进行掩饰:

我们要创建一个mybatis-config.xml文件:






    
  
  
  
    
      
      
        
        
        
        
      
    
  
  
    
  
MemberMapper.xml:






  
    
        insert into Member(username,userpwd) values(#{username},#{userpwd})
    
  



    
       
        update Member set username=#{username},userpwd=#{userpwd} where uid=#{uid}   
      
    
      
  

实体类Member.java:

public class Member {
	private Integer uid;
	private String username;
	private String userpwd;
	
	public Integer getUid() {
		return uid;
	}
	public void setUid(Integer uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getUserpwd() {
		return userpwd;
	}
	public void setUserpwd(String userpwd) {
		this.userpwd = userpwd;
	}
	@Override
	public String toString() {
		return "Member [uid=" + uid + ", username=" + username + ", userpwd=" + userpwd + "]";
	}

}

我们创建一个接口,这个接口不用我们去继承,MemberMapper.java:

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;

import com.hp.bean.Member;

public interface MemberMapper {
	//使用注解的方式
	@Select(" select * from Member where uid = #{uid}")
	public Member selectMember(int uid);
	
	public void addMember(Member member);
	//使用注解的方式
	@Delete("delete from Member where uid=#{uid}")
    public void deleteByUid(Member member);  
    
    public void updateMember(Member member); 
      
    public List getAllMember();  

}
测试类:MyBatis.java;测试我使用的是JUnit测试的:
import java.io.IOException;
import java.io.InputStream;
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.Test;

import com.hp.member.MemberMapper;

public class MyBatis {

	@Test //查询单个方法1
	public void test() {
		//1.加载资源
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		SqlSessionFactory sqlSessionFactory = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//2.创建session工厂
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//3.获取session
		SqlSession session = sqlSessionFactory.openSession();
		
		//4.执行sql
		Member member = session.selectOne("com.hp.member.MemberMapper.selectMember",2);
		System.out.println(member);
		
		//5.关闭session
		session.close();
	}

	@Test //查询单个方法2
	public void test1() {
		//1.加载资源
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		SqlSessionFactory sqlSessionFactory = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//2.创建session工厂
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//3.获取session
		SqlSession session = sqlSessionFactory.openSession();
		
		//4.执行sql
		MemberMapper memberMapper = session.getMapper(MemberMapper.class);
		Member member = memberMapper.selectMember(2);
		System.out.println(member);
		
		//5.关闭session
		session.close();
	}
	
	@Test  //添加
	public void add() {
		//1.加载资源
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		SqlSessionFactory sqlSessionFactory = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//2.创建session工厂
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//3.获取session
		SqlSession session = sqlSessionFactory.openSession();
		
		//4.执行sql
		MemberMapper memberMapper = session.getMapper(MemberMapper.class);
		Member member = new Member();
		member.setUsername("wa222eawu");
		member.setUserpwd("222qq11");
		memberMapper.addMember(member);
	    System.out.println(memberMapper);  
		//5.关闭session
	    session.commit();
		session.close();
	}
	
	@Test  //删除
	public void delete() {
		//1.加载资源
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		SqlSessionFactory sqlSessionFactory = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//2.创建session工厂
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//3.获取session
		SqlSession session = sqlSessionFactory.openSession();
		
		//4.执行sql
		MemberMapper memberMapper = session.getMapper(MemberMapper.class);
		Member member = new Member();
		member.setUid(12);
		memberMapper.deleteByUid(member);
		//5.关闭session
	    session.commit();
		session.close();
		
	}
	
	@Test  //更新
	public void update() {
		//1.加载资源
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		SqlSessionFactory sqlSessionFactory = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//2.创建session工厂
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//3.获取session
		SqlSession session = sqlSessionFactory.openSession();
		
		//4.执行sql
		MemberMapper memberMapper = session.getMapper(MemberMapper.class);
		Member member = new Member();
		member.setUid(2);
		member.setUsername("niuhiu");
		member.setUserpwd("dwedesf");
		memberMapper.updateMember(member);
		//5.关闭session
	    session.commit();
		session.close();
		
	}
	
	@Test //查询所有
	public void getAll() {
		//1.加载资源
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		SqlSessionFactory sqlSessionFactory = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		//2.创建session工厂
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		//3.获取session
		SqlSession session = sqlSessionFactory.openSession();
		
		//4.执行sql
		MemberMapper memberMapper = session.getMapper(MemberMapper.class);
		List listmember = memberMapper.getAllMember();
		System.out.println(listmember);
		//5.关闭session
	    session.commit();
		session.close();
		
		
	}
	

}

 使用log4j进行打印的  log4j.properties:

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.hp.member.MemberMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n






你可能感兴趣的:(使用MyBatis写一个增删改查的操作)