• 金仓数据库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());
        }
    }

     

  • 相关阅读:
    全流程点云机器学习(一)使用CloudCompare自制sharpNet数据集
    2020java面试总结
    关于node安装和nvm安装的问题
    在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
    [C/C++]天天酷跑超详细教程-中篇
    后端研发工程师面经——计算机网络
    Pandas详细总结
    基于C语言的图论汇编
    【跟小嘉学 Rust 编程】三十、Rust 使用 Slint UI
    SpringBoot集成图数据库neo4j实现简单的关联图谱
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126905084