Hibernate框架(二)—— Hibernate环境搭配

Hibernate简介:hibernate是一个优秀的持久层ORM框架

ORM:object/relation mapping【对象/关系 映射】

环境搭配  -----> 三拷三配

1、拷贝hibernate的jar包(hibernate的jar包可以从官网上下载zip然后解压找到核心包拷贝到项目的lib目录中)

2、拷贝jdbc驱动包到lib目录

3、拷贝log4j的property日志文件

#to console#
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %m%n
#to file#
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=sunjob.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %l  %m%n
#error/warn/info/debug#
log4j.rootLogger=info, stdout, file
log4j.appender.file.File=sunjob.log指定将日志填写在sunjob.log文件中,可以自定义命名放在项目根目录下
4、配置总配置文hibernate.cfg.xml(一般不改文件名,因为在读取该总配置文件的时候要根据这个文件名进行寻找该文件),将文件创建在src目录下
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>

<session-factory>
<property name="myeclipse.connection.profile">
MysqlConn
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.password">admin</property>
<property name="connection.username">root</property>
<property name="connection.url">
jdbc:mysql://127.0.0.1:3306/s61
</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<mapping resource="pojo/UserInfo.hbm.xml" />

</session-factory>

</hibernate-configuration>
上面的代码是hibernate总配置文档的头部描述该文件是hibernate文件,此头部信息可以去下载的hibernate的zip下载包中找到hibernate的配置文件中复制粘贴到自己的配置文件中
5、配置pojo文件
一个pojo类对应一个表,一个字段对应一个类属性,一条记录对应一个对象,实际上就是将数据库映射成一个类,然后把操作数据库的面向关系方式转换为面向对象的操作方式
简化操作数据库,是整个hibernate实现的核心
例如:数据库中的userinfo表中:userId ,username,password字段
    对应的pojo类:
public class UserInfo{
  private int userId;
  private String username;
  private String password;
  .....
  每个字段对应的getter/setter方法                  
}

6、配置pojo的映射文件
userInfo类对应的pojo映射文件:userInfo.hbm.xml(命名规则是类名.hbm.xml)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    xml的头部信息,和hibernate总配置文档的头部信息是不一样的
    catalog:数据库
    id标签用来设置表主键,子标签generator用来设置主键的生成策略
    property标签用来设置普通属性
-->
<hibernate-mapping>
    <class name="UserInfo" table="userinfo" catalog="s61">
        <id name="userId" type="java.lang.Integer">
            <column name="userId" />
            <generator class="identity" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="username" />
        </property>
          <property name="password" type="java.lang.String">
            <column name="password" />
        </property>
    </class>
</hibernate-mapping>
hibernate的使用  --->七大使用步骤
1、读取总的配置文件
2、创建session工厂(Java程序和数据库之间的一次会话,session其实就是对connection的封装)
3、获取session
4、开启事务
5、持久化操作
6、提交事务(查询不需要事务,增删改需要事务,事务的四大特征:原子性、一致性、隔离性、持久性-->ACID)
7、关闭session
public  class  Test{

  public static void main(String [] args){
       //1、读取总的配置文件hibernate.cfg.xml
        Configuration configuration = new Configuration().configure();
        
        //2、创建session工厂    session就是对connection的封装
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        
        //3、得到sessiod对象
        Session session = sessionFactory.openSession();
        
        //4、开启事务
        Transaction transaction = session.beginTransaction();
        
        //5、持久化操作
        UserInfo userInfo= new UserInfo ();
        userInfo.setUserId("15408300240"); 
                userInfo.setUsername("天穹");
                userInfo.setPassword("123456");
        session.save(userInfo);
        
        //6、提交事务
        transaction.commit();
        
        //7、关闭session
        session.close();
        
             
   }  
}    

 






posted @ 2018-08-29 17:02  北宫乾宇  阅读(185)  评论(0编辑  收藏  举报