跟我学
项目结构
--src/main/java
----com.easy.c_hql
------HibernateUtils.java
------TestApp.java
------User.java
------hibernate.cfg.xml
------User.hbm.xml
User.java
public class User {
private Integer id;
private String username;
private Integer age;
User.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.easy.d_criteria.User" table="t_user">
<id name="id" column="ID">
<generator class="native"></generator>
</id>
<property name="username" column="UserName"></property>
<property name="age" column="Age"></property>
</class>
</hibernate-mapping>
hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="com/easy/d_criteria/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
HibernateUtils.java
public class HibernateUtils {
private static SessionFactory sessionFactory;
static{
URL url=HibernateUtils.class.getClass().getResource("/com/easy/d_criteria/hibernate.cfg.xml");
Configuration conf=new Configuration().configure(url);
sessionFactory =conf.buildSessionFactory();
Runtime.getRuntime().addShutdownHook(new Thread(
new Runnable() {
@Override
public void run() {
System.out.println("虚拟机关闭,释放资源");
sessionFactory.close();
}
}));
}
public static Session openSession(){
return sessionFactory.openSession();
}
public static Session getCurrentSession(){
return sessionFactory.getCurrentSession();
}
}
UT
查询多行数据
public void test_query_multi_rows(){
Session session = HibernateUtils.openSession();
Criteria criteria =session.createCriteria(User.class);
criteria.add(Restrictions.like("username", "%rose%"));
List<User>list=criteria.list();
System.out.println(list);
session.close();
}
查询单行数据
public void test_query_single_row(){
Session session = HibernateUtils.openSession();
Criteria criteria =session.createCriteria(User.class);
criteria.add(Restrictions.eq("id", 1));
User user =(User)criteria.uniqueResult();
System.out.println(user);
session.close();
}