Hibernate框架之入门配置

一、Hibernate导入相关的包


     参考:http://blog.csdn.net/tunni/article/details/54982160

     这些包包括相应数据库驱动、hibernate.zip下lib目录下的jar包,其中必须包是required目录下的.jar


二、在项目classpath(类路径,即src目录下)配置hibernate.cfg.xml,并且配置数据库连接


 

hibernate.cfg.xml配置文件

<!DOCTYPE hibernate-configuration PUBLIC    
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"    
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">    
    
<hibernate-configuration>    
    <session-factory >    
        <!-- mysql数据库驱动 -->    
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>    

        <!-- mysql数据库名称 -->    
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_db</property>   
 
        <!-- 数据库的登陆用户名 -->    
        <property name="hibernate.connection.username">root</property>    
        <!-- 数据库的登陆密码 -->    
        <property name="hibernate.connection.password">admin</property>  
  
        <!-- 方言:为每一种数据库提供适配器,方便转换 -->    
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>    
        
        <!-- 建议配置,方便在日志中查看sql语句-->    
        <propertynamepropertyname="hibernate.show_sql">true</property>  
         <propertyname="hibernate.format_sql">true</property>  

         <!--配置类与表的映射文件 -->    
        <mapping resource="com/hibernate/User.hbm.xml"/>
  
    </session-factory>    
</hibernate-configuration>

 

 

com.hibernate.User类

package com.hibernate;

public class User {    
    private String id;    
    private String username;    
    private String password;    
        
    public String getId() {    
        return id;    
    }    
    public void setId(String id) {    
        this.id = id;    
    }    
    public String getUsername() {    
        return username;    
    }    
    public void setUsername(String userName) {    
        this.username = userName;    
    }    
  
    public String getPassword() {    
        return password;    
    }    
    public void setPassword(String password) {    
        this.password = password;    
    }    
}    

User.hbm.xml配置文件

<?xml version="1.0"?>    
<!DOCTYPE hibernate-mapping PUBLIC     
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">    
        
<hibernate-mapping>    
    <!-- 类与数据库的表对应 -->    
    <class name="com.hibernate.User" table="user">    
   <!-- 主键名 -->    
        <id name="id" column="id">    
         <!-- 生成策略 -->    
            <generator class="uuid"/>    
        </id>    
     <!-- 其他类属性与表字段 -->     
        <property name="username" column="username"/>    
        <property name="password"/>    
    </class>    
</hibernate-mapping>  

hibernate访问工具类

 

package hibernate;
/**
 * hibernate工具
 * @author maokun
 * 
 */
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
    
    private static final SessionFactory sessionFactory;
    
    static
    {
        try
        {   //配置文件放在classpath路径,即src目录下
            //如果hibernate的配置文件目录为hibernate.cfg.xml,则
            //Configuration config = new Configuration().configure();
            //或Configuration config = new Configuration().configure("hibernate.cfg.xml");
            //或Configuration config = new Configuration().configure("hibernate.cfg.xml");       
            //配置其他路径如下:
            //Configuration config = new Configuration().configure("hibernate/hibernate.cfg.xml");

            Configuration config = new Configuration().configure("/hibernate/hibernate.cfg.xml");
            sessionFactory = config.buildSessionFactory();
        }
        catch(Throwable e)
        {
            throw new ExceptionInInitializerError(e);
        }
    }
    
    public static final ThreadLocal session = new ThreadLocal();
    
    public static Session currentSession() throws HibernateException
    {
        Session s = (Session)session.get();
        //如果线程没有session,打开新的session
        if(s == null || !s.isOpen())
        {
            s = sessionFactory.openSession();
            session.set(s);
        }
        return s;
    }
    
    public static void closeSession() throws HibernateException
    {
        Session s = (Session)session.get();
        session.set(null);
        if(s != null)
            s.close();
    }

}


三、第一个hibernate例子


 

先创建hibernate_db数据库,接着创建user表包含id,username,password。


Test类

 

package hibernate;


import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;


import com.hibernate.User;


public class Test {
    public static void main(String[] args) {
    	
    	 User user =new User();
    	 user.setUsername("name");
    	 user.setPassword("pass");
    	 Session session = HibernateUtil.currentSession();//生成Session实例
         Transaction tx = session.beginTransaction();
         
         try
         {
             session.save(user);    //保存持久类对象
             tx.commit();        //提交到数据库
             session.close();            
         }
         catch(HibernateException e)
         {
             e.printStackTrace();
             tx.rollback();
         }
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值