Example usage for org.apache.ibatis.session SqlSession getMapper

List of usage examples for org.apache.ibatis.session SqlSession getMapper

Introduction

In this page you can find the example usage for org.apache.ibatis.session SqlSession getMapper.

Prototype

<T> T getMapper(Class<T> type);

Source Link

Document

Retrieves a mapper.

Usage

From source file:com.itfsw.mybatis.generator.plugins.OptimisticLockerPluginTest.java

License:Apache License

/**
 *  updateWithVersionByPrimaryKeySelective
 *///  ww  w . j a  v  a  2  s. c om
@Test
public void testUpdateWithVersionByPrimaryKeySelective() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool
            .create("scripts/OptimisticLockerPlugin/mybatis-generator.xml");
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("id", 1L);
            tb.set("incF1", 152L); // ?sql?
            tb.set("incF2", 10L);
            tb.set("incF3", 5L);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(),
                    "updateWithVersionByPrimaryKeySelective", 100L, tb.getObject());
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, inc_f2 = 10, inc_f3 = 5 where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 100L, tb.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?0
            result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 0L, tb.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
        }
    });

    // ?
    tool = MyBatisGeneratorTool
            .create("scripts/OptimisticLockerPlugin/mybatis-generator-customizedNextVersion.xml");
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("id", 1L);
            tb.invoke("nextVersion", 152L);
            tb.set("incF2", 10L);
            tb.set("incF3", 5L);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(),
                    "updateWithVersionByPrimaryKeySelective", 100L, tb.getObject());
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = 152, inc_f2 = 10, inc_f3 = 5 where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 100L, tb.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?0
            result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 0L, tb.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 152);
        }
    });
}

From source file:com.itfsw.mybatis.generator.plugins.OptimisticLockerPluginTest.java

License:Apache License

/**
 *  updateWithVersionByPrimaryKey//from   w  w  w.  jav a2 s. c  o m
 */
@Test
public void testUpdateWithVersionByPrimaryKey() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool
            .create("scripts/OptimisticLockerPlugin/mybatis-generator.xml");
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("id", 1L);
            tb.set("incF1", 152L); // ?sql?
            tb.set("incF2", 10L);
            tb.set("incF3", 5L);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateWithVersionByPrimaryKey",
                    100L, tb.getObject());
            Assert.assertEquals(sql,
                    "update tb set inc_f1 = inc_f1 + 1, field1 = 'null', inc_f2 = 10, inc_f3 = 5 where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbMapper.invoke("updateWithVersionByPrimaryKey", 100L, tb.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?0
            result = tbMapper.invoke("updateWithVersionByPrimaryKey", 0L, tb.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
        }
    });

    // ?
    tool = MyBatisGeneratorTool
            .create("scripts/OptimisticLockerPlugin/mybatis-generator-customizedNextVersion.xml");
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("id", 1L);
            tb.invoke("nextVersion", 152L);
            tb.set("incF2", 10L);
            tb.set("incF3", 5L);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateWithVersionByPrimaryKey",
                    100L, tb.getObject());
            Assert.assertEquals(sql,
                    "update tb set inc_f1 = 152, field1 = 'null', inc_f2 = 10, inc_f3 = 5 where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbMapper.invoke("updateWithVersionByPrimaryKey", 100L, tb.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?0
            result = tbMapper.invoke("updateWithVersionByPrimaryKey", 0L, tb.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 152);
        }
    });
}

From source file:com.itfsw.mybatis.generator.plugins.OptimisticLockerPluginTest.java

License:Apache License

/**
 *  updateWithVersionByPrimaryKeyWithBLOBs
 *//*  www.j a  v a2  s.c o m*/
@Test
public void testUpdateWithVersionByPrimaryKeyWithBLOBs() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool
            .create("scripts/OptimisticLockerPlugin/mybatis-generator.xml");

    // withoutBLOBs
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbBlobsMapper = new ObjectUtil(
                    sqlSession.getMapper(loader.loadClass(packagz + ".TbBlobsMapper")));

            ObjectUtil tbBlobs = new ObjectUtil(loader, packagz + ".TbBlobs");
            tbBlobs.set("id", 1L);
            tbBlobs.set("incF1", 152L); // ?sql?
            tbBlobs.set("incF2", 10L);
            tbBlobs.set("incF3", 5L);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbBlobsMapper.getObject(),
                    "updateWithVersionByPrimaryKey", 100L, tbBlobs.getObject());
            Assert.assertEquals(sql,
                    "update tb_blobs set inc_f1 = inc_f1 + 1, field1 = 'null', inc_f2 = 10, inc_f3 = 5 where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKey", 100L, tbBlobs.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?1
            result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKey", 1L, tbBlobs.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb_blobs where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 2);
        }
    });

    // withBLOBs
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbBlobsMapper = new ObjectUtil(
                    sqlSession.getMapper(loader.loadClass(packagz + ".TbBlobsMapper")));

            ObjectUtil tbBlobsWithBLOBs = new ObjectUtil(loader, packagz + ".TbBlobsWithBLOBs");
            tbBlobsWithBLOBs.set("id", 1L);
            tbBlobsWithBLOBs.set("incF1", 152L); // ?sql?
            tbBlobsWithBLOBs.set("incF2", 10L);
            tbBlobsWithBLOBs.set("incF3", 5L);
            tbBlobsWithBLOBs.set("field1", "ts1");

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbBlobsMapper.getObject(),
                    "updateWithVersionByPrimaryKeyWithBLOBs", 100L, tbBlobsWithBLOBs.getObject());
            Assert.assertEquals(sql,
                    "update tb_blobs set inc_f1 = inc_f1 + 1, field1 = 'ts1', inc_f2 = 10, inc_f3 = 5, field2 = 'null', field3 = 'null' where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKeyWithBLOBs", 100L,
                    tbBlobsWithBLOBs.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?1
            result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKeyWithBLOBs", 1L,
                    tbBlobsWithBLOBs.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb_blobs where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 2);
            Assert.assertEquals(rs.getString("field1"), "ts1");
        }
    });

    // ====================================== ?
    // ==========================================
    tool = MyBatisGeneratorTool
            .create("scripts/OptimisticLockerPlugin/mybatis-generator-customizedNextVersion.xml");
    // withoutBLOBs
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbBlobsMapper = new ObjectUtil(
                    sqlSession.getMapper(loader.loadClass(packagz + ".TbBlobsMapper")));

            ObjectUtil tbBlobs = new ObjectUtil(loader, packagz + ".TbBlobs");
            tbBlobs.set("id", 1L);
            tbBlobs.invoke("nextVersion", 152L);
            tbBlobs.set("incF2", 10L);
            tbBlobs.set("incF3", 5L);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbBlobsMapper.getObject(),
                    "updateWithVersionByPrimaryKey", 100L, tbBlobs.getObject());
            Assert.assertEquals(sql,
                    "update tb_blobs set inc_f1 = 152, field1 = 'null', inc_f2 = 10, inc_f3 = 5 where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKey", 100L, tbBlobs.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?1
            result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKey", 1L, tbBlobs.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb_blobs where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 152);
        }
    });

    // withBLOBs
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbBlobsMapper = new ObjectUtil(
                    sqlSession.getMapper(loader.loadClass(packagz + ".TbBlobsMapper")));

            ObjectUtil tbBlobsWithBLOBs = new ObjectUtil(loader, packagz + ".TbBlobsWithBLOBs");
            tbBlobsWithBLOBs.set("id", 1L);
            tbBlobsWithBLOBs.invoke("nextVersion", 152L);
            tbBlobsWithBLOBs.set("incF2", 10L);
            tbBlobsWithBLOBs.set("incF3", 5L);
            tbBlobsWithBLOBs.set("field1", "ts1");

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbBlobsMapper.getObject(),
                    "updateWithVersionByPrimaryKeyWithBLOBs", 100L, tbBlobsWithBLOBs.getObject());
            Assert.assertEquals(sql,
                    "update tb_blobs set inc_f1 = 152, field1 = 'ts1', inc_f2 = 10, inc_f3 = 5, field2 = 'null', field3 = 'null' where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKeyWithBLOBs", 100L,
                    tbBlobsWithBLOBs.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?1
            result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKeyWithBLOBs", 1L,
                    tbBlobsWithBLOBs.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb_blobs where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 152);
            Assert.assertEquals(rs.getString("field1"), "ts1");
        }
    });
}

From source file:com.itfsw.mybatis.generator.plugins.OptimisticLockerPluginTest.java

License:Apache License

/**
 * ?IncrementsPlugin?/* w  ww .ja  v a  2s.co  m*/
 */
@Test
public void testWithIncrementsPlugin() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool
            .create("scripts/OptimisticLockerPlugin/mybatis-generator-with-IncrementsPlugin.xml");

    // updateWithVersionByExampleSelective
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tbExample = new ObjectUtil(loader, packagz + ".TbExample");
            ObjectUtil criteria = new ObjectUtil(tbExample.invoke("createCriteria"));
            criteria.invoke("andIdEqualTo", 1l);

            ObjectUtil tbBuilder = new ObjectUtil(loader, packagz + ".Tb$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".Tb$Builder$Inc#INC");
            tbBuilder.invoke("id", 1L);
            tbBuilder.invoke("incF1", 121l, tbBuilderInc.getObject()); // ?sql?
            tbBuilder.invoke("incF2", 5l, tbBuilderInc.getObject());
            tbBuilder.invoke("incF3", 10l);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(),
                    "updateWithVersionByExampleSelective", 100L, tbBuilder.invoke("build"),
                    tbExample.getObject());
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, id = 1, inc_f2 = inc_f2 + 5 , inc_f3 = 10 WHERE inc_f1 = 100 and ( ( id = '1' ) )");

            // ?100?0
            Object result = tbMapper.invoke("updateWithVersionByExampleSelective", 100L,
                    tbBuilder.invoke("build"), tbExample.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?0
            result = tbMapper.invoke("updateWithVersionByExampleSelective", 0L, tbBuilder.invoke("build"),
                    tbExample.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
            Assert.assertEquals(rs.getInt("inc_f2"), 7);
        }
    });

    // updateWithVersionByExample
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tbExample = new ObjectUtil(loader, packagz + ".TbExample");
            ObjectUtil criteria = new ObjectUtil(tbExample.invoke("createCriteria"));
            criteria.invoke("andIdEqualTo", 1l);

            ObjectUtil tbBuilder = new ObjectUtil(loader, packagz + ".Tb$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".Tb$Builder$Inc#INC");
            tbBuilder.invoke("id", 1L);
            tbBuilder.invoke("incF1", 121l, tbBuilderInc.getObject()); // ?sql?
            tbBuilder.invoke("incF2", 5l, tbBuilderInc.getObject());
            tbBuilder.invoke("incF3", 10l);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateWithVersionByExample", 100L,
                    tbBuilder.invoke("build"), tbExample.getObject());
            Assert.assertEquals(sql,
                    "update tb set inc_f1 = inc_f1 + 1, id = 1, field1 = 'null', inc_f2 = inc_f2 + 5 , inc_f3 = 10 WHERE inc_f1 = 100 and ( ( id = '1' ) )");

            // ?100?0
            Object result = tbMapper.invoke("updateWithVersionByExample", 100L, tbBuilder.invoke("build"),
                    tbExample.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?0
            result = tbMapper.invoke("updateWithVersionByExample", 0L, tbBuilder.invoke("build"),
                    tbExample.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
        }
    });

    // withBLOBs?BLOBs?
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbBlobsMapper = new ObjectUtil(
                    sqlSession.getMapper(loader.loadClass(packagz + ".TbBlobsMapper")));

            ObjectUtil tbBlobsExample = new ObjectUtil(loader, packagz + ".TbBlobsExample");
            ObjectUtil criteria = new ObjectUtil(tbBlobsExample.invoke("createCriteria"));
            criteria.invoke("andIdEqualTo", 1l);

            ObjectUtil tbBlobsWithBLOBsBuilder = new ObjectUtil(loader, packagz + ".TbBlobsWithBLOBs$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".TbBlobs$Builder$Inc#INC");
            tbBlobsWithBLOBsBuilder.invoke("id", 1L);
            tbBlobsWithBLOBsBuilder.invoke("incF2", 5L, tbBuilderInc.getObject());
            tbBlobsWithBLOBsBuilder.invoke("incF3", 10L);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbBlobsMapper.getObject(), "updateWithVersionByExample",
                    100L, tbBlobsWithBLOBsBuilder.invoke("build"), tbBlobsExample.getObject());
            Assert.assertEquals(sql,
                    "update tb_blobs set inc_f1 = inc_f1 + 1, id = 1, field1 = 'null', inc_f2 = inc_f2 + 5 , inc_f3 = 10 WHERE inc_f1 = 100 and ( ( id = '1' ) )");

            // ?100?0
            Object result = tbBlobsMapper.invoke("updateWithVersionByExample", 100L,
                    tbBlobsWithBLOBsBuilder.invoke("build"), tbBlobsExample.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?1
            result = tbBlobsMapper.invoke("updateWithVersionByExample", 1L,
                    tbBlobsWithBLOBsBuilder.invoke("build"), tbBlobsExample.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb_blobs where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 2);
        }
    });

    // withBLOBs?BLOBs?
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbBlobsMapper = new ObjectUtil(
                    sqlSession.getMapper(loader.loadClass(packagz + ".TbBlobsMapper")));

            ObjectUtil tbBlobsExample = new ObjectUtil(loader, packagz + ".TbBlobsExample");
            ObjectUtil criteria = new ObjectUtil(tbBlobsExample.invoke("createCriteria"));
            criteria.invoke("andIdEqualTo", 1l);

            ObjectUtil tbBlobsWithBLOBsBuilder = new ObjectUtil(loader, packagz + ".TbBlobsWithBLOBs$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".TbBlobs$Builder$Inc#INC");
            tbBlobsWithBLOBsBuilder.invoke("id", 1L);
            tbBlobsWithBLOBsBuilder.invoke("incF2", 5L, tbBuilderInc.getObject());
            tbBlobsWithBLOBsBuilder.invoke("incF3", 10L);
            tbBlobsWithBLOBsBuilder.invoke("field1", "ts1");

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbBlobsMapper.getObject(),
                    "updateWithVersionByExampleWithBLOBs", 100L, tbBlobsWithBLOBsBuilder.invoke("build"),
                    tbBlobsExample.getObject());
            Assert.assertEquals(sql,
                    "update tb_blobs set inc_f1 = inc_f1 + 1, id = 1, field1 = 'ts1', inc_f2 = inc_f2 + 5 , inc_f3 = 10, field2 = 'null', field3 = 'null' WHERE inc_f1 = 100 and ( ( id = '1' ) )");

            // ?100?0
            Object result = tbBlobsMapper.invoke("updateWithVersionByExampleWithBLOBs", 100L,
                    tbBlobsWithBLOBsBuilder.invoke("build"), tbBlobsExample.getObject());
            Assert.assertEquals(result, 0);

            // id = 1 ?1
            result = tbBlobsMapper.invoke("updateWithVersionByExampleWithBLOBs", 1L,
                    tbBlobsWithBLOBsBuilder.invoke("build"), tbBlobsExample.getObject());
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb_blobs where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 2);
            Assert.assertEquals(rs.getString("field1"), "ts1");
        }
    });

    // updateWithVersionByPrimaryKeySelective
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tbBuilder = new ObjectUtil(loader, packagz + ".Tb$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".Tb$Builder$Inc#INC");
            tbBuilder.invoke("id", 1L);
            tbBuilder.invoke("incF1", 121l, tbBuilderInc.getObject()); // ?sql?
            tbBuilder.invoke("incF2", 5l, tbBuilderInc.getObject());
            tbBuilder.invoke("incF3", 10l);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(),
                    "updateWithVersionByPrimaryKeySelective", 100L, tbBuilder.invoke("build"));
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, inc_f2 = inc_f2 + 5 , inc_f3 = 10 where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 100L,
                    tbBuilder.invoke("build"));
            Assert.assertEquals(result, 0);

            // id = 1 ?0
            result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 0L, tbBuilder.invoke("build"));
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
        }
    });

    // updateWithVersionByPrimaryKey
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tbBuilder = new ObjectUtil(loader, packagz + ".Tb$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".Tb$Builder$Inc#INC");
            tbBuilder.invoke("id", 1L);
            tbBuilder.invoke("incF1", 121l, tbBuilderInc.getObject()); // ?sql?
            tbBuilder.invoke("incF2", 5l, tbBuilderInc.getObject());
            tbBuilder.invoke("incF3", 10l);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateWithVersionByPrimaryKey",
                    100L, tbBuilder.invoke("build"));
            Assert.assertEquals(sql,
                    "update tb set inc_f1 = inc_f1 + 1, field1 = 'null', inc_f2 = inc_f2 + 5 , inc_f3 = 10 where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbMapper.invoke("updateWithVersionByPrimaryKey", 100L, tbBuilder.invoke("build"));
            Assert.assertEquals(result, 0);

            // id = 1 ?0
            result = tbMapper.invoke("updateWithVersionByPrimaryKey", 0L, tbBuilder.invoke("build"));
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
        }
    });

    // withBLOBs?BLOBs?
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbBlobsMapper = new ObjectUtil(
                    sqlSession.getMapper(loader.loadClass(packagz + ".TbBlobsMapper")));

            ObjectUtil tbBlobsWithBLOBsBuilder = new ObjectUtil(loader, packagz + ".TbBlobsWithBLOBs$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".TbBlobs$Builder$Inc#INC");
            tbBlobsWithBLOBsBuilder.invoke("id", 1L);
            tbBlobsWithBLOBsBuilder.invoke("incF2", 5L, tbBuilderInc.getObject());
            tbBlobsWithBLOBsBuilder.invoke("incF3", 10L);

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbBlobsMapper.getObject(),
                    "updateWithVersionByPrimaryKey", 100L, tbBlobsWithBLOBsBuilder.invoke("build"));
            Assert.assertEquals(sql,
                    "update tb_blobs set inc_f1 = inc_f1 + 1, field1 = 'null', inc_f2 = inc_f2 + 5 , inc_f3 = 10 where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKey", 100L,
                    tbBlobsWithBLOBsBuilder.invoke("build"));
            Assert.assertEquals(result, 0);

            // id = 1 ?1
            result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKey", 1L,
                    tbBlobsWithBLOBsBuilder.invoke("build"));
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb_blobs where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 2);
        }
    });

    // withBLOBs?BLOBs?
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbBlobsMapper = new ObjectUtil(
                    sqlSession.getMapper(loader.loadClass(packagz + ".TbBlobsMapper")));

            ObjectUtil tbBlobsWithBLOBsBuilder = new ObjectUtil(loader, packagz + ".TbBlobsWithBLOBs$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".TbBlobs$Builder$Inc#INC");
            tbBlobsWithBLOBsBuilder.invoke("id", 1L);
            tbBlobsWithBLOBsBuilder.invoke("incF2", 5L, tbBuilderInc.getObject());
            tbBlobsWithBLOBsBuilder.invoke("incF3", 10L);
            tbBlobsWithBLOBsBuilder.invoke("field1", "ts1");

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbBlobsMapper.getObject(),
                    "updateWithVersionByPrimaryKeyWithBLOBs", 100L, tbBlobsWithBLOBsBuilder.invoke("build"));
            Assert.assertEquals(sql,
                    "update tb_blobs set inc_f1 = inc_f1 + 1, field1 = 'ts1', inc_f2 = inc_f2 + 5 , inc_f3 = 10, field2 = 'null', field3 = 'null' where inc_f1 = 100 and id = 1");

            // ?100?0
            Object result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKeyWithBLOBs", 100L,
                    tbBlobsWithBLOBsBuilder.invoke("build"));
            Assert.assertEquals(result, 0);

            // id = 1 ?1
            result = tbBlobsMapper.invoke("updateWithVersionByPrimaryKeyWithBLOBs", 1L,
                    tbBlobsWithBLOBsBuilder.invoke("build"));
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb_blobs where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 2);
            Assert.assertEquals(rs.getString("field1"), "ts1");
        }
    });
}

From source file:com.itfsw.mybatis.generator.plugins.OptimisticLockerPluginTest.java

License:Apache License

/**
 * ?SelectiveEnhancedPlugin?//from w w w .j  a v  a 2s.  c o  m
 */
@Test
public void testWithSelectiveEnhancedPlugin() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool
            .create("scripts/OptimisticLockerPlugin/mybatis-generator-with-SelectiveEnhancedPlugin.xml");

    // updateWithVersionByExampleSelective
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tbExample = new ObjectUtil(loader, packagz + ".TbExample");
            ObjectUtil criteria = new ObjectUtil(tbExample.invoke("createCriteria"));
            criteria.invoke("andIdEqualTo", 1l);

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("id", 1L);
            tb.set("incF1", 152L); // ?sql?
            tb.set("incF2", 10L);
            tb.set("incF3", 5L);

            // selective
            ObjectUtil TbColumnId = new ObjectUtil(loader, packagz + ".Tb$Column#id");
            ObjectUtil TbColumnField1 = new ObjectUtil(loader, packagz + ".Tb$Column#field1");
            ObjectUtil TbColumnIncF1 = new ObjectUtil(loader, packagz + ".Tb$Column#incF1"); // ?sql?
            ObjectUtil TbColumnIncF2 = new ObjectUtil(loader, packagz + ".Tb$Column#incF2");
            Object columns = Array.newInstance(TbColumnField1.getCls(), 4);
            Array.set(columns, 0, TbColumnId.getObject());
            Array.set(columns, 1, TbColumnField1.getObject());
            Array.set(columns, 2, TbColumnIncF1.getObject());
            Array.set(columns, 3, TbColumnIncF2.getObject());

            // sql(?)
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(),
                    "updateWithVersionByExampleSelective", 100L, tb.getObject(), tbExample.getObject());
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, id = 1, inc_f2 = 10, inc_f3 = 5 WHERE inc_f1 = 100 and ( ( id = '1' ) )");
            // sql(selective)
            sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateWithVersionByExampleSelective",
                    100L, tb.getObject(), tbExample.getObject(), columns);
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, id = 1 , field1 = 'null' , inc_f2 = 10 WHERE inc_f1 = 100 and ( ( id = '1' ) )");

            // ?100?0(?)
            Object result = tbMapper.invoke("updateWithVersionByExampleSelective", 100L, tb.getObject(),
                    tbExample.getObject(), null);
            Assert.assertEquals(result, 0);

            // id = 1 ?0(selective )
            result = tbMapper.invoke("updateWithVersionByExampleSelective", 0L, tb.getObject(),
                    tbExample.getObject(), columns);
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
            Assert.assertEquals(rs.getInt("inc_f2"), 10);
        }
    });

    // updateWithVersionByPrimaryKeySelective
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("id", 1L);
            tb.set("incF1", 152L); // ?sql?
            tb.set("incF2", 10L);
            tb.set("incF3", 5L);

            // selective
            ObjectUtil TbColumnId = new ObjectUtil(loader, packagz + ".Tb$Column#id");
            ObjectUtil TbColumnField1 = new ObjectUtil(loader, packagz + ".Tb$Column#field1");
            ObjectUtil TbColumnIncF1 = new ObjectUtil(loader, packagz + ".Tb$Column#incF1"); // ?sql?
            ObjectUtil TbColumnIncF2 = new ObjectUtil(loader, packagz + ".Tb$Column#incF2");
            Object columns = Array.newInstance(TbColumnField1.getCls(), 4);
            Array.set(columns, 0, TbColumnId.getObject());
            Array.set(columns, 1, TbColumnField1.getObject());
            Array.set(columns, 2, TbColumnIncF1.getObject());
            Array.set(columns, 3, TbColumnIncF2.getObject());

            // sql(?)
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(),
                    "updateWithVersionByPrimaryKeySelective", 100L, tb.getObject());
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, inc_f2 = 10, inc_f3 = 5 where inc_f1 = 100 and id = 1");
            // sql(selective)
            sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateWithVersionByPrimaryKeySelective",
                    100L, tb.getObject(), columns);
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, id = 1 , field1 = 'null' , inc_f2 = 10 where inc_f1 = 100 and id = 1");

            // ?100?0(?)
            Object result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 100L, tb.getObject(),
                    null);
            Assert.assertEquals(result, 0);

            // id = 1 ?0(selective )
            result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 0L, tb.getObject(), columns);
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
            Assert.assertEquals(rs.getInt("inc_f2"), 10);
        }
    });
}

From source file:com.itfsw.mybatis.generator.plugins.OptimisticLockerPluginTest.java

License:Apache License

/**
 * ?SelectiveEnhancedPlugin?IncrementsPlugin?
 *//*from   ww w  . j  a  va  2s  .  c  om*/
@Test
public void testWithSelectiveEnhancedPluginAndIncrementsPlugin() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool.create(
            "scripts/OptimisticLockerPlugin/mybatis-generator-with-SelectiveEnhancedPlugin-IncrementsPlugin.xml");

    // updateWithVersionByExampleSelective
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tbExample = new ObjectUtil(loader, packagz + ".TbExample");
            ObjectUtil criteria = new ObjectUtil(tbExample.invoke("createCriteria"));
            criteria.invoke("andIdEqualTo", 1l);

            ObjectUtil tbBuilder = new ObjectUtil(loader, packagz + ".Tb$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".Tb$Builder$Inc#INC");
            tbBuilder.invoke("id", 1L);
            tbBuilder.invoke("incF1", 121l, tbBuilderInc.getObject()); // ?sql?
            tbBuilder.invoke("incF2", 5l, tbBuilderInc.getObject());
            tbBuilder.invoke("incF3", 10l);

            // selective
            ObjectUtil TbColumnId = new ObjectUtil(loader, packagz + ".Tb$Column#id");
            ObjectUtil TbColumnField1 = new ObjectUtil(loader, packagz + ".Tb$Column#field1");
            ObjectUtil TbColumnIncF1 = new ObjectUtil(loader, packagz + ".Tb$Column#incF1"); // ?sql?
            ObjectUtil TbColumnIncF2 = new ObjectUtil(loader, packagz + ".Tb$Column#incF2");
            Object columns = Array.newInstance(TbColumnField1.getCls(), 4);
            Array.set(columns, 0, TbColumnId.getObject());
            Array.set(columns, 1, TbColumnField1.getObject());
            Array.set(columns, 2, TbColumnIncF1.getObject());
            Array.set(columns, 3, TbColumnIncF2.getObject());

            // sql(?)
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(),
                    "updateWithVersionByExampleSelective", 100L, tbBuilder.invoke("build"),
                    tbExample.getObject());
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, id = 1, inc_f2 = inc_f2 + 5 , inc_f3 = 10 WHERE inc_f1 = 100 and ( ( id = '1' ) )");
            // sql(selective)
            sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateWithVersionByExampleSelective",
                    100L, tbBuilder.invoke("build"), tbExample.getObject(), columns);
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, id = 1 , field1 = 'null' , inc_f2 = inc_f2 + 5 WHERE inc_f1 = 100 and ( ( id = '1' ) )");

            // ?100?0(?)
            Object result = tbMapper.invoke("updateWithVersionByExampleSelective", 100L,
                    tbBuilder.invoke("build"), tbExample.getObject(), null);
            Assert.assertEquals(result, 0);

            // id = 1 ?0(selective )
            result = tbMapper.invoke("updateWithVersionByExampleSelective", 0L, tbBuilder.invoke("build"),
                    tbExample.getObject(), columns);
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
            Assert.assertEquals(rs.getInt("inc_f2"), 7);
        }
    });

    // updateWithVersionByPrimaryKeySelective
    tool.generate(new IBeforeCallback() {
        @Override
        public void run() throws Exception {
            DBHelper.resetDB("scripts/OptimisticLockerPlugin/init.sql");
        }
    }, new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tbBuilder = new ObjectUtil(loader, packagz + ".Tb$Builder");
            ObjectUtil tbBuilderInc = new ObjectUtil(loader, packagz + ".Tb$Builder$Inc#INC");
            tbBuilder.invoke("id", 1L);
            tbBuilder.invoke("incF1", 121l, tbBuilderInc.getObject()); // ?sql?
            tbBuilder.invoke("incF2", 5l, tbBuilderInc.getObject());
            tbBuilder.invoke("incF3", 10l);

            // selective
            ObjectUtil TbColumnId = new ObjectUtil(loader, packagz + ".Tb$Column#id");
            ObjectUtil TbColumnField1 = new ObjectUtil(loader, packagz + ".Tb$Column#field1");
            ObjectUtil TbColumnIncF1 = new ObjectUtil(loader, packagz + ".Tb$Column#incF1"); // ?sql?
            ObjectUtil TbColumnIncF2 = new ObjectUtil(loader, packagz + ".Tb$Column#incF2");
            Object columns = Array.newInstance(TbColumnField1.getCls(), 4);
            Array.set(columns, 0, TbColumnId.getObject());
            Array.set(columns, 1, TbColumnField1.getObject());
            Array.set(columns, 2, TbColumnIncF1.getObject());
            Array.set(columns, 3, TbColumnIncF2.getObject());

            // sql(?)
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(),
                    "updateWithVersionByPrimaryKeySelective", 100L, tbBuilder.invoke("build"));
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, inc_f2 = inc_f2 + 5 , inc_f3 = 10 where inc_f1 = 100 and id = 1");
            // sql(selective)
            sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateWithVersionByPrimaryKeySelective",
                    100L, tbBuilder.invoke("build"), columns);
            Assert.assertEquals(sql,
                    "update tb SET inc_f1 = inc_f1 + 1, id = 1 , field1 = 'null' , inc_f2 = inc_f2 + 5 where inc_f1 = 100 and id = 1");

            // ?100?0(?)
            Object result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 100L,
                    tbBuilder.invoke("build"), null);
            Assert.assertEquals(result, 0);

            // id = 1 ?0(selective )
            result = tbMapper.invoke("updateWithVersionByPrimaryKeySelective", 0L, tbBuilder.invoke("build"),
                    columns);
            Assert.assertEquals(result, 1);

            // ???1
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select * from tb where id = 1");
            rs.first();
            Assert.assertEquals(rs.getInt("inc_f1"), 1);
            Assert.assertEquals(rs.getInt("inc_f2"), 7);
        }
    });
}

From source file:com.itfsw.mybatis.generator.plugins.SelectiveEnhancedPluginTest.java

License:Apache License

/**
 * insertSelective/*ww  w  .ja v a  2 s.c  o  m*/
 */
@Test
public void testInsertSelective() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool
            .create("scripts/SelectiveEnhancedPlugin/mybatis-generator.xml");
    tool.generate(new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("id", 121L);
            tb.set("incF3", 10L);
            tb.set("tsIncF2", 5L);
            // selective
            ObjectUtil TbColumnId = new ObjectUtil(loader, packagz + ".Tb$Column#id");
            ObjectUtil TbColumnField1 = new ObjectUtil(loader, packagz + ".Tb$Column#field1");
            ObjectUtil TbColumnTsIncF2 = new ObjectUtil(loader, packagz + ".Tb$Column#tsIncF2");
            Object columns = Array.newInstance(TbColumnField1.getCls(), 3);
            Array.set(columns, 0, TbColumnId.getObject());
            Array.set(columns, 1, TbColumnField1.getObject());
            Array.set(columns, 2, TbColumnTsIncF2.getObject());

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "insertSelective", tb.getObject(),
                    columns);
            Assert.assertEquals(sql, "insert into tb ( id , field_1 , inc_f2 ) values ( 121 , 'null' , 5 )");
            Object result = tbMapper.invoke("insertSelective", tb.getObject(), columns);
            Assert.assertEquals(result, 1);
        }
    });
}

From source file:com.itfsw.mybatis.generator.plugins.SelectiveEnhancedPluginTest.java

License:Apache License

/**
 *  updateByExampleSelective//from   ww  w  .j  a  v a2  s.  c om
 */
@Test
public void testUpdateByExampleSelective() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool
            .create("scripts/SelectiveEnhancedPlugin/mybatis-generator.xml");
    tool.generate(new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil TbExample = new ObjectUtil(loader, packagz + ".TbExample");
            ObjectUtil criteria = new ObjectUtil(TbExample.invoke("createCriteria"));
            criteria.invoke("andIdEqualTo", 1l);

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("incF3", 10l);
            tb.set("tsIncF2", 5l);
            // selective
            ObjectUtil TbColumnField1 = new ObjectUtil(loader, packagz + ".Tb$Column#field1");
            ObjectUtil TbColumnTsIncF2 = new ObjectUtil(loader, packagz + ".Tb$Column#tsIncF2");
            Object columns = Array.newInstance(TbColumnField1.getCls(), 2);
            Array.set(columns, 0, TbColumnField1.getObject());
            Array.set(columns, 1, TbColumnTsIncF2.getObject());

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateByExampleSelective",
                    tb.getObject(), TbExample.getObject(), columns);
            Assert.assertEquals(sql, "update tb SET field_1 = 'null' , inc_f2 = 5 WHERE ( id = '1' )");
            Object result = tbMapper.invoke("updateByExampleSelective", tb.getObject(), TbExample.getObject(),
                    columns);
            Assert.assertEquals(result, 1);
        }
    });
}

From source file:com.itfsw.mybatis.generator.plugins.SelectiveEnhancedPluginTest.java

License:Apache License

/**
 *  updateByPrimaryKeySelective/*  w ww  . j  ava  2 s .  c o  m*/
 */
@Test
public void testUpdateByPrimaryKeySelective() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool
            .create("scripts/SelectiveEnhancedPlugin/mybatis-generator.xml");
    tool.generate(new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("id", 2l);
            tb.set("incF3", 10l);
            tb.set("tsIncF2", 5l);
            // selective
            ObjectUtil TbColumnField1 = new ObjectUtil(loader, packagz + ".Tb$Column#field1");
            ObjectUtil TbColumnTsIncF2 = new ObjectUtil(loader, packagz + ".Tb$Column#tsIncF2");
            Object columns = Array.newInstance(TbColumnField1.getCls(), 2);
            Array.set(columns, 0, TbColumnField1.getObject());
            Array.set(columns, 1, TbColumnTsIncF2.getObject());

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "updateByPrimaryKeySelective",
                    tb.getObject(), columns);
            Assert.assertEquals(sql, "update tb SET field_1 = 'null' , inc_f2 = 5 where id = 2");
            Object result = tbMapper.invoke("updateByPrimaryKeySelective", tb.getObject(), columns);
            Assert.assertEquals(result, 1);
        }
    });
}

From source file:com.itfsw.mybatis.generator.plugins.SelectiveEnhancedPluginTest.java

License:Apache License

/**
 *  upsertSelective//from w  w  w . j  a  v  a 2  s  .  c o  m
 */
@Test
public void testUpsertSelective() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool
            .create("scripts/SelectiveEnhancedPlugin/mybatis-generator.xml");
    tool.generate(new AbstractShellCallback() {
        @Override
        public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception {
            ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper")));

            ObjectUtil tb = new ObjectUtil(loader, packagz + ".Tb");
            tb.set("id", 10l);
            tb.set("incF3", 10l);
            tb.set("tsIncF2", 5l);
            // selective
            ObjectUtil TbColumnId = new ObjectUtil(loader, packagz + ".Tb$Column#id");
            ObjectUtil TbColumnField1 = new ObjectUtil(loader, packagz + ".Tb$Column#field1");
            ObjectUtil TbColumnTsIncF2 = new ObjectUtil(loader, packagz + ".Tb$Column#tsIncF2");
            Object columns = Array.newInstance(TbColumnField1.getCls(), 3);
            Array.set(columns, 0, TbColumnId.getObject());
            Array.set(columns, 1, TbColumnField1.getObject());
            Array.set(columns, 2, TbColumnTsIncF2.getObject());

            // sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "upsertSelective", tb.getObject(),
                    columns);
            Assert.assertEquals(sql,
                    "insert into tb ( id , field_1 , inc_f2 ) values ( 10 , 'null' , 5 ) on duplicate key update id = 10 , field_1 = 'null' , inc_f2 = 5");
            Object result = tbMapper.invoke("upsertSelective", tb.getObject(), columns);
            Assert.assertEquals(result, 1);
        }
    });
}