MyBatis使用接口映射的简单HelloWorld小例子

请先看,不使用接口映射的HelloWorld小例子

这次使用另外一种方法来进行增删改查。

首先修改EmployeeMapper.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">
<mapper namespace="com.mybatis.dao.EmployeeMapper">
    <!-- namespce:命名空间 id:用作唯一标识,与查询语句相对应 resultType:查询返回结果类型 id = #{id}:从传递过来的值中与其对应 -->

    <!-- Select -->
    <select id="getEmpById" resultType="com.mybatis.bean.Employee">
        select * from tbl_employee
        where id = #{id}
    </select>
    <select id="getEmpByName" resultType="com.mybatis.bean.Employee">
        select * from tbl_employee
        where lastName = #{lastName}
    </select>
    <select id="getEmpByNameAndSex" resultType="com.mybatis.bean.Employee">
        select * from tbl_employee
        where lastName = #{lastName} and sex=#{sex}
    </select>
    <!-- Add -->
    <insert id="addEmp" >
        insert into tbl_employee(lastName,sex,email)
        values(#{lastName},#{sex},#{email})
    </insert>
    <!-- Add With Id -->
    <insert id="addEmpWithId" >
        insert into tbl_employee(id,lastName,sex,email)
        values(#{id},#{lastName},#{sex},#{email})
    </insert>

    <!-- delete -->
    <delete id="deleteEmpById" >
    delete from tbl_employee where id=#{id}
    </delete>

    <update id="updateEmp" >
    update tbl_employee 
    set lastName=#{lastName},sex=#{sex},email=#{email}
    where id=#{id}
    </update>

</mapper>

创建一个与之对应的接口,接口中的方法需要与Mapper.xml文件中的sql语句ID对应。

package com.mybatis.dao;

import org.apache.ibatis.annotations.Param;

import com.mybatis.bean.Employee;

public interface EmployeeMapper {
    public Employee getEmpById(int id);
    public Employee getEmpByName(String lastName);
    //下面的查询语句有两个参数
    public Employee getEmpByNameAndSex(@Param("lastName")String lastName,@Param("sex")String sex);
    public void addEmp(Employee employee);
    public void addEmpWithId(Employee employee);
    public void deleteEmpById(int id);
    public void updateEmp(Employee employee);
}

编写测试类,

package com.mybatis.test;

import java.io.IOException;
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 com.mybatis.bean.Employee;
import com.mybatis.dao.EmployeeMapper;

public class Test {
    public static SqlSessionFactory getSqlSessionFactory() throws IOException{
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        return sqlSessionFactory;
    }

    //Test Add
    @org.junit.Test
    public void test01() throws IOException{
        SqlSession sqlSession=getSqlSessionFactory().openSession();
        Employee employee=new Employee(6,"New01", "男","New01@qq.com");
        try {
            EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
            mapper.addEmpWithId(employee);
            sqlSession.commit();
        } finally {
            sqlSession.close();
        }
    }

    //Test Update
    @org.junit.Test
    public void test02() throws IOException{
        SqlSession sqlSession=getSqlSessionFactory().openSession();
        Employee employee=new Employee(3,"GG", "男","GG@qq.com");
        try {
            EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
            mapper.updateEmp(employee);
            sqlSession.commit();
        } finally {
            sqlSession.close();
        }
    }

    //Test Delete
    @org.junit.Test
    public void test03() throws IOException{
        SqlSession sqlSession=getSqlSessionFactory().openSession();
        try {
            EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
            mapper.deleteEmpById(6);
            sqlSession.commit();
        } finally {
            sqlSession.close();
        }
    }

    //Test Select
    @org.junit.Test
    public void test04() throws IOException{
        SqlSession sqlSession=getSqlSessionFactory().openSession();
        try {
            EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
            //Employee employee=mapper.getEmpById(2);
            Employee employee=mapper.getEmpByNameAndSex("GG","男");
            sqlSession.commit();
            System.out.println(employee);
        } finally {
            sqlSession.close();
        }
    }
}

步骤:
1.获取SqlSessionFactory对象
2.使用SqlSessionFactory实例生成一个SqlSession实例
3.使用接口映射,将接口实例化,使用sqlSession的getMapper()方法.
EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
4.利用接口使用Mapper.xml文件中对应的Sql语句
mapper.deleteEmpById(6);
并提交,
sqlSession.commit();
5.最后关闭
sqlSession.close();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值