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

来源:互联网 发布:mac系统修复软件 编辑:程序博客网 时间:2024/06/14 01:38

接口映射——————

主配置文件mybatis.xml增加<mapper>标签:

[html] view plain copy
  1. <mappers>  
  2.     <mapper resource="cn/et/mybatis/lesson01/interfaceMapping/dept_mapper.xml" />  
  3. </mappers>  


mapper副配置文件:

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper  
  3.   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  4.   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  5.     
  6. <!--   
  7.     接口映射  
  8.     namespace必需跟接口的全名一致  
  9.  -->  
  10. <mapper namespace="cn.et.mybatis.lesson01.interfaceMapping.DeptMapper">  
  11.     <!--   
  12.         select的id必须和接口的方法名一致  
  13.         resultType和接口返回值的泛型一致  
  14.         没有返回值就不写  
  15.      -->  
  16.     <select id="selectDept" resultType="map">  
  17.     select * from dept  
  18.     </select>  
  19.       
  20.     <update id="updateDept">  
  21.         update dept set dname='后勤部' where deptno=50  
  22.     </update>  
  23.       
  24.     <insert id="addDept">  
  25.         insert into dept values(60,'生产部', '上海')  
  26.     </insert>  
  27.       
  28.     <delete id="deleteDept">  
  29.         delete from dept where deptno=60  
  30.     </delete>  
  31.       
  32.       
  33. </mapper>  




Mapper接口:

[java] view plain copy
  1. package cn.et.mybatis.lesson01.interfaceMapping;  
  2.   
  3. import java.util.List;  
  4. import java.util.Map;  
  5.   
  6. public interface DeptMapper {  
  7.   
  8.     public List<Map> selectDept();  
  9.       
  10.     public void updateDept();  
  11.       
  12.     public void addDept();  
  13.       
  14.     public void deleteDept();  
  15.       
  16. }  


测试类:

[java] view plain copy
  1. package cn.et.mybatis.lesson01.interfaceMapping;  
  2.   
  3. import java.io.InputStream;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6.   
  7. import org.apache.ibatis.session.SqlSession;  
  8. import org.apache.ibatis.session.SqlSessionFactory;  
  9. import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  10. import org.junit.Test;  
  11.   
  12. public class TestMybatis {  
  13.       
  14.     public static SqlSession getSession(){  
  15.         String resource = "mybatis.xml";  
  16.         InputStream inputStream = cn.et.mybatis.lesson01.TestMybatis.class.getResourceAsStream(resource);  
  17.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);  
  18.         //打开会话  
  19.         SqlSession session = sqlSessionFactory.openSession();  
  20.           
  21.         return session;  
  22.     }  
  23.   
  24.     public static void main(String[] args) {  
  25.         //打开会话  
  26.         SqlSession session = getSession();  
  27.         //通过动态代理  创建一个实现类 自动调用配置文件  
  28.         DeptMapper dm = session.getMapper(DeptMapper.class);  
  29.           
  30.         List<Map> list = dm.selectDept();  
  31.           
  32.         for (Map map : list) {  
  33.             System.out.println(map);  
  34.         }  
  35.     }  
  36.       
  37.     @Test  
  38.     public void insert(){  
  39.         SqlSession session = getSession();  
  40.         DeptMapper dm = session.getMapper(DeptMapper.class);  
  41.           
  42.         dm.addDept();  
  43.         session.commit();  
  44.     }  
  45.       
  46.     @Test  
  47.     public void  update(){  
  48.         SqlSession session = getSession();  
  49.         DeptMapper dm = session.getMapper(DeptMapper.class);  
  50.           
  51.         dm.updateDept();  
  52.         session.commit();  
  53.     }  
  54.       
  55.     @Test  
  56.     public void  delete(){  
  57.         SqlSession session = getSession();  
  58.         DeptMapper dm = session.getMapper(DeptMapper.class);  
  59.           
  60.         dm.deleteDept();  
  61.         session.commit();  
  62.     }  
  63.       
  64. }  



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

mybatis.xml:

[html] view plain copy
  1. <mappers>  
  2.     <mapper class="cn.et.mybatis.lesson01.annotationMapper.EmpMapper"/>  
  3.  </mappers>  


EmpMapper接口:

[java] view plain copy
  1. package cn.et.mybatis.lesson01.annotationMapper;  
  2.   
  3. import java.util.List;  
  4. import java.util.Map;  
  5.   
  6. import org.apache.ibatis.annotations.Select;  
  7.   
  8. public interface EmpMapper {  
  9.   
  10.     @Select(value="select * from emp")  
  11.     public List<Map> selectEmp();  
  12.       
  13.       
  14. }  


测试类:

[java] view plain copy
  1. package cn.et.mybatis.lesson01.annotationMapper;  
  2.   
  3. import java.io.InputStream;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6.   
  7. import org.apache.ibatis.session.SqlSession;  
  8. import org.apache.ibatis.session.SqlSessionFactory;  
  9. import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  10. import org.junit.Test;  
  11.   
  12. public class TestMybatis {  
  13.       
  14.     public static SqlSession getSession(){  
  15.         String resource = "mybatis.xml";  
  16.         InputStream inputStream = cn.et.mybatis.lesson01.TestMybatis.class.getResourceAsStream(resource);  
  17.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);  
  18.         //打开会话  
  19.         SqlSession session = sqlSessionFactory.openSession();  
  20.           
  21.         return session;  
  22.     }  
  23.   
  24.     public static void main(String[] args) {  
  25.         //打开会话  
  26.         SqlSession session = getSession();  
  27.         //通过动态代理  创建一个实现类 自动调用配置文件  
  28.         EmpMapper dm = session.getMapper(EmpMapper.class);  
  29.           
  30.         List<Map> list = dm.selectEmp();  
  31.         System.out.println(list.size());  
  32.     }  
  33.       
  34.       
  35. }  




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


config主配置文件mybatis.xml:

[html] view plain copy
  1. <mappers>  
  2.     <mapper resource="cn/et/mybatis/lesson01/param/money_mapper.xml" />  
  3. </mappers>  





mapper副配置文件:

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper  
  3.   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  4.   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  5.     
  6. <!--   
  7.     接口映射  
  8.     namespace必需跟接口的全名一致  
  9.  -->  
  10. <mapper namespace="cn.et.mybatis.lesson01.param.MoneyMapper">  
  11.     <!--   
  12.         select的id必须和接口的方法名一致  
  13.         resultType和接口返回值的泛型一致  
  14.         没有返回值就不写  
  15.           
  16.         #{}语法格式是(实际上是使用jdbc的?点位符传参是安全的 )  
  17.             第一种#{0}  
  18.             第二种#{param1}  
  19.             第三种指定别名#{}  
  20.               
  21.         ${}是字符串拼接,拼接字符串的话要添加''   是不安全的  
  22.      -->  
  23.     <select id="selectMoney" resultType="java.util.Map">  
  24.         select * from money where name=#{name}  
  25.     </select>  
  26.       
  27. </mapper>  


Mapper接口:

[java] view plain copy
  1. package cn.et.mybatis.lesson01.param;  
  2.   
  3. import java.util.List;  
  4. import java.util.Map;  
  5.   
  6. import org.apache.ibatis.annotations.Param;  
  7.   
  8. public interface MoneyMapper {  
  9.   
  10.     public List<Map> selectMoney(@Param("name")String name);  
  11.       
  12. }  


测试类:

[java] view plain copy
  1. package cn.et.mybatis.lesson01.param;  
  2.   
  3. import java.io.InputStream;  
  4. import java.util.List;  
  5.   
  6. import org.apache.ibatis.session.SqlSession;  
  7. import org.apache.ibatis.session.SqlSessionFactory;  
  8. import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  9.   
  10. public class TestMybatis {  
  11.       
  12.     public static SqlSession getSession(){  
  13.         String resource = "mybatis.xml";  
  14.         InputStream inputStream = cn.et.mybatis.lesson01.TestMybatis.class.getResourceAsStream(resource);  
  15.         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);  
  16.         //打开会话  
  17.         SqlSession session = sqlSessionFactory.openSession();  
  18.           
  19.         return session;  
  20.     }  
  21.   
  22.     public static void main(String[] args) {  
  23.         //打开会话  
  24.         SqlSession session = getSession();  
  25.         //通过动态代理  创建一个实现类 自动调用配置文件  
  26.         MoneyMapper dm = session.getMapper(MoneyMapper.class);  
  27.           
  28.         List list = dm.selectMoney("zs");  
  29.           
  30.         for (Object object : list) {  
  31.             System.out.println(object);  
  32.         }  
  33.     }  
  34.       
  35.       
  36. }  
原创粉丝点击