Mybatis的Mapper代理开发----------Mybatis学习笔记(六)

2018-4-24   17:10  Tuesday  

今天记录一下mybatis的第二种开发方式:

                           Mapper代理开发:

第一步:在src下新建一个package,命名为com.kh.Mapper

第二步:将CategoryDao.java和Category.xml复制一份放在com.kh.mapper中,并改名为:CategoryMapper.java和CategoryMapper.xml

          

我们还需要编写mapper.xml映射文件


我们需要编写mapper接口(相当于Dao接口),还需要遵守一些开发规范,mybatis可以自动生成mapper接口实现类 代理对象

   开发规范:

1.在mapper.xml中namespace等于mapper接口的地址.   这里的"/"和"."可以互换


2.mapper.java接口中的方法名和mapper.xml中的statement的id保持一致;

 


3.mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致

4.mapper.java接口中的方法输出参数类型和mapper.xml中statement的resultType指定的类型一致


以上开发规范只要是对下边的代码进行统一的生成:

  Category cg=sqlSession.selectOne("FindById"id);

   sqlSession.Insert("InsertCategory",cg);

-------------------------------------------------测试代码---------------------------------------

package com.kh.MapperTest;

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;
import org.junit.Before;
import org.junit.Test;
import com.kh.mapper.CategoryMapper;
import com.kh.pojo.Category;

public class MapperTest {

	private SqlSessionFactory sqlSessionFactory;
	public void setUp() throws Exception {
		//创建SqlSessionFactory	
		//mybatis配置文件
		String resource="mybatis-config.xml";
		//得到配置文件流
		InputStream inputStream=Resources.getResourceAsStream(resource);
		//创建会话工厂,传入mybatis的配置文件信息
		sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
	}
//-----------------略略略-----分隔符---------------------------------------
	public void test() throws Exception {
		SqlSession sqlSession= sqlSessionFactory.openSession();
		//创建CategoryMapper对象,mybatis自动生成mapper代理对象   
                CategoryMapper cgMapper=sqlSession.getMapper(CategoryMapper.class);
		//调用CategoryMapper的方法
		Category cg=cgMapper.FindById(1);
		System.out.println(cg);
		sqlSession.close();
	}
	public static void main(String[] args) throws Exception {
		MapperTest test=new MapperTest();
		test.setUp();
		test.test();
	}

}

Categorymapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
   
      <!-- 这里的namespace对应到他的xxxmapper.java -->
    <mapper namespace="com.kh.mapper.CategoryMapper">

        <select id="FindById" parameterType="int" resultType="Category"> 
            select * from   category_  where id=#{id}  
        </select>


        <insert id="InsertCategory" parameterType="Category">
        	insert into category_(name) values(#{name})
   
        </insert>
   
        <update id="UpdateById" parameterType="Category">
         		update category_ set name=#{name} where id=#{id}
        </update>
    
         <delete id="DeleteById" parameterType="int" >
         	delete from category_ where id=#{id}
         </delete>
      
    </mapper>


CategoryMapper.java

package com.kh.mapper;

import com.kh.pojo.Category;

/*
 * Title:CategoryMapper
 * Description:Mapper接口
 * Date:2018-4-23 17:41
 */
public interface CategoryMapper {//接口需要实现类实现
	//根据id查询
	public Category FindById(int id) throws Exception;
	//添加
	public Category InsertCategory(Category cg) throws Exception;
	//根据id删除
	public void DeleteById(int id) throws Exception;
}


猜你喜欢

转载自blog.csdn.net/qq_40959340/article/details/80067434