zoukankan      html  css  js  c++  java
  • 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();
             }
    	}
    }






  • 相关阅读:
    mysql中json_extract函数的使用?作用是什么?
    python 里面的单下划线与双下划线的区别(私有和保护)
    理解Python的双下划线命名
    python list中append()与extend()用法
    sqlalchemy(二)高级用法 2
    查看python对象的属性
    python map()
    SpringMVC学习系列(3) 之 URL请求到Action的映射规则
    SpringMVC学习系列(2) 之 经典的HelloWorld实现
    SpringMVC学习系列(1) 之 初识SpringMVC
  • 原文地址:https://www.cnblogs.com/maokun/p/6710812.html
Copyright © 2011-2022 走看看