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

来源:互联网 发布:手机防盗警报器软件 编辑:程序博客网 时间:2024/06/05 00:34

接口映射——————

主配置文件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);}}@Testpublic void insert(){SqlSession session = getSession();DeptMapper dm = session.getMapper(DeptMapper.class);dm.addDept();session.commit();}@Testpublic void  update(){SqlSession session = getSession();DeptMapper dm = session.getMapper(DeptMapper.class);dm.updateDept();session.commit();}@Testpublic 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);}}}












原创粉丝点击