Mybatis的接口映射、接口的注解映射和自定义传参

2023-03-28 13:08:32

接口映射——————

主配置文件mybatis.xml增加<mapper>标签:
  <mappers>
  	<mapper resource="cn/et/mybatis/lesson01/interfaceMapping/dept_mapper.xml" />
  </mappers>


mapper副配置文件:

<?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必需跟接口的全名一致
 -->
<mapper namespace="cn.et.mybatis.lesson01.interfaceMapping.DeptMapper">
	<!-- 
		select的id必须和接口的方法名一致
		resultType和接口返回值的泛型一致
		没有返回值就不写
	 -->
	<select id="selectDept" resultType="map">
	select * from dept
	</select>
	
	<update id="updateDept">
		update dept set dname='后勤部' where deptno=50
	</update>
	
	<insert id="addDept">
		insert into dept values(60,'生产部', '上海')
	</insert>
	
	<delete id="deleteDept">
		delete from dept where deptno=60
	</delete>
	
	
</mapper>




Mapper接口:

package cn.et.mybatis.lesson01.interfaceMapping;

import java.util.List;
import java.util.Map;

public interface DeptMapper {

	public List<Map> selectDept();
	
	public void updateDept();
	
	public void addDept();
	
	public void deleteDept();
	
}


测试类:

package cn.et.mybatis.lesson01.interfaceMapping;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

public class TestMybatis {
	
	public static SqlSession getSession(){
		String resource = "mybatis.xml";
		InputStream inputStream = cn.et.mybatis.lesson01.TestMybatis.class.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		//打开会话
		SqlSession session = sqlSessionFactory.openSession();
		
		return session;
	}

	public static void main(String[] args) {
		//打开会话
		SqlSession session = getSession();
		//通过动态代理  创建一个实现类 自动调用配置文件
		DeptMapper dm = session.getMapper(DeptMapper.class);
		
		List<Map> list = dm.selectDept();
		
		for (Map map : list) {
			System.out.println(map);
		}
	}
	
	@Test
	public void insert(){
		SqlSession session = getSession();
		DeptMapper dm = session.getMapper(DeptMapper.class);
		
		dm.addDept();
		session.commit();
	}
	
	@Test
	public void  update(){
		SqlSession session = getSession();
		DeptMapper dm = session.getMapper(DeptMapper.class);
		
		dm.updateDept();
		session.commit();
	}
	
	@Test
	public void  delete(){
		SqlSession session = getSession();
		DeptMapper dm = session.getMapper(DeptMapper.class);
		
		dm.deleteDept();
		session.commit();
	}
	
}



接口的注解映射——————————

mybatis.xml:

 <mappers>
  	<mapper class="cn.et.mybatis.lesson01.annotationMapper.EmpMapper"/>
  </mappers>


EmpMapper接口:

package cn.et.mybatis.lesson01.annotationMapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Select;

public interface EmpMapper {

	@Select(value="select * from emp")
	public List<Map> selectEmp();
	
	
}


测试类:

package cn.et.mybatis.lesson01.annotationMapper;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

public class TestMybatis {
	
	public static SqlSession getSession(){
		String resource = "mybatis.xml";
		InputStream inputStream = cn.et.mybatis.lesson01.TestMybatis.class.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		//打开会话
		SqlSession session = sqlSessionFactory.openSession();
		
		return session;
	}

	public static void main(String[] args) {
		//打开会话
		SqlSession session = getSession();
		//通过动态代理  创建一个实现类 自动调用配置文件
		EmpMapper dm = session.getMapper(EmpMapper.class);
		
		List<Map> list = dm.selectEmp();
		System.out.println(list.size());
	}
	
	
}




自定义传参————————


config主配置文件mybatis.xml:

  <mappers>
  	<mapper resource="cn/et/mybatis/lesson01/param/money_mapper.xml" />
  </mappers>





mapper副配置文件:

<?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必需跟接口的全名一致
 -->
<mapper namespace="cn.et.mybatis.lesson01.param.MoneyMapper">
	<!-- 
		select的id必须和接口的方法名一致
		resultType和接口返回值的泛型一致
		没有返回值就不写
		
		#{}语法格式是(实际上是使用jdbc的?点位符传参是安全的 )
			第一种#{0}
			第二种#{param1}
			第三种指定别名#{}
			
		${}是字符串拼接,拼接字符串的话要添加''   是不安全的
	 -->
	<select id="selectMoney" resultType="java.util.Map">
		select * from money where name=#{name}
	</select>
	
</mapper>


Mapper接口:

package cn.et.mybatis.lesson01.param;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface MoneyMapper {

	public List<Map> selectMoney(@Param("name")String name);
	
}


测试类:

package cn.et.mybatis.lesson01.param;

import java.io.InputStream;
import java.util.List;

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

public class TestMybatis {
	
	public static SqlSession getSession(){
		String resource = "mybatis.xml";
		InputStream inputStream = cn.et.mybatis.lesson01.TestMybatis.class.getResourceAsStream(resource);
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		//打开会话
		SqlSession session = sqlSessionFactory.openSession();
		
		return session;
	}

	public static void main(String[] args) {
		//打开会话
		SqlSession session = getSession();
		//通过动态代理  创建一个实现类 自动调用配置文件
		MoneyMapper dm = session.getMapper(MoneyMapper.class);
		
		List list = dm.selectMoney("zs");
		
		for (Object object : list) {
			System.out.println(object);
		}
	}
	
	
}
  • 作者:Sesshoumaru华
  • 原文链接:https://blog.csdn.net/qq_38921377/article/details/72972028
    更新时间:2023-03-28 13:08:32