1.查询实体
public void Test1() throws Exception{
Configuration config=new Configuration().configure();
SessionFactory sessionFactory= config.buildSessionFactory();
Session session=null;
Transaction tr=null;
try{
session= sessionFactory.openSession();
tr=session.beginTransaction();
String hql="from Dept"; //定义String类型hql,写入hql语句。
Query query=session.createQuery(hql);
List<Dept> list = query.list();
for(Dept dept:list){
System.out.print("部门编号: "+dept.getDid() +" ");
System.out.println("部门名称: "+dept.getDname());
}
tr.commit();
}catch(Exception e){
tr.rollback();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}
2.查询单个属性:
public void Test2() throws Exception{
Configuration config=new Configuration().configure();
SessionFactory sessionFactory= config.buildSessionFactory();
Session session=null;
Transaction tr=null;
try{
session= sessionFactory.openSession();
tr=session.beginTransaction();
Query query=session.createQuery("select dname from Dept");
List<String> list = query.list();
for(String name:list){
System.out.println("部门名称: "+name);
}
tr.commit();
}catch(Exception e){
tr.rollback();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}
3.查询多个属性:
public void Test3() throws Exception{
Configuration config=new Configuration().configure();
SessionFactory sessionFactory= config.buildSessionFactory();
Session session=null;
Transaction tr=null;
try{
session= sessionFactory.openSession();
tr=session.beginTransaction();
Query query=session.createQuery("select ename,eage from Emp");
List<Object[]> list = query.list(); //对多个属性查询的时候,使用Obejct数组。
for(Object[] message:list){
System.out.println(Arrays.toString(message)); //采用辅助类Arrays的toString()方法打印数组。
}
tr.commit();
}catch(Exception e){
tr.rollback();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}
4.通过实体类查询:
public class Emp {
private int eid;
private int eage;
private float esal;
private String ename;
省略get,set方法。
public Emp() {
super();
}
public Emp(int eage, String ename) { //需要查询的属性是什么,构造器的参数就是什么。
super();
this.eage = eage;
this.ename = ename;
}
public void Test4() throws Exception{
Configuration config=new Configuration().configure();
SessionFactory sessionFactory= config.buildSessionFactory();
Session session=null;
Transaction tr=null;
try{
session= sessionFactory.openSession();
tr=session.beginTransaction();
Query query=session.createQuery("select new Emp(eage,ename) from Emp e"); select 后直接调用构造器,参数就是查询的属性,参数不可错乱。
List<Emp> list = query.list(); 此处不实用object数组,类类型即可
for(Emp message:list){
System.out.print("姓名:"+message.getEname()+" ");
System.out.println("年龄:"+message.getEage());
}
tr.commit();
}catch(Exception e){
tr.rollback();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><pre class="java" name="code">
</pre><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><strong></strong><p></p><p></p><pre class="java" name="code">public void Test3() throws Exception{
Configuration config=new Configuration().configure();
SessionFactory sessionFactory= config.buildSessionFactory();
Session session=null;
Transaction tr=null;
try{
session= sessionFactory.openSession();
tr=session.beginTransaction();
Query query=session.createQuery("select ename,eage from Emp");
List<Object[]> list = query.list(); //对多个属性查询的时候,使用Obejct数组。
for(Object[] message:list){
System.out.println(Arrays.toString(message)); //采用辅助类Arrays的toString()方法打印数组。
}
tr.commit();
}catch(Exception e){
tr.rollback();
}finally{
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}