首先记录一下基于注解的hibernate.cfg.xml文件的内容吧:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://127.0.0.1:3306/item</property> <property name="connection.username">root</property> <property name="connection.password">123456</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="show_sql">true</property> <property name="format_sql">true</property> <mapping class="cn.bdx.po.User"/> </session-factory> </hibernate-configuration>
这是一个可以说是简单地不能再简单的配置文件了,具体内容在这里先不详细记录了。
pojo类:
package cn.bdx.po; import javax.persistence.*; import java.io.Serializable; /** * Created by Administrator on 2016/5/23. */ @Entity @Table(name="t_user") public class User{ @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; } }
HibernateUtils类的代码:
package cn.bdx.utils; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; /** * Created by Administrator on 2016/5/23. */ public class HibernateUtils { private static SessionFactory sessionFactory; static { Configuration configuration = new Configuration().configure(); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } public static SessionFactory getSessionFactory() { return sessionFactory; } public static Session getSession() throws Exception { if (sessionFactory == null) { throw new Exception("sessionFactory is empty"); } return sessionFactory.openSession(); } }
这里面的内容在上一篇中讲解了。
最后就是获取到Session对象进行持久化的操作了,下面是写的一些简单的单表操作的方法,以供以后借鉴吧:
package cn.bdx.dao; import cn.bdx.po.User; import cn.bdx.utils.HibernateUtils; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.transform.Transformers; import java.util.List; /** * Created by Administrator on 2016/5/23. */ public class UserDao { public void add(User user) throws Exception { Session session = HibernateUtils.getSession(); Transaction transaction = session.getTransaction(); try { transaction.begin(); session.persist(user); transaction.commit(); } catch (Exception e) { transaction.rollback(); e.printStackTrace(); } } public void update(User user) throws Exception{ Session session = HibernateUtils.getSession(); Transaction transaction = session.getTransaction(); try{ transaction.begin(); session.update(user); transaction.commit(); }catch (Exception e) { transaction.rollback(); } } public void query() throws Exception { Session session = HibernateUtils.getSession(); Transaction transaction = session.getTransaction(); try { transaction.begin(); User user = (User) session.get(User.class, 1); System.out.print(user); transaction.commit(); } catch (Exception e) { transaction.rollback(); e.printStackTrace(); } } public void queryByHql() throws Exception { Session session = HibernateUtils.getSession(); Transaction transaction = session.getTransaction(); try { transaction.begin(); org.hibernate.Query query = session.createQuery("from User"); List<User> userList = query.list(); for(User user:userList) { System.out.print(user.getName()); } transaction.commit(); } catch (Exception e) { transaction.rollback(); } } public void queryBySql() throws Exception { Session session = HibernateUtils.getSession(); Transaction transaction = session.getTransaction(); try{ transaction.begin(); Query query= session.createSQLQuery("SELECT age,name FROM t_user").setResultTransformer(Transformers.aliasToBean(User.class)); List list = query.list(); System.out.println(list); transaction.commit(); }catch (Exception e) { transaction.rollback(); } } public void delete(User user) throws Exception{ Session session = HibernateUtils.getSession(); Transaction transaction = session.getTransaction(); try{ transaction.begin(); session.delete(user); transaction.commit(); }catch (Exception e) { transaction.rollback(); } } }