• Mybatis使用接口开发


    项目结构

    Employee.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">
      <!-- 每个实体类都对应着Mybatis的一个命名空间。namespace属性值相当于id,不允许重复 -->
      <!-- 命名空间,一般情况下,在当前空间中声明的是,实体类对应全路径 -->
    
    
     <!-- <mapper namespace="com.mybatis.entity.Employee">
     --><!-- select标签执行查询   结果集类型(resultType)是实体类对象
        方法传入参数类型(parameterType)
        #{}相当于占位符,代表传过来的参数
        
        select的id和方法名称一致
    -->
    
     <mapper namespace="com.mybatis.dao.EmployeeDao">
        <select id="selAll" parameterType="String" resultType="com.mybatis.entity.Employee">
                select * from emp
        </select>
        
        <select id="selOne" parameterType="String" resultType="com.mybatis.entity.Employee">
        select * from emp where id = #{id}
      </select>
    
    </mapper> 

    EmployeeDao.java

    package com.mybatis.dao;
    
    import java.util.List;
    
    import com.mybatis.entity.Employee;
    
    
    
    public interface EmployeeDao{
        
        //查询所有  返回是集合 不需要传递参数
            public  List<Employee> selAll();
        //查询单一  返回是对象  需要传递参数
            public Employee selOne(String id);
        
    }

    TestImp.java

    package com.mybatis.test;
    
    import java.io.IOException;
    import java.io.Reader;
    import java.util.List;
    
    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.dao.EmployeeDao;
    import com.mybatis.entity.Employee;
    
    public class TestImp {
        
        
        public void wan(){
            //创建一个sqlSession
            Reader reader;
            try {
                
                String resource = "recourse.xml";
                reader = Resources.getResourceAsReader(resource);
                
                //创建SqlSessionFactory
                SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
                //通过数据库会话工厂开启跟数据库的一次会话    
                //true表示自动提交,否则需要使用commit方法才会提交,默认false方法
                SqlSession sqlSession = sqlSessionFactory.openSession(true);
                
                //创建接口对象,是sqlsession对象通过动态代理自动创建
                //反射对象
                EmployeeDao employeeDao = sqlSession.getMapper(EmployeeDao.class);
                System.out.println(employeeDao);
                
                
                //使用创建好的接口对象调用好的接口方法
                Employee emp = employeeDao.selOne("2");
                System.out.println(emp.getName());
                
                List<Employee> list =employeeDao.selAll();
                System.out.println(list.size());
                
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            
        }
    
        public static void main(String[] args) {
            TestImp testImp = new TestImp();
            testImp.wan();
    
        }
    
    }

    resourse.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
      PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
    <!-- 引入属性文件 -->
    <properties resource="dbconfig.properties"></properties>
    
      <environments default="development">
        <environment id="development"><!-- 开发者模式 -->
          <transactionManager type="JDBC"/><!-- 事务管理器 -->
          <dataSource type="POOLED"><!-- 数据源  池连接-->
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${username}"/>
            <property name="password" value="${password}"/>
          </dataSource>
        </environment>
      </environments>
      <!-- 对应实体类的配置文件 -->
      <mappers>
        <mapper resource="mappers/Employee.xml"/>
      </mappers>
    </configuration>

    其余文件见:初入Mybatis

     运行结果:

  • 相关阅读:
    Ckeditor 编辑器上传WPS图片失败问题
    vue3 部署开发环境
    docker 容器报Permission denied问题
    阿里云二级域名解析+Nginx 反向代理,整洁URL
    Linux下安装PostgreSQL
    使用docker 安装 gitlab + jenkins + sonarqube
    Linux下安装Docker
    PL/SQL
    Linux下挖矿病毒解决记录
    Dubbo学习笔记-泛化实现进行mock
  • 原文地址:https://www.cnblogs.com/liurg/p/8125987.html
Copyright © 2020-2023  润新知