Java源码示例:org.apache.ibatis.session.SqlSession

示例1
@BeforeClass
public static void setUp() throws Exception {
  // create a SqlSessionFactory
  Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/complex_type/mybatis-config.xml");
  sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  reader.close();

  // populate in-memory database
  SqlSession session = sqlSessionFactory.openSession();
  Connection conn = session.getConnection();
  reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/complex_type/CreateDB.sql");
  ScriptRunner runner = new ScriptRunner(conn);
  runner.setLogWriter(null);
  runner.runScript(reader);
  reader.close();
  session.close();
}
 
示例2
@Test
public void testAdderAsSelectDoubleCall2() {
  SqlSession sqlSession = sqlSessionFactory.openSession();
  try {
    Parameter parameter = new Parameter();
    parameter.setAddend1(2);
    parameter.setAddend2(3);

    SPMapper spMapper = sqlSession.getMapper(SPMapper.class);

    spMapper.adderAsSelect(parameter);
    assertEquals((Integer) 5, parameter.getSum());

    parameter = new Parameter();
    parameter.setAddend1(4);
    parameter.setAddend2(5);
    spMapper.adderAsSelect(parameter);
    assertEquals((Integer) 9, parameter.getSum());

  } finally {
    sqlSession.close();
  }
}
 
示例3
/**
 * Custom collections with nested resultMap.
 *
 * @throws Exception
 */
@Test
public void testSelectListWithNestedResultMap() throws Exception {
    String xmlConfig = "org/apache/ibatis/submitted/custom_collection_handling/MapperConfig.xml";
    SqlSessionFactory sqlSessionFactory = getSqlSessionFactoryXmlConfig(xmlConfig);
    SqlSession sqlSession = sqlSessionFactory.openSession();
    try {
        List<Person> list = sqlSession.selectList("org.apache.ibatis.submitted.custom_collection_handling.PersonMapper.findWithResultMap");
        assertEquals(2, list.size());
        assertEquals(2, list.get(0).getContacts().size());
        assertEquals(1, list.get(1).getContacts().size());
        assertEquals("3 Wall Street", list.get(0).getContacts().get(1).getAddress());
    } finally {
        sqlSession.close();
    }
}
 
示例4
/**
 * 插入完整数据
 */
@Test
public void testDynamicInsert() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        CountryTMapper mapper = sqlSession.getMapper(CountryTMapper.class);
        CountryT country = new CountryT();
        country.setId(10086);
        country.setCountrycode("CN");
        country.setCountryname("天朝");
        Assert.assertEquals(1, mapper.insert(country));

        //查询CN结果
        country = new CountryT();
        country.setCountrycode("CN");
        List<CountryT> list = mapper.select(country);

        Assert.assertEquals(2, list.size());
        //屏蔽的数据是null
        Assert.assertNull(list.get(0).getCountrycode());
        //删除插入的数据,以免对其他测试产生影响
        Assert.assertEquals(1, mapper.deleteByPrimaryKey(10086));
    } finally {
        sqlSession.close();
    }
}
 
示例5
/**
 * 主要测试删除
 */
@Test
public void testDelete() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        UserLogin2Mapper mapper = sqlSession.getMapper(UserLogin2Mapper.class);
        //查询总数
        Assert.assertEquals(10, mapper.selectCount(new UserLogin2()));
        //根据主键查询
        UserLogin2Key key = new UserLogin2();
        key.setLogid(1);
        key.setUsername("test1");
        UserLogin2 userLogin = mapper.selectByPrimaryKey(key);
        //根据主键删除
        Assert.assertEquals(1, mapper.deleteByPrimaryKey(key));

        //查询总数
        Assert.assertEquals(9, mapper.selectCount(new UserLogin2()));
        //插入
        Assert.assertEquals(1, mapper.insert(userLogin));
    } finally {
        sqlSession.close();
    }
}
 
示例6
/**
 * 插入完整数据
 */
@Test
public void testINDENTITYInsert2() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        CountryIMapper mapper = sqlSession.getMapper(CountryIMapper.class);
        CountryI country = new CountryI();
        country.setId(10086);
        country.setCountrycode("CN");
        country.setCountryname("天朝");
        Assert.assertEquals(1, mapper.insert(country));

        //查询CN结果
        country = new CountryI();
        country.setCountrycode("CN");
        List<CountryI> list = mapper.select(country);

        Assert.assertEquals(1, list.size());
        Assert.assertNotNull(list.get(0).getCountryname());
        Assert.assertEquals("天朝", list.get(0).getCountryname());
        //删除插入的数据,以免对其他测试产生影响
        Assert.assertEquals(1, mapper.deleteByPrimaryKey(10086));
    } finally {
        sqlSession.close();
    }
}
 
示例7
@BeforeClass
public static void setUp() throws Exception {
  // create an SqlSessionFactory
  Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/nestedresulthandler_association/mybatis-config.xml");
  sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  reader.close();

  // populate in-memory database
  SqlSession session = sqlSessionFactory.openSession();
  Connection conn = session.getConnection();
  reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/nestedresulthandler_association/CreateDB.sql");
  ScriptRunner runner = new ScriptRunner(conn);
  runner.setLogWriter(null);
  runner.runScript(reader);
  reader.close();
  session.close();
}
 
示例8
/**
 * 插入空数据,id不能为null,会报错
 */
@Test
public void testDynamicInsertAll() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        Country2Mapper mapper = sqlSession.getMapper(Country2Mapper.class);
        Country2 country2 = new Country2();
        country2.setCountrycode("CN");
        country2.setId(100);
        Assert.assertEquals(1, mapper.insert(country2));

        country2 = mapper.select(country2).get(0);
        Assert.assertNotNull(country2);

        Assert.assertEquals(1, mapper.deleteByPrimaryKey(country2.getId()));

    } finally {
        sqlSession.close();
    }
}
 
示例9
@Test
public void testOffset() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    try {
        PageHelper.startPage(1, 6);
        List<User> list = userMapper.selectAll();
        assertEquals(6, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());

        PageHelper.offsetPage(6, 20);
        list = userMapper.selectAll();
        PageInfo<User> pageInfo = new PageInfo<User>(list);
        System.out.println(pageInfo.toString());
        assertEquals(2, ((Page<?>) list).getPageNum());
        assertEquals(20, list.size());
        assertEquals(183, ((Page<?>) list).getTotal());
    } finally {
        sqlSession.close();
    }
}
 
示例10
/**
 * union的count查询sql特殊
 */
@Test
public void testExists() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    try {
        //获取第1页,10条内容,默认查询总数count
        PageHelper.startPage(1, 10);
        List<User> list = userMapper.selectExists();
        assertEquals(101, list.get(0).getId());
        assertEquals(10, list.size());
        assertEquals(83, ((Page<?>) list).getTotal());

        //获取第1页,10条内容,默认查询总数count
        PageHelper.startPage(2, 10);
        list = userMapper.selectExists();
        assertEquals(111, list.get(0).getId());
        assertEquals(10, list.size());
        assertEquals(83, ((Page<?>) list).getTotal());
    } finally {
        sqlSession.close();
    }
}
 
示例11
@BeforeClass
public static void setUp() throws Exception {
  // create an SqlSessionFactory
  Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/primitives/mybatis-config.xml");
  sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  reader.close();

  // populate in-memory database
  SqlSession session = sqlSessionFactory.openSession();
  Connection conn = session.getConnection();
  reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/primitives/CreateDB.sql");
  ScriptRunner runner = new ScriptRunner(conn);
  runner.setLogWriter(null);
  runner.runScript(reader);
  reader.close();
  session.close();
}
 
示例12
@Test
public void shouldHandleComplexNullItem() {
  SqlSession sqlSession = sqlSessionFactory.openSession();
  try {
    Mapper mapper = sqlSession.getMapper(Mapper.class);
    User user1 = new User();
    user1.setId(2);
    user1.setName("User2");
    List<User> users = new ArrayList<User>();
    users.add(user1);
    users.add(null);
    int count = mapper.countByUserList(users);
    Assert.assertEquals(1, count);
  } finally {
    sqlSession.close();
  }
}
 
示例13
@BeforeClass
public static void setUp() throws Exception {
  // create a SqlSessionFactory
  Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/nestedresulthandler/mybatis-config.xml");
  sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  reader.close();

  // populate in-memory database
  SqlSession session = sqlSessionFactory.openSession();
  Connection conn = session.getConnection();
  reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/nestedresulthandler/CreateDB.sql");
  ScriptRunner runner = new ScriptRunner(conn);
  runner.setLogWriter(null);
  runner.runScript(reader);
  reader.close();
  session.close();
}
 
示例14
/**
 * 测试 logicalDeleteByPrimaryKey
 */
@Test
public void testLogicalDeleteByPrimaryKey() throws Exception {
    MyBatisGeneratorTool tool = MyBatisGeneratorTool.create("scripts/LogicalDeletePlugin/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")));

            // 验证sql
            String sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "logicalDeleteByPrimaryKey", 2l);
            Assert.assertEquals(sql, "update tb set del_flag = 1 where id = 2");
            // 验证执行
            Object result = tbMapper.invoke("logicalDeleteByPrimaryKey", 2l);
            Assert.assertEquals(result, 1);
            ResultSet rs = DBHelper.execute(sqlSession.getConnection(), "select del_flag from tb where id = 2");
            rs.first();
            Assert.assertEquals(rs.getInt("del_flag"), 1);
        }
    });
}
 
示例15
/**
 * 查询不存在的结果
 */
@Test
public void testDynamicSelectByPrimaryKeyZero() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        CountryMapper mapper = sqlSession.getMapper(CountryMapper.class);
        Assert.assertNull(mapper.selectByPrimaryKey(new Country()));
        Assert.assertNull(mapper.selectByPrimaryKey(new HashMap<String,Object>()));
        Assert.assertNull(mapper.selectByPrimaryKey(-10));
        Assert.assertNull(mapper.selectByPrimaryKey(0));
        Assert.assertNull(mapper.selectByPrimaryKey(1000));
        Assert.assertNull(mapper.selectByPrimaryKey(null));
    } finally {
        sqlSession.close();
    }
}
 
示例16
/**
 * 根据查询条件进行查询
 */
@Test
public void testDynamicSelect() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        CountryTMapper mapper = sqlSession.getMapper(CountryTMapper.class);
        CountryT country = new CountryT();
        country.setId(174);
        country.setCountrycode("US");
        List<CountryT> countryList = mapper.select(country);

        Assert.assertEquals(1, countryList.size());
        Assert.assertEquals(true, countryList.get(0).getId() == 174);
        Assert.assertNotNull(countryList.get(0).getCountryname());
        Assert.assertNull(countryList.get(0).getCountrycode());
    } finally {
        sqlSession.close();
    }
}
 
示例17
@Test
public void testDistinct() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        CountryMapper mapper = sqlSession.getMapper(CountryMapper.class);
        Example example = Example.builder(Country.class)
                .distinct()
                .build();
        List<Country> countries = mapper.selectByExample(example);
        Assert.assertEquals(183, countries.size());

        // distinct和order by冲突问题
        Example example0 = Example.builder(Country.class)
                .selectDistinct("id", "countryname").build();
        List<Country> countries0 = mapper.selectByExample(example0);
        Assert.assertEquals(183, countries0.size());
    } finally {
        sqlSession.close();
    }
}
 
示例18
@Before
public void setUp() throws Exception {
  // create a SqlSessionFactory
  Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/blocking_cache/mybatis-config.xml");
  sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  reader.close();

  // populate in-memory database
  SqlSession session = sqlSessionFactory.openSession();
  Connection conn = session.getConnection();
  reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/blocking_cache/CreateDB.sql");
  ScriptRunner runner = new ScriptRunner(conn);
  runner.setLogWriter(null);
  runner.runScript(reader);
  reader.close();
  session.close();
}
 
示例19
@Test
public void testDynamicSelectWithTypeHandler() {
  SqlSession sqlSession = sqlSessionFactory.openSession();
  try {
    List<Name> names = new ArrayList<Name>();

    Name name = new Name();
    name.setFirstName("Fred");
    name.setLastName("Flintstone");
    names.add(name);

    name = new Name();
    name.setFirstName("Barney");
    name.setLastName("Rubble");
    names.add(name);

    Parameter parameter = new Parameter();
    parameter.setNames(names);

    List<Map<String, Object>> answer = sqlSession.selectList("org.apache.ibatis.submitted.dynsql2.dynamicSelectWithTypeHandler", parameter);

    assertTrue(answer.size() == 2);
  } finally {
    sqlSession.close();
  }
}
 
示例20
/**
 * 更新执行器时间
 *
 * @param sqlSession
 * @param heatBeatEvent
 */
private void updateExecutorTime(SqlSession sqlSession, HeatBeatEvent heatBeatEvent) {
    //更新主机
    NickleSchedulerExecutorMapper executorMapper = sqlSession.getMapper(NickleSchedulerExecutorMapper.class);
    String ip = heatBeatEvent.getIp();
    Integer port = heatBeatEvent.getPort();
    log.info("更新主机updateTime:{}", heatBeatEvent);
    int count = executorMapper.updateByIpAndPort(heatBeatEvent.getIp(), heatBeatEvent.getPort(), System.currentTimeMillis());
    if (count == 0) {
        log.info("主机已被删除,将再次增加主机");
        //插入主机
        Delegate.insertExecutor(sqlSession, ip, port);
        //插入关联表
        List<String> jobNameList = heatBeatEvent.getJobNameList();
        for (String jobName : jobNameList) {
            Delegate.insertExecutorJob(sqlSession, ip, port, jobName);
        }
    }
    //回复心跳信息
    getSender().tell(HEARTBEAT_OK, getSelf());
}
 
示例21
@Test
public void testSelectRolesByUserAndRole() {
    SqlSession sqlSession = getSqlSession();

    try {
        SysUserMapper sysUserMapper = sqlSession.getMapper(SysUserMapper.class);

        SysUser sysUser = new SysUser();
        sysUser.setId(1L);
        SysRole sysRole = new SysRole();
        sysRole.setEnabled(Enabled.enabled);

        List<SysRole> sysRoleList = sysUserMapper.selectRolesByUserAndRole(sysUser, sysRole);

        Assert.assertNotNull(sysRoleList);
        Assert.assertTrue(sysRoleList.size() > 0);
    } finally {
        sqlSession.rollback();
        sqlSession.close();
    }
}
 
示例22
@Test
public void testAnnotatedUpdateTable2WithSelectKeyWithKeyMap() {
    SqlSession sqlSession = sqlSessionFactory.openSession();

    try {
      Name name = new Name();
      name.setName("barney");
      AnnotatedMapper mapper = sqlSession.getMapper(AnnotatedMapper.class);
      int rows = mapper.insertTable2WithSelectKeyWithKeyMap(name);
      assertEquals(1, rows);
      assertEquals(22, name.getNameId());
      assertEquals("barney_fred", name.getGeneratedName());
      
      name.setName("Wilma");
      rows = mapper.updateTable2WithSelectKeyWithKeyMap(name);
      assertEquals(1, rows);
      assertEquals(22, name.getNameId());
      assertEquals("Wilma_fred", name.getGeneratedName());
    } finally {
      sqlSession.close();
    }
}
 
示例23
@Test
public void testUpdate() {
    SqlSession sqlSession = getSqlSession();
    try {
        UserTimestampMapper mapper = sqlSession.getMapper(UserTimestampMapper.class);
        UserTimestamp user = mapper.selectByPrimaryKey(999);
        assertNotNull(user);
        Timestamp joinDate = user.getJoinDate();
        int count = mapper.updateByPrimaryKey(user);
        assertEquals(1, count);

        user = mapper.selectByPrimaryKey(999);
        assertFalse(joinDate.equals(user.getJoinDate()));
    } finally {
        sqlSession.close();
    }
}
 
示例24
@Test
public void testUpdateByExample2() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        CountryMapper mapper = sqlSession.getMapper(CountryMapper.class);
        Country country = new Country();
        country.setCountryname("天朝");
        country.setId(1000);


        CountryExample example = new CountryExample();
        example.createCriteria().andIdEqualTo(35);
        int count = mapper.updateByExample(country, example);
        Assert.assertEquals(1, count);

        example = new CountryExample();
        example.createCriteria().andCountrycodeIsNull();
        count = mapper.selectCountByExample(example);
        Assert.assertEquals(1, count);
    } finally {
        sqlSession.rollback();
        sqlSession.close();
    }
}
 
示例25
/**
 * 主要测试删除
 */
@Test
public void testDynamicDelete() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        CountryMapper mapper = sqlSession.getMapper(CountryMapper.class);
        //查询总数
        Assert.assertEquals(183, mapper.selectCount(new Country()));
        //查询100
        Country country = mapper.selectByPrimaryKey(100);
        //根据主键删除
        Assert.assertEquals(1, mapper.deleteByPrimaryKey(100));
        //查询总数
        Assert.assertEquals(182, mapper.selectCount(new Country()));
        //插入
        Assert.assertEquals(1, mapper.insert(country));
    } finally {
        sqlSession.close();
    }
}
 
示例26
/**
 * Gets the clazzes.
 *
 * @return the clazzes
 */
public List<CmsClazz> getClazzes() {
	SqlSession session = sqlSessionFactory.openSession();
	List<CmsClazz> clazzes;
	try {
		ClazzMapper mapper = session.getMapper(ClazzMapper.class);
		clazzes = mapper.getClazzes();
		for(CmsClazz clazz : clazzes) {
			clazz.setMdAttributes(mapper.getClazzAttrs(clazz.getClassId()));
			clazz.setFromRelations(mapper.getFromClazzRelations(clazz.getClassId()));
			clazz.setToRelations(mapper.getToClazzRelations(clazz.getClassId()));
		}
	} finally {
		session.close();
	}
	return clazzes;
}
 
示例27
@Test
public void test3ReadNulls() {
    try (SqlSession sess = sessionFactory.openSession()) {
        JsonMapper mapper = sess.getMapper(JsonMapper.class);
        JsonEntity e1 = mapper.get(1);
        assertThat(e1.getJsonArray().isJsonNull()).isTrue();
        assertThat(e1.getJsonObject().isJsonNull()).isTrue();

        JsonEntity e2 = mapper.get(2);
        assertThat(e2.getJsonArray().isJsonNull()).isTrue();
        assertThat(e2.getJsonObject().isJsonNull()).isTrue();
    }
}
 
示例28
@Test(expected = PersistenceException.class)
public void testSafeUpdate() {
    SqlSession sqlSession = getSqlSession();
    try {
        CountryMapper mapper = sqlSession.getMapper(CountryMapper.class);
        mapper.updateByExample(new Country(), new Example(Country.class));
    } finally {
        sqlSession.close();
    }
}
 
示例29
@Test
public void shouldGetAUser() {
  SqlSession sqlSession = sqlSessionFactory.openSession();
  try {
    Mapper mapper = sqlSession.getMapper(Mapper.class);
    User user = new User();
    user.setId(1);
    user.setName("Justin");
    user.setFirstAttr(new String[] { "asd", "asd" });
    user.setSecondAttr(new String[] { "fds", "fds" });
    mapper.insertUser(user);
  } finally {
    sqlSession.close();
  }
}
 
示例30
/**
 * 查询
 */
@Test
public void testSelect() {
    SqlSession sqlSession = MybatisHelper.getSqlSession();
    try {
        UserLogin2Mapper mapper = sqlSession.getMapper(UserLogin2Mapper.class);
        UserLogin2 userLogin = new UserLogin2();
        userLogin.setUsername("test1");
        List<UserLogin2> userLogins = mapper.select(userLogin);
        Assert.assertEquals(5, userLogins.size());
    } finally {
        sqlSession.close();
    }
}