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 (?, ?, ?)
相关文章
相关标签/搜索