mybatis学习-入门(1)-单独使用mybatis


mybatis的作用就不提了。

先写一个例子来说明mybatis的使用方法。

        要加载一些相关的依赖包。mybatis的相对比较简单,就只有Mybatis-3.1.1.jar ,当然还有这个包依赖的一些jar(从mybatis网站下载的zip中包括)

要让mybatis正常启动并能够起作用,首先我们需要一个 SqlSessionFactoryBuilder,这个类再调用.build(reader) 方法去创建一个SqlSessionFactory 类;

  --> SqlSessionFactory类再通过 .openSession() 方法去创建一个SqlSession

        -->SqlSession 就可以通过 .getMapper(Class<?> arg0) 来创建一个对应的mapper类了

             -->有了这个mapper类,后续的操作都通过mapper类完成

        

         告一段落,这里会有几个疑问:

         a SqlSessionFactoryBuilder 在创建SqlSessionFactory的时候,需要知道一些信息。比如数据源、mapper

        

 (1)实体类

         可以跟数据库结构完全一样,也可以有不同。比如我有一个user、 role、 user_role三个表,的user实体类可以完全对应user表,也可以添加一个 List属性,表示该user对象的role列表,或者添加一个login_time属性记录登录时间等等。

         本例中user类与user表完全一致。

package example1.model;

public class baiuser {
	
	private Long ID;
	private String USERNAME;
	private String PASSWORD;
	private Integer STATUS;
	private String DESCN;
     然后是一堆get set方法......


(2)mapper

         有了实体对象,我们还需要有对实体对象到数据库的操作相关的方法,这就需要使用mapper类。

         maybatis中,使用接口+mapper文件的方式进行处理(先不管mybatis怎么实现的,目前仅记住是这样配置就好)。

         首先我们定义一个dao的接口

package example1.dao;
import example1.model.baiuser;

public interface baiuserMapper {
	int delete(Long ID);
	int insert(baiuser record);
	baiuser select(Long ID);
	int update(baiuser record);
	baiuser selectByUsername(String username);
}


        然后编写一个mapper文件:





  
    
    
    
    
    
  
  
  
    ID, USERNAME, PASSWORD, STATUS, DESCN
  
  
  
下面还有多个方法映射,与接口中定义的方法一致

        这样mybatis会根据配置,自动完成该接口的实现类。

        这里有几个要点:

        a    

        namespace 要与接口对应

        b   insert 或者update语句其输入参数要有

  


 (3)mybatis-config.xml

文件名字没有默认的,里面的内容大体如下:




	
	
		
		
	
	 
	
	
		
			
			
				
				
				
				
			
		
	
	
	
	
		
		
   

           里面有别名配置、数据源、mapper配置。我们经常会将mybatis与spring整合在一起使用,那么mapper、数据源就可以在spring的配置文件中配置了,具体说来就是mybatis的SqlSessionFactory由spring容器进行创建,因此其需要的mapper与数据源作为其参数 。

 

好了,我们这个例子是不依赖于spring框架的,因此我们肯定要自己创建SqlSessionFactory和SqlSession等等。那么我们使用junit来创建一个测试类

package example1.test;

import org.junit.Test;
import org.junit.Before;
import java.io.IOException;
import java.io.Reader;
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 example1.dao.baiuserMapper;
import example1.model.baiuser;

public class baiuserTest {

    
    private static SqlSessionFactoryBuilder sqlSessionFactoryBuilder;
    private static SqlSessionFactory sqlSessionFactory;
	
	@Before
	public void before(){
        String resource = "example1/conf/mybatis-config.xml";
        Reader reader;
		try {
			reader = Resources.getResourceAsReader(resource);
	        sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
	        sqlSessionFactory = sqlSessionFactoryBuilder.build(reader);
		} catch (IOException e) {
			e.printStackTrace();
		}		
	}
	
	@Test
	public void test(){
        SqlSession  session = sqlSessionFactory.openSession();
        baiuserMapper userDao = session.getMapper(baiuserMapper.class);       
        baiuser user = userDao.select(1L);
  	    System.out.println("user name is :  "+user.getUSERNAME()+"  password is : "+user.getPASSWORD());	
	}

}


 

 例子源码在:


http://download.csdn.net/detail/u013269938/7247525


 

  



 

 

 

 

 

 

 

 

 

 

        


 

 

         

 

 

        

你可能感兴趣的:(mybatis)