下面要给大家分享的是hibernate执行原生sql的几种方式,一起通过以下实例来了解以下吧!
java代码:
import java.util.List; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import com.dto.Role; public class HibernateTest1 { public static void main(String[] args) { SessionFactory sf = new Configuration() .configure() .buildSessionFactory(); Session s = null; Transaction t = null; try { s = sf.openSession(); t = s.beginTransaction(); String sql = "SELECT id,rolename,createtime FROM sys_role"; SQLQuery query = s.createSQLQuery(sql); //方式1 error // List<Object[]> list = query.list(); //方式2 // query.addScalar("id",Hibernate.INTEGER); // query.addScalar("rolename",Hibernate.STRING); // query.addScalar("createtime",Hibernate.DATE); // List<Object[]> list = query.list(); //方式3 需要对应映射的实体 query.addEntity(Role.class); List < Role > list = query.list(); //方式4 需要hibernate版本> hibernate3.2 // query.addScalar("id",Hibernate.INTEGER); // query.addScalar("rolename",Hibernate.STRING); // query.addScalar("createtime",Hibernate.DATE); // query.setResultTransformer(Transformers.aliasToBean(Role.class)); // List<Role[]> list = query.list(); t.commit(); } catch (Exception err) { t.rollback(); err.printStackTrace(); } finally { s.close(); } } }
以上内容源于网络,希望可以对你有所帮助。
你还想了解更多的java程序代码例子吗?可以继续通过奇Q工具网来进行了解呢。
推荐阅读: