Java类 – 如何将Generic Object传递给函数
这是我的基本function:
public static void main(String[] a) throws Exception { Session sessione = HibernateUtil.getSessionFactory().openSession(); Query query = sessione.createSQLQuery("select * from User").addEntity(User.class); List rows = query.list(); Iterator it = rows.iterator(); while (it.hasNext()) { User usr = (User) it.next(); System.out.println(usr.getEmail()); System.out.println(usr.getName()); System.out.println(usr.getIdUser()); System.out.println(usr.getUser()); }
此function能够连接并在我的数据库上执行查询…
我想创建相同的函数,但更通用…前一个特定于一个表( User
),新的必须能够接受查询的String
参数作为输入,以及查询将在哪个类类型被执行。 这将允许我只使用一行来执行查询。
它应该是这样的:
public static void queryResult(String query, ) { Session sessione = HibernateUtil.getSessionFactory().openSession(); Query qy = sessione.createSQLQuery(query).addEntity(.class); List<> rows = qy.list(); Iterator it = rows.iterator(); while (it.hasNext()) { obj = () it.next(); } }
你在哪里找到ClassOfTable
我不知道如何“概括”代码……
我希望已经清楚了……
PS ClassOfTable
应该是DB( Hibernate
)中表的类代表。
谢谢。
public static void queryResult(String query, Class extends T> clazz) { Session session = HibernateUtil.getSessionFactory().openSession(); Query q = session.createSQLQuery(query).addEntity(clazz); List rows = q.list(); Iterator it = rows.iterator(); while (it.hasNext()) { T t = (T) it.next(); // do your work on object t } }
如果您打算返回结果集,请使用:
public static List queryResult(String query, Class extends T> clazz) { Session session = HibernateUtil.getSessionFactory().openSession(); Query q = session.createSQLQuery(query).addEntity(clazz); List rows = (List ) q.list(); return Collections.unmodifiableList(rows); } // now call generic method List users = queryResult("select * from User", User.class); users.forEach(usr -> { System.out.println(usr.getEmail()); System.out.println(usr.getName()); System.out.println(usr.getIdUser()); System.out.println(usr.getUser()); });
- 使用Spring + Hibernate / EntityManager时遇到BeanCreationException
- Spring Data Repository不会删除ManyToOne Entity
- hibernate是否保留LinkedHashSet的顺序,如果是,如何?
- Java Hibernate与SQL Server 2012无法正常工作?
- 正则表达式疯狂:java.util.regex.Pattern matcher进入高CPU循环
- entityManager.getTransaction()。rollback()分离实体?
- Hibernate通用DAO,通用服务和通用视图层?
- Junit:为删除实体的方法编写测试?
- Hibernate性能