zoukankan      html  css  js  c++  java
  • MyBatis(四)映射文件 之 注解开发

    一、注解开发

      在面向接口开发中,我们可以在接口中声明方法,然后通用配置其对应的SQL映射文件来实现增删改查,当我们面对一些简单的SQL语句时,还有一种更简单的开发方式,那就是通过注解开发,省略掉SQL映射文件。

      使用注解开发:

    public interface EmployeeMapperAnnotation {
    
        @Select("select * from tbl_employee")
        public List<Employee> getEmps();
    
        @Select("select * from tbl_employee where id=#{id}")
        public Employee getEmpById(Integer id);
    
        @Insert("insert into tbl_employee(`last_name`, `email`, `gender`) values(#{lastName}, #{email}, #{gender})")
        public int addEmp(Employee emp);
    
        @Update("update tbl_employee set `last_name` = #{lastName}, `email` = #{email}, `gender` = #{gender} where id = #{id}")
        public int update(Employee emp);
    
        @Delete("delete from tbl_employee where id = #{id}")
        public int deleteEmp(Integer id);
    
    }

      测试:

         public SqlSessionFactory getsqlSessionFactory() throws IOException {
              String resource = "mybatis-config.xml";
              InputStream inputStream = Resources.getResourceAsStream(resource);
              SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
              return sqlSessionFactory;
         }
         /**
          * 注解方式
          * @throws IOException
          */
         @Test
         public void testAnnotation() throws IOException {
              //1、获取 sqlSessionFactory
              SqlSessionFactory sqlSessionFactory = getsqlSessionFactory();
    
              //2、获取 sqlSession 实例,能直接执行已经映射的 SQL 语句
              SqlSession sqlSession = sqlSessionFactory.openSession();
    
              try {
                   //3、获取接口的实现类对象
                   EmployeeMapperAnnotation mapper = sqlSession.getMapper(EmployeeMapperAnnotation.class);
    
                   List<Employee> emps = mapper.getEmps();
                   System.out.println("---查询列表信息---");
                   emps.forEach(System.out::println);
    
                   Employee emp = mapper.getEmpById(1);
                   System.out.println("---查询员工号为1的信息:---");
                   System.out.println(emp);
    
                   int i = mapper.addEmp(new Employee(null, "Tom", "1", "Tom@126.com"));
                   System.out.println("插入数据后结果为:" + i);
    
                   int j = mapper.update(new Employee(21, "Jerry", "0", "Jerry@126.com"));
                   System.out.println("更新数据后结果为:" + j);
    
                   mapper.deleteEmp(4);
    
                   sqlSession.commit();
    
              } finally {
                   sqlSession.close();
              }
         }

      对于简单的 SQL 语句,可以直接使用注解进行开发,也可以结合注解与配置文件一起使用,但还是建议使用配置文件的方式,这样可以防止硬编码,实现解耦。

  • 相关阅读:
    wpf arcgis engine 当前没有或未启用Spatial Analyst许可解决办法
    arcglobe 图层三大类说明
    sql自带函数语句
    wpf 前台获取资源文件路径问题
    Microsoft.Office.Interop.Excel的用法
    WPF:父窗口与子窗口的层次关系
    wpf 拖图片到窗体
    wpf comboBox取值问题
    wpf 窗体内容旋转效果 网摘
    js拖动滑块
  • 原文地址:https://www.cnblogs.com/niujifei/p/15238905.html
Copyright © 2011-2022 走看看