hibernate第一天

hibernate

  1.   一种开源轻量级框架,对j2ee中dao层操作,对数据库实现crud而不需要写sql语句。
  2.   使用orm(对象关系映射)思想对数据库进行crud。javabean在框架阶段称为:实体类。

orm:

  1.   让实体类和数据库表进行一一对应:

      让实体类首先和数据库表进行对应,让实体类属性和表里字段对应。

   2.不需要直接操作数据库,而操作表对应实体类。

 

hibernate环境搭建:

  1.   导jar包(hibernate->lib->required)(mysql)(log4j,slf4j)

 

  2.创建实体类

  3.配置映射关系

    (1)在实体类所在包创建xml配置文件,名字没要求。

    (2)配置文件中首先引入约束。

<?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"> 
    
   <hibernate-mapping>
           <!-- 1.配置类和表对应
                   class标签
                   name属性:实体类全路径
                   table属性:数据库表名
           
            -->
   <class name="cn.itcast.entity.User" table="t_user">
           <!-- 2.hibernate要求实体类和表属性有一个属性唯一值 
                   id标签
                       name属性:实体类里面id名称
                       column属性:生成表字段名称          
           -->
           
           <id name="uid" column="uid">
               <!-- 设置数据库表id增长策略
                       native:生成表id就是主键自动增长
                -->
                <generator class="native"></generator>
           </id>
           
           <!-- 3.配置其他属性和表对应 -->
           <property name="username" column="username"></property>
           <property name="password" column="password"></property>
           <property name="address" column="address"></property>
           
   </class>
   
   </hibernate-mapping> 
    
          

 

   4.创建hibernate核心配置文件

  

<?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123456</property>
        
        <!-- 第二部分:配置hibernate的信息,可选 -->
        
        <!-- 输出底层sql语句 和语句格式-->
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        
        <!-- hibernate帮创建表,若有则更新,没有则创建 -->
        <property name="hibernate.hbm2ddl.auto">update</property>
        
        <!-- 配置数据库方言 mysql分页关键字:limit oracle 
        让hibernate识别不同数据库特有的语言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 方言:MySQL5Dialect   针对mysql 5.5以下老版本   -->
        <!-- 第三部分:把映射文件放在核心文件中(重要) -->
        <mapping resource="cn/itcast/entity/User.hbm.xml"/>
        
    </session-factory>
</hibernate-configuration>

配置方言为<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>。其实它输出的建表语句,就是把TYPE=MyISAM更改为
ENGINEE=MyISAM,两个方言配置的不同只是改变了type为engine.

 

  

package cn.itcast.hibernatetest;



import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import cn.itcast.entity.User;

public class HibernateDemo {
    
    @Test
    public void testAdd(){
        
        Configuration  cfg = new Configuration();
        cfg.configure();
        
        SessionFactory sf = cfg.buildSessionFactory();
        
        Session session = sf.openSession();
        
        Transaction tx= session.beginTransaction();
        
        User user = new User();
        user.setUsername("hello");
        user.setPassword("abc");
        user.setAddress("drogon");
        session.save(user);
        
        tx.commit();
        
        session.close();
        sf.close();
    }
    
}

 

posted on 2018-03-12 16:49  投笔从码  阅读(98)  评论(0)    收藏  举报

导航