Hibernate從零開始_01_入門篇

  1. Java Web 項目的創建html

    添加類包:java

                

  2. Java 實體對像(POJO)mysql

     

    package com.study.hibernate.domain;
    public class TbUser {
    	private Long id;
    	private String name;
    	private Long age;
    	private String city;
    	
    	public TbUser(){
    		
    	}
    	public Long getId() {
    		return id;
    	}
    	public void setId(Long id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public Long getAge() {
    		return age;
    	}
    	public void setAge(Long age) {
    		this.age = age;
    	}
    	public String getCity() {
    		return city;
    	}
    	public void setCity(String city) {
    		this.city = city;
    	}
    	
    }
  3. Hibernate 映射文件(POJO.hbm.xml)sql

    TbUser.hbm.xml數據庫

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC   
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
     <hibernate-mapping>
      <!-- 映射關係配置   name="POJO類" table="表單名稱" catalog="數據庫名稱,若不指定則使用jdbc中的配置" --> 
      <class name="com.study.hibernate.domain.TbUser" table="tb_user" catalog="db_hibernate">
       <!-- 配置主鍵  name="POJO中對應屬性" colum="表單中主鍵名" type="數據類型" --> 
       <id name="id" column="id" type="java.lang.Long">
        <!-- 主鍵的生成方式。native:根據底層數據庫自動選擇 -->
        <generator  class="native"></generator>
       </id>
       <property name="name" column="name" type="java.lang.String"></property>
       <property name="age" column="age" type="java.lang.Long"></property>
       <property name="city" column="city" type="java.lang.String"></property>
      </class>
     </hibernate-mapping>
  4. Hibernate 配置文件(hiberante.cfg.xml)session

     

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC  
     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
     <hibernate-configuration>
      <session-factory>
       <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
       <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
       <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/db_hibernate</property>
       <property name="hibernate.connection.username">root</property>
       <property name="hibernate.connection.password">123456</property>
       <!-- 經常使用配置 --> 
       <property name="hibernate.show_sql">true</property><!-- 控制檯打印sql語句 --> 
       <property name="hibernate.format_sql">false</property><!-- 格式化輸出的sql語句 --> 
       <property name="hibernate.hbm2ddl.auto">update</property><!-- 在數據庫自動建表 --> 
       <property name="hibernate.connection.autocommit">true</property><!-- 自動提交事務 --> 
       <!-- 引用映射文件(最後配置) --> 
       <mapping resource="com/study/hibernate/domain/TbUser.hbm.xml"/>
      </session-factory>
     </hibernate-configuration>
  5. 創建測試類app

     

    package com.study.hibernate.operate;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
    import org.hibernate.service.ServiceRegistryBuilder;
    import org.junit.Test;
    import com.study.hibernate.domain.TbUser;
    public class TbUserTest {
     @Test
     public void test() {
      
      // 1.實例化配置器,加載配置文件 hibernate.cfg.xml,POJO.hbm.xml
      Configuration configuration = new Configuration().configure();
      // 2.服務註冊器
      ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();  
      // 3.建立會話鏈接工廠 
      SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
      // 4.建立會話 
      Session session = sessionFactory.openSession();
      // 5.開啓事務 
      Transaction transaction = session.beginTransaction();
      // 6.由框架自動生成sql語句 
      
      // 這裏是操做代碼
      TbUser  user = new TbUser();
      user.setName("zhangsan");
      user.setAge(26L);
      user.setCity("中國北京");
      session.save(user);
      
      // 7.提交事務,釋放資源 
      transaction.commit();
      session.close();  
      sessionFactory.close(); 
     }
    }
  6. 數據庫建表框架

     

    /**註釋:MySQL,建立一個新數據庫
     **/
    CREATE DATABASE db_hibernate  CHARACTER SET utf8;
    use db_hibernate;
     -- 註釋:建立一個表
    CREATE TABLE tb_user(
     id INT PRIMARY KEY AUTO_INCREMENT, #註釋:主鍵,自動序列
     name VARCHAR(20), 
     age INT, 
     city VARCHAR(40) 
    );
  7. 打印less

     

    [org.hibernate.annotations.common.Version]HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
    [org.hibernate.Version]HHH000412: Hibernate Core {4.2.8.Final}
    [org.hibernate.cfg.Environment]HHH000206: hibernate.properties not found
    [org.hibernate.cfg.Environment]HHH000021: Bytecode provider name : javassist
    [org.hibernate.cfg.Configuration]HHH000043: Configuring from resource: /hibernate.cfg.xml
    [org.hibernate.cfg.Configuration]HHH000040: Configuration resource: /hibernate.cfg.xml
    [org.hibernate.cfg.Configuration]HHH000221: Reading mappings from resource: com/study/hibernate/domain/TbUser.hbm.xml
    [org.hibernate.cfg.Configuration]HHH000041: Configured SessionFactory: null
    [org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl]HHH000402: Using Hibernate built-in connection pool (not for production use!)
    [org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl]HHH000115: Hibernate connection pool size: 20
    [org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl]HHH000006: Autocommit mode: true
    [org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl]HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://127.0.0.1:3306/db_hibernate]
    [org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl]HHH000046: Connection properties: {user=root, password=****, autocommit=true}
    [org.hibernate.dialect.Dialect]HHH000400: Using dialect: org.hibernate.dialect.MySQLInnoDBDialect
    [org.hibernate.engine.jdbc.internal.LobCreatorBuilder]HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
    [org.hibernate.engine.transaction.internal.TransactionFactoryInitiator]HHH000399: Using default transaction strategy (direct JDBC transactions)
    [org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory]HHH000397: Using ASTQueryTranslatorFactory
    [org.hibernate.tool.hbm2ddl.SchemaUpdate]HHH000228: Running hbm2ddl schema update
    [org.hibernate.tool.hbm2ddl.SchemaUpdate]HHH000102: Fetching database metadata
    [org.hibernate.tool.hbm2ddl.SchemaUpdate]HHH000396: Updating schema
    [org.hibernate.tool.hbm2ddl.TableMetadata]HHH000261: Table found: db_hibernate.tb_user
    [org.hibernate.tool.hbm2ddl.TableMetadata]HHH000037: Columns: [id, age, name, city]
    [org.hibernate.tool.hbm2ddl.TableMetadata]HHH000108: Foreign keys: []
    [org.hibernate.tool.hbm2ddl.TableMetadata]HHH000126: Indexes: [primary]
    [org.hibernate.tool.hbm2ddl.SchemaUpdate]HHH000232: Schema update complete
    Hibernate: insert into db_hibernate.tb_user (name, age, city) values (?, ?, ?)
相關文章
相關標籤/搜索