Hibernate框架之入门配置

来源:互联网 发布:江歌事件知乎 编辑:程序博客网 时间:2024/03/29 08:31

一、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
原创粉丝点击