Hibernate框架学习(一 )

   Hibernate框架主要是实现数据库与实体类间的映射,使的操作实体类相当与操作hibernate框架。

 只要实体类写好配置文件配好,就能实现和数据库的映射,其中实体类对应表,类的属性对应数据库的表字段。 这样就不用管数据库的相关操作了,具体使用如下:


1,环境配置

配置Hibernate框架的环境,需要拷贝框架的jar包到我们程序中,常用的jar包一般有14个,如下图:


 

2,创建javabean对象(以User为例)

     对象的属性一般与对应表中的字段一致,需要提供每个属性的setget方法,用工具生成就行了,不用工具生成的话,一定要注意命名规范,属性的名称首字母大写后在前面加set或get字段。

 

3,配置hibernate.cfg.xml文件

 配置一个关联与特定数据库全局的工厂<SessionFactory>如果要使用多个数据库,就多配置一个<SessionFactory>标签,标签中制定连接数据库的信息。

 我们需要把配置文件存在在项目的src下面,Hibernate启动时会自动到classpath根目录下面查找名为hibernate.cfg.xml文件,所以配置文件的名称不要更改。

 

<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEhibernate-configuration PUBLIC
"-//Hibernate/HibernateConfiguration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
   <session-factory>
     <!--配置连接数据库信息 -->
     <propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/egov</property>
     <propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
     <propertyname="hibernate.connection.username">egov</property>
     <propertyname="hibernate.connection.password">egov</property>
  
     <propertyname="show_sql">true</property>
     <propertyname="hibernate.format_sql">true</property>
     <propertyname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
     <!--实体类的路径-->
     <mappingresource="com/hibernate/pojo/User.hbm.xml"/>
 
   </session-factory>
</hibernate-configuration>


4,配置映射文件

 映射文件是和javabean对象对应的,一般以对象的名称加.xml文件命名,映射文件的作用就是要告诉Hibernate应该访问数据库的哪个表以及表中的哪个对象。

 在hibernate-mapping标签(tag)之间,含有一个class元素。所有的持久化实体类(再次声明,或许接下来会有依赖类,就是那些次要的实体)都需要一个这样的映射,来把类对象映射到SQL数据库里的表。

<hibernate-mapping>
    <class name="beanname" table="tablename"/>
</hibernate-mapping>
 

 配置好映射文件后需要在hibernate.cfg.xml文件中配置<mapping resource>标签,指向刚定义的映射文件。

 

实例:

<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEhibernate-mapping PUBLIC
"-//Hibernate/HibernateMapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
   <class name="com.hibernate.pojo.User" table="t_user"lazy="true">
     <!--id标签用来映射主键字段-->
     <id name="username" column="username"length="20"> 
         <generatorclass="assigned"/>
     </id>

     <propertyname="userpswd" column="userpswd" length="20"not-null="true"/>
 
   </class>
</hibernate-mapping>

5,编写dao

public class UserDao{
   public void insert(User user){        
      //加载配置文件:classpath:hibernate.cfg.xml
      Configurationconfig = new Configuration().configure();
     //创建连接工厂
     SessionFactorysf = config.buildSessionFactory();
 
     //会话对象,表示与数据库的连接会话过程
     Sessionsession = null;
     Transactiontx = null ;        
     try{
         session= sf.openSession();
         //开启事务
         tx= session.beginTransaction();
 
         session.save(user);//调用sava方法
 
        //提交事务
        tx.commit();                        
     }catch(Exceptione){
        e.printStackTrace();
        tx.rollback();
     }finally{
        if(session!=null){
            session.close();
        }
     }        
  }
}


 

6,编写测试类

以上四步完成后就可以进行测试了,看配置的信息能否成功插入一条数据。

public static void  main(String args[]){
    Useruser = new User();
    user.setUsercode("zhangsan");
    user.setUserpswd("123");
    user.setOrgtype("1");
    user.setRegdate("2014-03-0711:56:00");
    user.setUsername("张三");
 
 
    UserDaodao = new UserDao();
    dao.insert(user);                
}


 为了测试么,我们直接newdao层对象,在实际项目中hibernate框架和spring框架和struts2框架结用,创建对象和组合对象的关系交给spring去完成。这样层与层之间就不会耦合了。

Hibernate框架学习(一 ),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。