Java tutorial
/** * 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(); } } }