⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 daohibernatetest.java

📁 基于java的组号查询模块
💻 JAVA
字号:
package com.lily.dap.dao;

import java.sql.ResultSet;
import java.util.List;

import com.lily.dap.model.Module;
import com.lily.dap.model.QueryCondition;
import com.lily.dap.model.QueryExpression;
import com.lily.dap.model.right.RightObject;
import com.lily.dap.model.right.RightOperation;

/**
 * 针对 Dao 提供的各种方法进行测试
 * 测试使用的库表包括(module, right_object, right_operation),初始数据从sample-data.xml中导入
 * 
 * @author zouxuemo
 *
 */
public class DaoHibernateTest extends BaseDaoTestCase {
	private Dao dao;
    
	/**
	 * @param dao the dao to set
	 */
	public void setDao(Dao dao) {
		this.dao = dao;
	}

	public void testGet() {
		List rightObjectList = dao.gets(RightObject.class, new QueryCondition().putCondition("class_id", 1));
		assertEquals(3, rightObjectList.size());
		
		List rightOperationList = dao.gets(RightOperation.class, new QueryCondition().putCondition("objectCode", "system"));
		assertEquals(3, rightOperationList.size());
		
		rightOperationList = dao.gets(RightOperation.class, new QueryCondition().putCondition("objectCode", QueryExpression.OP_IN, new String[]{"system", "right", "organize"}));
		assertTrue(rightOperationList.size() > 0);
	}

	public void testSaveRemove() {
		Module module = new Module();
		module.setCode("cms");
		module.setName("内容管理系统");
		
		dao.save(module);
		assertTrue(module.getId() > 0);
		
		int id = module.getId();
		
		List moduleList = dao.gets(Module.class, new QueryCondition().putCondition("code", "cms"));
		assertEquals(1, moduleList.size());
		
		dao.remove(Module.class, new Integer(id));
		
		moduleList = dao.gets(Module.class, new QueryCondition().putCondition("code", "cms"));
		assertEquals(0, moduleList.size());
	}

	public void testExecuteFindStringIntInt() {
		String hql = "from RightOperation";
		List result = dao.executeFind(hql, 2, 2);
		
		assertEquals(2, result.size());
	}

	public void testFindUniqueResultString() {
		String hql = "from RightOperation";
		RightOperation rightOperation = (RightOperation)dao.findUniqueResult(hql);
		assertNotNull(rightOperation);
		
		hql = "select count(*) from RightOperation where objectCode = 'system'";
		Long count = (Long)dao.findUniqueResult(hql);
		assertEquals(3, count.longValue());
		
		hql = "select count(*) from RightOperation where objectCode = '[noobject]'";
		count = (Long)dao.findUniqueResult(hql);
		assertEquals(0, count.longValue());
		
		hql = "from RightOperation where objectCode = '[noobject]'";
		RightOperation ro = (RightOperation)dao.findUniqueResult(hql);
		assertNull(ro);
	}

	public void testExecuteSQLUpdateString() {
		String sql = "insert into module (code, name) values('cms', '内容管理系统')";
		try {
			dao.executeSQLUpdate(sql);
		} catch (Exception e) {
			fail("executeSQLUpdate failure");
		}
		
		List moduleList = dao.gets(Module.class, new QueryCondition().putCondition("code", "cms"));
		assertEquals(1, moduleList.size());

		sql = "delete from module where code = 'cms'";
		try {
			dao.executeSQLUpdate(sql);
		} catch (Exception e) {
			fail("executeSQLUpdate failure");
		}
		
		moduleList = dao.gets(Module.class, new QueryCondition().putCondition("code", "cms"));
		assertEquals(0, moduleList.size());
	}

	public void testCount() {
		QueryCondition queryCondition = new QueryCondition().putCondition("objectCode", "system").setPageSize(2).setPageNo(2);
		long count = dao.count(RightOperation.class, queryCondition);
		assertEquals(3, count);
	}

	public void testExecuteSQLCount() {
		String sql = "select * from module where code = 'oa'";
		long count = dao.executeSQLCount(sql);
		assertEquals(1, count);
		
		sql = "select objectCode, count(code) as cnt from right_operation where objectCode = 'system' group by objectCode";
		count = dao.executeSQLCount(sql);
		assertEquals(1, count);

		/*
		 * 以下是测试使用EhCache作缓存调用CountCacheAdvice是否起作用
		 * 
		 * 测试前,修改web/WEB-INF/classes/ehcache.xml文件的超期时间以方便测试
		 *  <cache name="com.lily.dap.QUERY_CACHE"
		 *      maxElementsInMemory="300"
		 *      eternal="false"
		 *      overflowToDisk="true"
		 *      timeToIdleSeconds="10"
		 *      timeToLiveSeconds="10"
		 *      diskPersistent="false"
		 *      />
		 */
//		long currentTimeMillis = System.currentTimeMillis();
//		while (System.currentTimeMillis() < currentTimeMillis + 5000)
//			;
//		
//		sql = "select objectCode, count(code) as cnt from right_operation where objectCode = 'system' group by objectCode";
//		count = dao.executeSQLCount(sql);
//		assertEquals(1, count);
//		
//		currentTimeMillis = System.currentTimeMillis();
//		while (System.currentTimeMillis() < currentTimeMillis + 15000)
//			;
//		
//		sql = "select objectCode, count(code) as cnt from right_operation where objectCode = 'system' group by objectCode";
//		count = dao.executeSQLCount(sql);
//		assertEquals(1, count);
	}
	
	public void testResultSet2List() {
		String sql = "select objectCode, count(code) as cnt from right_operation where objectCode = 'system' group by objectCode";
		ResultSet rs = dao.executeSQLQuery(sql);
		List result = dao.ResultSet2List(rs);
		assertEquals(1, result.size());
		System.out.println(result);
	}
	
//	public void testQueryClassQueryConditionQueryCallback() {
//		QueryCondition queryCondition = new QueryCondition().putCondition("objectCode", "system").setPageSize(2).setPageNo(2);
//		QueryResult result = dao.query(RightOperation.class, queryCondition, null);
//		
//		assertEquals(1, ((List)result.getResult()).size());
//		assertEquals(3, result.getTotalCount());
//	}
//
//	public void testQueryStringIntIntTransitionCallback() {
//		String sql = "select * from right_operation where objectCode = 'system'";
//		QueryResult result = dao.query(sql, 2, 2, new TransitionCallback() {
//			public Object transition(ResultSet rs) throws SQLException {
//				RightOperation rightOperation = new RightOperation();
//				rightOperation.setId(rs.getInt("id"));
//				rightOperation.setCode(rs.getString("code"));
//				rightOperation.setName(rs.getString("name"));
//				rightOperation.setDes(rs.getString("des"));
//				
//				return rightOperation;
//			}
//			
//		});
//		
//		assertEquals(1, ((List)result.getResult()).size());
//		assertEquals(3, result.getTotalCount());
//	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -