com.mybatisX.test.mysql.UserMapperTest.java Source code

Java tutorial

Introduction

Here is the source code for com.mybatisX.test.mysql.UserMapperTest.java

Source

/**
 * Copyright (c) 2011-2014, hubin (jobob@qq.com).
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.mybatisX.test.mysql;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.jdbc.SQL;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.mybatisX.core.MybatisSessionFactoryBuilder;
import com.mybatisX.mapper.EntityWrapper;
import com.mybatisX.plugins.Page;
import com.mybatisX.plugins.pagination.Pagination;
import com.mybatisX.test.mysql.entity.Role;
import com.mybatisX.test.mysql.entity.User;
import com.mybatisX.toolkit.IdWorker;

/**
 * <p>
 * MybatisPlus 
 * </p>
 * <p>
 * ??<br>
 * http://www.mybatis.org/spring/transactions.html#programmatic<br>
 * https://github.com/mybatis/spring/issues/39<br>
 * </p>
 *
 * @author hubin sjy
 * @Date 2016-01-23
 */
public class UserMapperTest {

    /**
     * RUN 
     * <p>
     * <p>
     * MybatisPlus  SQL ?
     * </p>
     * 1?XMLSQL<br>
     * 2?sqlProviderSQL<br>
     * 3?xmlSql  sqlProvider???SQL<br>
     * <br>
     * ?SQLxmlSql > sqlProvider > crudSql <br>
     */
    public static void main(String[] args) {

        // ?
        InputStream in = UserMapperTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");

        /*
         *  MybatisSessionFactoryBuilder 
         * SqlSessionFactoryBaseMapper
         */
        MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();

        /*
         * 1?????? 2????? 3?????
         * ?? @TableId(value = "test_id") 
         */
        // mf.setDbColumnUnderline(true);

        /**
         *  SQL 
         */
        mf.setSqlInjector(new MySqlInjector());

        /**
         *  
         */
        mf.setMetaObjectHandler(new MyMetaObjectHandler());

        SqlSessionFactory sessionFactory = mf.build(in);
        SqlSession session = sessionFactory.openSession();
        UserMapper userMapper = session.getMapper(UserMapper.class);
        System.err.println(" debug run  user ??? ");
        userMapper.deleteAll();

        /**
         * sjy @TableFieldel
         */
        Role role = new Role();
        role.setId(IdWorker.getId());
        role.setName("admin");

        User userA = new User();
        userA.setId(IdWorker.getId());
        userA.setName("junyu_shi");
        userA.setAge(1);
        userA.setDesc("");
        userA.setTestType(1);
        userA.setRole(role);

        int rlt = userMapper.insert(userA);
        User whereUser = userMapper.selectOne(userA);
        print(whereUser);

        userA.setAge(18);
        userMapper.updateById(userA);
        userMapper.delete(new EntityWrapper<User>(userA));
        System.err.println("--------- @TableField el() --------- " + rlt);

        /**
         * ?
         */
        rlt = userMapper.insertInjector(new User(1L, "1", 1, 1));
        System.err.println("--------- insertInjector --------- " + rlt);

        /**
         * ehcache 
         */
        User cacheUser = userMapper.selectOne(new User(1L, 1));
        print(cacheUser);
        cacheUser = userMapper.selectOne(new User(1L, 1));
        print(cacheUser);

        /**
         * ?
         */
        long id = IdWorker.getId();
        rlt = userMapper.insert(new User(id, "abc", 18, 1));
        System.err.println("\n--------------insert-------" + rlt);
        sleep();

        rlt = userMapper.insert(new User(18));
        System.err.println("\n---------- name ?----insert-------" + rlt);
        sleep();

        List<User> ul = new ArrayList<User>();

        /*  ID */
        ul.add(new User(11L, "1", 1, 0));
        ul.add(new User(12L, "2", 2, 1));
        ul.add(new User(13L, "3", 3, 1));
        ul.add(new User(14L, "delname", 4, 0));
        ul.add(new User(15L, "5", 5, 1));
        ul.add(new User(16L, "6", 6, 0));

        /*  name test_type  */
        ul.add(new User(17L, 7));
        ul.add(new User(18L, 8));
        ul.add(new User(19L, 9));
        ul.add(new User(7));
        ul.add(new User(20L, "deleteByMap", 7, 0));

        /*  ID_WORKER ? ID */
        ul.add(new User("8", 8, 1));
        ul.add(new User("9", 9, 1));
        for (User u : ul) {
            rlt = userMapper.insert(u);
        }
        System.err.println("\n--------------insertBatch----------------" + rlt + "\n\n");

        /**
         * ??????
         */
        session.commit();

        /*
         * 
         */
        rlt = userMapper.deleteById(id);
        System.err.println("---------deleteById------- delete id=" + id + " ,result=" + rlt + "\n\n");
        sleep();

        Map<String, Object> columnMap = new HashMap<String, Object>();
        columnMap.put("name", "deleteByMap");
        columnMap.put("age", null);
        rlt = userMapper.deleteByMap(columnMap);
        System.err.println("---------deleteByMap------- result=" + rlt + "\n\n");
        sleep();

        List<Long> il = new ArrayList<Long>();
        il.add(16L);
        il.add(17L);
        rlt = userMapper.deleteBatchIds(il);
        System.err.println("---------deleteBatchIds------- delete id=" + id + " ,result=" + rlt + "\n\n");
        sleep();

        rlt = userMapper.delete(new EntityWrapper<User>(new User(14L, "delname")));
        System.err.println("--------------delete------------------ result=" + rlt + "\n\n");
        sleep();

        /*
         * <p>  </p>
         * 
         * updateById  BaseMapper ?UserMapper.xmlsql
         */
        rlt = userMapper.updateById(new User(12L, "MybatisPlus"));
        System.err.println("------------------updateById---------------------- result=" + rlt + "\n\n");
        sleep();

        rlt = userMapper.updateById(new User(12L, "update all column", 12, 12));
        System.err.println("------------------updateById---------------------- result=" + rlt + "\n\n");
        sleep();

        rlt = userMapper.update(new User("55", 55, 5), new EntityWrapper<User>(new User(15L, "5")));
        System.err.println("------------------update---------------------- result=" + rlt + "\n\n");
        sleep();

        EntityWrapper<User> ew1 = new EntityWrapper<User>();
        ew1.addFilter("test_id={0} AND name={1}", 15L, "55");
        rlt = userMapper.update(new User("00"), ew1);
        System.err.println("------------------update---------------------- result=" + rlt + "\n\n");
        sleep();

        /* ? */
        // userMapper.update(new User("11"), null);

        List<User> userList = new ArrayList<User>();
        userList.add(new User(11L, "updateBatchById-1", 1, 1));
        userList.add(new User(12L, "updateBatchById-2", 2, 1));
        userList.add(new User(13L, "updateBatchById-3", 3, 1));
        for (User u : userList) {
            rlt = userMapper.updateById(u);
        }
        System.err.println("------------------updateBatchById---------------------- result=" + rlt + "\n\n");
        sleep();

        /*
         * <p>  </p>
         */
        System.err.println("\n------------------selectById----------------------");
        User user = userMapper.selectById(12L);
        print(user);

        System.err.println("\n------------------selectBatchIds----------------------");
        List<Long> idList = new ArrayList<Long>();
        idList.add(11L);
        idList.add(12L);
        List<User> ul0 = userMapper.selectBatchIds(idList);
        for (User anUl0 : ul0) {
            print(anUl0);
        }

        System.err.println("\n------------------selectByMap----- map ??----");
        Map<String, Object> cm = new HashMap<String, Object>();
        cm.put("test_type", 1);
        List<User> ul1 = userMapper.selectByMap(cm);
        for (User anUl1 : ul1) {
            print(anUl1);
        }

        System.err.println("\n------------------selectOne----------------------");
        User userOne = userMapper.selectOne(new User("abc"));
        print(userOne);

        System.err.println("\n------------------selectCount----------------------");
        System.err.println(
                " type=1 " + userMapper.selectCount(new EntityWrapper<User>(new User(1))));
        System.err.println("" + userMapper.selectCount(null));

        System.err.println("\n------------------selectList-----?----id--DESC--?----");
        List<User> ul2 = userMapper.selectList(new EntityWrapper<User>(null, "age,name"));
        for (User anUl2 : ul2) {
            print(anUl2);
        }

        System.err.println(
                "\n------------------list  ---- testType = 1 ?--id--DESC--?--------");
        Page<User> page = new Page<User>(1, 2);
        EntityWrapper<User> ew = new EntityWrapper<User>(new User(1));

        /*
         * 
         */
        ew.setSqlSelect("age,name");

        /*
         * ?SQL (?SQL?????)
         */
        ew.where("name like {0}", "'%dateBatch%'").and("age={0}", 3).orderBy("age,name", true);
        List<User> paginList = userMapper.selectPage(page, ew);
        page.setRecords(paginList);
        for (int i = 0; i < page.getRecords().size(); i++) {
            print(page.getRecords().get(i));
        }
        System.err.println(" " + page.toString());

        System.err.println(
                "\n---------------xml---selectListRow ?? count ----?--------------");
        // TODO  Page ??
        List<User> rowList = userMapper.selectListRow(new Pagination(0, 2, false));
        for (User aRowList : rowList) {
            print(aRowList);
        }

        /*
         * 
         */
        System.err.println(" selectList EntityWrapper == null \n");
        paginList = userMapper.selectList(null);
        for (User aPaginList : paginList) {
            print(aPaginList);
        }

        /*
         * <p>
         *  SQL ???
         * </p>
         * <p>
         * ?/mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/SqlBuilderTest.java
         * </p>
         */
        SQL sql = new SQL() {
            {
                SELECT("a.test_id as id, a.name, a.age");
                FROM("user a");
                WHERE("a.test_type=1");
            }
        };
        // SQL ?
        System.err.println(" insertSql  SQL \n");
        rlt = userMapper.insertSql(new SQL() {
            {
                INSERT_INTO("user");
                VALUES("test_id, name, age, test_type", IdWorker.getId() + ", 'testInsertSql', 5, 1");
            }
        }.toString());
        System.err.println("???" + rlt);

        // SQL 
        System.err.println(" selectListSql  SQL \n");
        List<Map<String, Object>> ul3 = userMapper.selectListSql(sql.toString());
        for (Map<String, Object> u : ul3) {
            System.err.println(u);
        }

        // SQL 
        System.err.println(" selectPageSql  SQL \n");
        Page<Map<String, Object>> page3 = new Page<Map<String, Object>>(0, 10);
        List<Map<String, Object>> ml = userMapper.selectPageSql(page3, sql.toString());
        for (Map<String, Object> map : ml) {
            System.err.println(" map " + map);
        }
        System.err.println("" + page3.toString());

        // SQL 
        System.err.println(" deleteSql  SQL \n");
        rlt = userMapper.deleteSql(new SQL() {
            {
                DELETE_FROM("user");
                WHERE("name='testInsertSql'");
            }
        }.toString());
        System.err.println("??" + rlt);

        // SQL 
        System.err.println(" updateSql  SQL \n");
        rlt = userMapper.updateSql(new SQL() {
            {
                UPDATE("user");
                SET("age=6");
                WHERE("test_type=1");
            }
        }.toString());
        System.err.println("???" + rlt);

        /**
         * ?
         */
        rlt = userMapper.deleteAll();
        System.err.println("?? rlt=" + rlt);

        /**
         * ??
         */
        session.commit();
    }

    /*
     * ??
     */
    private static void print(User user) {
        sleep();
        if (user != null) {
            System.out.println("\n user: id=" + user.getId() + ", name=" + user.getName() + ", age=" + user.getAge()
                    + ", testType=" + user.getTestType());
        } else {
            System.out.println("\n user is null.");
        }
    }

    /*
     * ?
     */
    private static void sleep() {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}