First record the content of the annotation-based hibernate.cfg.xml file:
<?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>
This is a configuration file that can be said to be simply no longer simple, and the specific content will not be recorded in detail here.
pojo type:
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 + '}'; } }
Code for HibernateUtils class:
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(); } }
The content here is explained in the previous article.
The last step is to obtain the Session object for persistent operation. The following are some simple single-table operation methods written for future reference:
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(); } } }