用Hibernate创建数据库中的表

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库

一、环境准备

安装jdk(版本1.7以上),导入jar包,并且创建项目,如下图所示

二、核心代码如下
  1. span style="font-family:'Microsoft YaHei';">package com.util;  
  2.   
  3. import org.hibernate.Session;  
  4. import org.hibernate.SessionFactory;  
  5. import org.hibernate.cfg.Configuration;  
  6.   
  7. public class HibernateUtil {  
  8.     public HibernateUtil() {  
  9.     }  
  10.   
  11.     private static String RESOURCE = "resource/hibernate.cfg.xml";  
  12.     private static SessionFactory sessionFactory = null;  
  13.     private static ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();  
  14.   
  15.     static {  
  16.         try {  
  17.             Configuration cfg = new Configuration().configure(RESOURCE);  
  18.             sessionFactory = cfg.buildSessionFactory();  
  19.         } catch (Exception e1) {  
  20.             e1.printStackTrace();  
  21.             throw new ExceptionInInitializerError("初始化hibernate错误,请检查配置文件或数据库");  
  22.   
  23.         }  
  24.     }  
  25.   
  26.     public static SessionFactory getSessionFactory() {  
  27.         return sessionFactory;  
  28.     }  
  29.   
  30.     public static Session getSession() {  
  31.         // sessionTL的get()方法根据当前线程返回其对应的线程内部变量,  
  32.         // 也就是我们需要的Session,多线程情况下共享数据库链接是不安全的。  
  33.         // ThreadLocal保证了每个线程都有自己的Session。  
  34.         Session session = threadLocal.get();  
  35.         // 如果session为null,则打开一个新的session  
  36.         if (session == null) {  
  37.             session = (sessionFactory != null) ? sessionFactory.openSession() : null;  
  38.             threadLocal.set(session);  
  39.         }  
  40.         return session;  
  41.     }  
  42.   
  43.     public static void closeSession() {  
  44.         Session session = (Session) threadLocal.get();  
  45.         threadLocal.set(null);  
  46.         if (session != null) {  
  47.             session.close();  
  48.         }  
  49.     }  
  50. }</span>  

下面建立测试类

[java] view plain copy
  1. <span style="font-family:'Microsoft YaHei';">package com.test;  
  2.   
  3. import org.hibernate.Session;  
  4.   
  5. import com.entity.User;  
  6. import com.util.HibernateUtil;  
  7.   
  8. public class Main {  
  9.     public static void main(String[] args) {  
  10.         Session session = HibernateUtil.getSession();  
  11.         session.beginTransaction();  
  12.         User user = new User();  
  13.         user.setUsername("Jerry");  
  14.         user.setPassword("Hdc09130415");  
  15.         user.setAge(20);  
  16.         session.save(user);  
  17.         session.getTransaction().commit();  
  18.         HibernateUtil.getSession().close();  
  19.     }  
  20.   
  21. }</span>  

测试:运行结果

[plain] view plain copy
  1. <span style="font-family:'Microsoft YaHei';">log4j:WARN No appenders could be found for logger (org.jboss.logging).  
  2. log4j:WARN Please initialize the log4j system properly.  
  3. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.  
  4. Hibernate: select max(id) from perfack  
  5. Hibernate: insert into perfack (username, password, age, id) values (?, ?, ?, ?)</span>  








阅读更多
上一篇初学Hibernate 写orm demo
下一篇单例模式及线程安全问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭