实体类:
package com.it.domain;
public class Customer {
private Long cust_id;
private String cust_name;
private String cust_source;
private String cust_industry;
private String cust_level;
private String cust_linkman;
private String cust_phone;
private String cust_mobile;
public Long getCust_id() {
return cust_id;
}
public void setCust_id(Long cust_id) {
this.cust_id = cust_id;
}
public String getCust_name() {
return cust_name;
}
public void setCust_name(String cust_name) {
this.cust_name = cust_name;
}
public String getCust_source() {
return cust_source;
}
public void setCust_source(String cust_source) {
this.cust_source = cust_source;
}
public String getCust_industry() {
return cust_industry;
}
public void setCust_industry(String cust_industry) {
this.cust_industry = cust_industry;
}
public String getCust_level() {
return cust_level;
}
public void setCust_level(String cust_level) {
this.cust_level = cust_level;
}
public String getCust_linkman() {
return cust_linkman;
}
public void setCust_linkman(String cust_linkman) {
this.cust_linkman = cust_linkman;
}
public String getCust_phone() {
return cust_phone;
}
public void setCust_phone(String cust_phone) {
this.cust_phone = cust_phone;
}
public String getCust_mobile() {
return cust_mobile;
}
public void setCust_mobile(String cust_mobile) {
this.cust_mobile = cust_mobile;
}
@Override
public String toString() {
return "Customer [cust_id=" + cust_id + ", cust_name=" + cust_name + "]";
}
}
1.查询所有信息
@Test
public void func1() {
Configuration configure = new Configuration().configure();
SessionFactory sessionFactory = configure.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
String hql1 = " from com.it.domain.Customer ";//完整写法
String hql2 = " from Customer ";//简单写法
Query createQuery = session.createQuery(hql1);
List list = createQuery.list();
System.out.println(list);
transaction.commit();
session.close();
}
2. 排序
@Test
public void func2() {
Configuration configure = new Configuration().configure();
SessionFactory sessionFactory = configure.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
String hql1 = " from com.it.domain.Customer order by cust_id asc";//完整写法
String hql2 = " from Customer order by cust_id desc";//简单写法
Query createQuery1 = session.createQuery(hql1);
List list1 = createQuery1.list();
System.out.println(list1);
Query createQuery2 = session.createQuery(hql2);
List list2 = createQuery2.list();
System.out.println(list2);
transaction.commit();
session.close();
}
正序:
反序:
3.条件查询
@Test
public void func3() {
Configuration configure = new Configuration().configure();
SessionFactory sessionFactory = configure.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
String hql1 = " from com.it.domain.Customer where cust_id=?";//完整写法
String hql2 = " from Customer where cust_id=:cust_id";//简单写法
Query createQuery1 = session.createQuery(hql1);
createQuery1.setParameter(0,1l);//因为cust_id是Long 所以是 1l , 2l
List list1 = createQuery1.list();
System.out.println(list1);
Query createQuery2 = session.createQuery(hql2);
createQuery2.setParameter("cust_id",2l);
List list2 = createQuery2.list();
System.out.println(list2);
transaction.commit();
session.close();
}
4.分页查询
@Test
public void func4() {
Configuration configure = new Configuration().configure();
SessionFactory sessionFactory = configure.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
String hql1 = " from com.it.domain.Customer ";//完整写法
String hql2 = " from Customer ";//简单写法
Query createQuery1 = session.createQuery(hql1);
//limit ? ?
//第一个参数=(当前页-1)*每页显示条数
//第二个参数=每页显示条数
//查询第一页,查询两条数据
createQuery1.setFirstResult(0);
createQuery1.setMaxResults(1);
List list1 = createQuery1.list();
System.out.println(list1);
Query createQuery2 = session.createQuery(hql2);
//查询第二页,显示一条数据
createQuery2.setFirstResult(1);
createQuery2.setMaxResults(1);
List list2 = createQuery2.list();
System.out.println(list2);
Query createQuery3 = session.createQuery(hql2);
//查询第一页,显示二条数据
createQuery3.setFirstResult(0);
createQuery3.setMaxResults(2);
List list3 = createQuery3.list();
System.out.println(list3);
transaction.commit();
session.close();
}
5.统计查询
@Test
public void func5() {
Configuration configure = new Configuration().configure();
SessionFactory sessionFactory = configure.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
String hql1 = "select count(*) from com.it.domain.Customer ";//完整写法
String hql2 = "select sum(*) from com.it.domain.Customer ";//完整写法
String hql3 = "select avg(*) from com.it.domain.Customer ";//完整写法
String hql4 = "select max(*) from com.it.domain.Customer ";//完整写法
String hql5 = "select min(*) from com.it.domain.Customer ";//完整写法
//以hql1为例
Query createQuery = session.createQuery(hql1);
Number number = (Number) createQuery.uniqueResult();
System.out.println(number);
transaction.commit();
session.close();
}
6.投影查询(也就是查询一部分)hql3需要实现Customer有参的构造方法
public Customer() {
}
public Customer(Long cust_id, String cust_name) {
super();
this.cust_id = cust_id;
this.cust_name = cust_name;
}
@Test
public void func6() {
Configuration configure = new Configuration().configure();
SessionFactory sessionFactory = configure.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
String hql1 = "select cust_name from com.it.domain.Customer ";
String hql2 = "select cust_id,cust_name from com.it.domain.Customer ";
String hql3 = "select new Customer(cust_id,cust_name) from com.it.domain.Customer ";
Query createQuery1 = session.createQuery(hql1);
List list1 = createQuery1.list();
System.out.println(list1);
Query createQuery2 = session.createQuery(hql2);
List list2 = createQuery2.list();
System.out.println(list2);
Query createQuery3 = session.createQuery(hql3);
List list3 = createQuery3.list();
System.out.println(list3);
transaction.commit();
session.close();
}