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

📄 sqlloadertest.java

📁 hibernate 开源框架的代码 jar包希望大家能喜欢
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
//$Id: SQLLoaderTest.java 11383 2007-04-02 15:34:02Z steve.ebersole@jboss.com $package org.hibernate.test.legacy;import java.sql.SQLException;import java.util.ArrayList;import java.util.Date;import java.util.List;import junit.framework.Test;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Transaction;import org.hibernate.classic.Session;import org.hibernate.dialect.HSQLDialect;import org.hibernate.dialect.MySQLDialect;import org.hibernate.dialect.Oracle9Dialect;import org.hibernate.dialect.OracleDialect;import org.hibernate.dialect.PostgreSQLDialect;import org.hibernate.dialect.TimesTenDialect;import org.hibernate.junit.functional.FunctionalTestClassTestSuite;public class SQLLoaderTest extends LegacyTestCase {	static int nextInt = 1;	static long nextLong = 1;	public SQLLoaderTest(String arg) {		super(arg);	}	public String[] getMappings() {		return new String[] {			"legacy/ABC.hbm.xml",			"legacy/Category.hbm.xml",			"legacy/Simple.hbm.xml",			"legacy/Fo.hbm.xml",			"legacy/SingleSeveral.hbm.xml",			"legacy/Componentizable.hbm.xml",            "legacy/CompositeIdId.hbm.xml"		};	}	public static Test suite() {		return new FunctionalTestClassTestSuite( SQLLoaderTest.class );	}	public void testTS() throws Exception {		if (getDialect() instanceof Oracle9Dialect) return;		Session session = openSession();		Transaction txn = session.beginTransaction();		Simple sim = new Simple();		sim.setDate( new Date() );		session.save( sim, new Long(1) );		Query q = session.createSQLQuery("select {sim.*} from Simple {sim} where {sim}.date_ = ?", "sim", Simple.class);		q.setTimestamp( 0, sim.getDate() );		assertTrue ( q.list().size()==1 );		session.delete(sim);		txn.commit();		session.close();	}	public void testFindBySQLStar() throws HibernateException, SQLException {		Session session = openSession();		session.delete("from Assignable");		session.delete("from Category");		session.delete("from Simple");		session.delete("from A");		Category s = new Category();		s.setName(String.valueOf(nextLong++));		session.save(s);		Simple simple = new Simple();		simple.init();		session.save(simple, new Long(nextLong++));		A a = new A();		session.save(a);		B b = new B();		session.save(b);		session.flush();		session.createSQLQuery("select {category.*} from category {category}", "category", Category.class).list();		session.createSQLQuery("select {simple.*} from Simple {simple}", "simple", Simple.class).list();		session.createSQLQuery("select {a.*} from TA {a}", "a", A.class).list();		session.connection().commit();		session.close();	}	public void testFindBySQLProperties() throws HibernateException, SQLException {			Session session = openSession();			session.delete("from Category");			Category s = new Category();			s.setName(String.valueOf(nextLong++));			session.save(s);			s = new Category();			s.setName("WannaBeFound");			session.flush();			Query query = session.createSQLQuery("select {category.*} from category {category} where {category}.name = :name", "category", Category.class);			query.setProperties(s);			//query.setParameter("name", s.getName());			query.list();			query = session.createSQLQuery("select {category.*} from category {category} where {category}.name in (:names)", "category", Category.class);			String[] str = new String[] { "WannaBeFound", "NotThere" };			query.setParameterList("names", str);						query.uniqueResult();						session.connection().commit();			session.close();								}	public void testFindBySQLAssociatedObjects() throws HibernateException, SQLException {		Session s = openSession();		s.delete("from Assignable");		s.delete("from Category");		Category c = new Category();		c.setName("NAME");		Assignable assn = new Assignable();		assn.setId("i.d.");		List l = new ArrayList();		l.add(c);		assn.setCategories(l);		c.setAssignable(assn);		s.save(assn);		s.flush();		s.connection().commit();		s.close();		s = openSession();		List list = s.createSQLQuery("select {category.*} from category {category}", "category", Category.class).list();		list.get(0);		s.connection().commit();		s.close();				if ( getDialect() instanceof MySQLDialect ) return;		if ( getDialect() instanceof OracleDialect ) return; // todo : this fails on Oracle8 also		s = openSession();		Query query = s.getNamedQuery("namedsql");		assertNotNull(query);		list = query.list();        assertNotNull(list);				Object[] values = (Object[]) list.get(0);		assertNotNull(values[0]);		assertNotNull(values[1]);		assertTrue("wrong type: " + values[0].getClass(), values[0] instanceof Category);		assertTrue("wrong type: " + values[1].getClass(), values[1] instanceof Assignable);				s.connection().commit();		s.close();	}	public void testPropertyResultSQL() throws HibernateException, SQLException {				if ( getDialect() instanceof MySQLDialect ) return;					Session s = openSession();		s.delete("from Assignable");		s.delete("from Category");		Category c = new Category();		c.setName("NAME");		Assignable assn = new Assignable();		assn.setId("i.d.");		List l = new ArrayList();		l.add(c);		assn.setCategories(l);		c.setAssignable(assn);		s.save(assn);		s.flush();		s.connection().commit();		s.close();		s = openSession();		Query query = s.getNamedQuery("nonaliasedsql");		assertNotNull(query);		List list = query.list();        assertNotNull(list);				assertTrue(list.get(0) instanceof Category);				s.connection().commit();		s.close();	}		public void testFindBySQLMultipleObject() throws HibernateException, SQLException {		Session s = openSession();		s.delete("from Assignable");		s.delete("from Category");		s.flush();		s.connection().commit();		s.close();		s = openSession();		Category c = new Category();		c.setName("NAME");		Assignable assn = new Assignable();		assn.setId("i.d.");		List l = new ArrayList();		l.add(c);		assn.setCategories(l);		c.setAssignable(assn);		s.save(assn);		s.flush();		c = new Category();		c.setName("NAME2");		assn = new Assignable();		assn.setId("i.d.2");		l = new ArrayList();		l.add(c);		assn.setCategories(l);		c.setAssignable(assn);		s.save(assn);		s.flush();		assn = new Assignable();		assn.setId("i.d.3");		s.save(assn);		s.flush();		s.connection().commit();		s.close();		if ( getDialect() instanceof MySQLDialect ) return;		s = openSession();		List list = s.createSQLQuery("select {category.*}, {assignable.*} from category {category}, \"assign-able\" {assignable}", new String[] { "category", "assignable" }, new Class[] { Category.class, Assignable.class }).list();		assertTrue(list.size() == 6); // crossproduct of 2 categories x 3 assignables		assertTrue(list.get(0) instanceof Object[]);		s.connection().commit();		s.close();	}	public void testFindBySQLParameters() throws HibernateException, SQLException {		Session s = openSession();		s.delete("from Assignable");		s.delete("from Category");		s.flush();		s.connection().commit();		s.close();		s = openSession();		Category c = new Category();		c.setName("Good");		Assignable assn = new Assignable();		assn.setId("i.d.");		List l = new ArrayList();		l.add(c);		assn.setCategories(l);		c.setAssignable(assn);		s.save(assn);		s.flush();		c = new Category();		c.setName("Best");		assn = new Assignable();		assn.setId("i.d.2");		l = new ArrayList();		l.add(c);		assn.setCategories(l);		c.setAssignable(assn);		s.save(assn);		s.flush();		c = new Category();		c.setName("Better");		assn = new Assignable();		assn.setId("i.d.7");		l = new ArrayList();		l.add(c);		assn.setCategories(l);		c.setAssignable(assn);		s.save(assn);		s.flush();		assn = new Assignable();		assn.setId("i.d.3");		s.save(assn);		s.flush();		s.connection().commit();		s.close();		s = openSession();		Query basicParam = s.createSQLQuery("select {category.*} from category {category} where {category}.name = 'Best'", "category", Category.class);		List list = basicParam.list();		assertEquals(1, list.size());		Query unnamedParam = s.createSQLQuery("select {category.*} from category {category} where {category}.name = ? or {category}.name = ?", "category", Category.class);		unnamedParam.setString(0, "Good");		unnamedParam.setString(1, "Best");		list = unnamedParam.list();		assertEquals(2, list.size());		Query namedParam = s.createSQLQuery("select {category.*} from category {category} where ({category}.name=:firstCat or {category}.name=:secondCat)", "category", Category.class);		namedParam.setString("firstCat", "Better");		namedParam.setString("secondCat", "Best");		list = namedParam.list();		assertEquals(2, list.size());		s.connection().commit();		s.close();	}	public void testEscapedJDBC() throws HibernateException, SQLException {		if ( 				getDialect() instanceof HSQLDialect || 				getDialect() instanceof PostgreSQLDialect		) return;		Session session = openSession();		session.delete("from A");		A savedA = new A();		savedA.setName("Max");		session.save(savedA);		B savedB = new B();		session.save(savedB);

⌨️ 快捷键说明

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