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





  • 相关阅读:
    PostBUILD Event Command Line
    vue 中 $set与$delete的使用
    前端动画必知必会:React 和 Vue 都在用的 FLIP 思想实战
    根据JSON自动构建的vue筛选框组件
    手摸手带你理解Vue的Computed原理
    Flutter开发初探
    实战技巧,Vue原来还可以这样写
    你应该知道的Vue高级特性
    如何去除vue项目中的console内容
    vue: 组件之间传值
  • 原文地址:https://www.cnblogs.com/myfaith-feng/p/9555459.html
Copyright © 2011-2022 走看看