您的位置:首页 > 编程语言 > Java开发

《Hibernate 系列》- Criteria语法

2018-01-10 00:00 183 查看

跟我学

项目结构

--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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java