• 金仓数据库KingbaseES客户端编程开发框架-MyBatis-Plus(2. 概述 3. MyBatis-Plus配置说明 )


    2. 概述

    MyBatis-Plus 是一个 Mybatis 的增强工具,在 Mybatis的基础上只做增强不做修改。

    在本章中详细说明了 KingbaseES 对 MyBatis-Plus的支持情况,以及使用时应该注意的问题。

    3. MyBatis-Plus配置说明

    Mybatis-Plus的jar包可以从官方网站下载,Mybatis-Plus所使用的JDBC包kingbase8-8.6.0.jar位于$KINGBASE_HOME/Interface/jdbc目录下。使用时将Mybatis-Plus包和JDBC包导入到项目的Libraries中并定义相关配置项即可。

    定义Mybatis-Plus配置文件,根据用户选择,更改一下配置文件。以SpringMVC工程整合Mybatis-Plus3.x为例:

    1. 配置spring配置文件

    配置MapperScan

    
        
        
    
    

    调整SqlSessionFactory为Mybatis-Plus的SqlSessionFactory:

    
        
        
        
            
                
                
                    
                
            
        
    
    
    1. 配置实体类:

    @TableName(value = "tb_employee") /* 指定表名 */
    public class Employee {
        /*  value与数据库主键列名一致,若实体类属性名与表主键列名一致可省略value */
        @TableId(value = "id", type = IdType.AUTO) /* 指定自增策略 */
        private Integer id;
        /*  若没有开启驼峰命名,或者表中列名不符合驼峰规则,可通过该注解 */
        /*  指定数据库表中的列名,exist标明数据表中有没有对应列 */
        @TableField(value = "last_name", exist = true)
        private String lastName;
        private String email;
        private boolean gender;
        private Integer age;
        private Date date;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getLastName() {
            return lastName;
        }
    
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public boolean isGender() {
            return gender;
        }
    
        public void setGender(boolean gender) {
            this.gender = gender;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public Date getDate() {
            return date;
        }
    
        public void setDate(Date date) {
            this.date = date;
        }
    
        @Override
        public String toString() {
            return "Employee [id=" + id + ", lastName=" + lastName + ",
            email=" + email + ", gender=" + gender +", age=" + age + ",
            date=" + date + "]";
        }
    }
    
    1. 定义Mapper接口:

    @Mapper
    public interface EmplopyeeDao extends BaseMapper {
    }
    
    1. 在Java中进行表的增删改查操作:

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration({ "classpath:spring/spring-dao.xml" })
    public class test {
        @Autowired
        private DataSource dataSource;
    
        @Test
        public void testDataSource() throws SQLException {
            System.out.println(dataSource.getConnection());
        }
    
        @Autowired
        private EmplopyeeDao emplopyeeDao;
    
        @Test
        public void testInsert() {
            Employee employee = new Employee();
            employee.setLastName("tom");
            employee.setEmail("dfbb@163.com");
            employee.setGender(false);
            employee.setAge(22);
            employee.setDate(new Date(System.currentTimeMillis()));
            emplopyeeDao.insert(employee);
            /*  mybatisplus会自动把当前插入对象在数据库中的id写回到该实体中 */
            System.out.println(employee.getId());
        }
    
        @Test
        public void testUpdate() {
            Employee employee = new Employee();
            employee.setId(1);
            employee.setLastName("更新测试");
            /* 根据id进行更新,没有传值的属性就不会更新 */
            emplopyeeDao.updateById(employee);
            /* 根据id进行更新,没传值的属性就更新为null */
            emplopyeeDao.update(employee, null);
        }
    
        @Test
        public void testSelectById() {
            Employee employee = emplopyeeDao.selectById(2);
            System.out.println(employee.toString());
        }
    
        @Test
        public void testSelect() {
            Map columnMap = new HashMap();
            /* 写表中的列名 */
            columnMap.put("last_name", "更新测试");
            columnMap.put("gender", false);
            List employees = emplopyeeDao.selectByMap(columnMap);
            System.out.println(employees.size());
        }
    
        @Test
        public void testSelectByPage() {
            IPage employees = emplopyeeDao.selectPage(new Page(1, 5),
                    new QueryWrapper().between("age", 18, 50).eq("gender",
                    false).eq("last_name", "更新测试"));
            System.out.println(employees);
        }
    
        @Test
        public void testDeleteById() {
            System.out.println(emplopyeeDao.deleteById(1));
        }
    
        @Test
        public void testDelete() {
            Map columnMap = new HashMap();
            columnMap.put("gender", false);
            columnMap.put("age", 18);
            emplopyeeDao.deleteByMap(columnMap);
        }
    
        @Test
        public void testSelectByPage1() {
            Integer[] ints = { 1, 18, 19, 20, 21, 22, 23, 24, 25 };
            IPage employees = emplopyeeDao.selectPage(new Page(1, 5),
                    new QueryWrapper().between("age", 18, 50).eq("gender",
                    false).eq("last_name", "更新测试").in(true,
                            "age", Arrays.asList(ints)));
            System.out.println(employees.toString());
            System.out.println(employees.getTotal());
            System.out.println(employees.getPages());
            System.out.println(employees.getRecords());
        }
    }

     

  • 相关阅读:
    Docker下安装oracle环境(以oracle_11g环境为例)
    51单片机音乐闹钟秒表倒计时整点报时多功能电子钟万年历数码管显示( proteus仿真+程序+原理图+报告+讲解视频)
    ES(二)| 安装ES、Kibana、IK分词器、拼音分词器(自动补全)
    Selenium定位元素
    PLC液压控制系列之比例流量阀结构分析
    屏幕缩放和注释工具(ZoomIt)
    浏览器中的页面循环系统(二)Webapi:setTimeout是怎么实现的
    2.01_python+Django+mysql实现pdf转word项目_项目开发- 创建Django项目
    C语言连接【MySQL】
    Three导入dae格式模型实例
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126905084