接口映射——————
主配置文件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);
- }
- }
- }