hibernate學習總結

hibernate是一個orm框架,主要方便開發者操作數據庫。
一個簡單的hibernate項目的主要流程:
(1):導入jar包
(2):編寫實體類
(3):編寫hibernate的配置文件
(4):對數據庫操作

(一):導入jar包
這裏寫圖片描述
注意:如果使用註釋需要導入hibernate-annotations.jar和hibernate-commons-annotations.jar等jar包。
(二):編寫實體類。一個實體類在hibernate對應一個數據庫表,實體類需要有@Entity註釋表示是一個實體類。一個簡單的實體類可以理解成一個pojo類加上一些必須要的配置或者hibernate關聯

@Entity
@Table(name="tb_user")
public class user {
    @Id
    private String id;
    private String name;
    private String age;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "user [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
}

說一下一下常用的註釋
@Entity 表示這是一個實體類,hibernate掃描需要根據這個註釋掃描
@Table(name=”tb_user”) 表示這個實體類對應hibernate中的tb_user表
@Id 表示這個屬性是主鍵
@Cloumn 可以指定屬性對應的列名,不寫默認爲屬性名
@Temporal(TemporalType.TIMESTAMP)日期註解,如果屬性對應數據庫的時間列需要用這個註解指定類型

(三):配置文件,需要配置一些連接數據庫的資源

<?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>
        <!-- jdbc配置 -->
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>



        <property name="hibernate.connection.username">system</property>


          <!-- hibernate.connection.password : 連接數據庫的密碼 -->
        <property name="hibernate.connection.password">system</property>


          <!-- hibernate.connection.url : 連接數據庫的地址,路徑 -->
        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>





        <!-- show_sql: 操作數據庫時,會 向控制檯打印sql語句 -->
        <property name="show_sql">true</property>





        <!-- format_sql: 打印sql語句前,會將sql語句先格式化  -->
        <property name="format_sql">true</property>






        <property name="hbm2ddl.auto">update</property>






        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>





        <!-- hibernate.connection.autocommit: 事務自動提交  -->
        <property name="hibernate.connection.autocommit">true</property>





        <!-- 將Session與線程綁定=> 只有配置了該配置,才能使用getCurrentSession -->
        <property name="hibernate.current_session_context_class">thread</property>





        <!-- 引入ORM 實體類
         -->
        <mapping class="test.user"/>
    </session-factory>
</hibernate-configuration>

(4):使用。加載主配置文件,建立一個sesion工廠類就可以獲取session進行操作

public class hiberTest {
    public static void main(String[] args){
        //加載配置文件
        AnnotationConfiguration c = new AnnotationConfiguration();
        c.configure("hibernate.cfg.xml");
        //建立sesion工廠
        SessionFactory sessionFactory = c.buildSessionFactory();
        //打開連接
        Session session = sessionFactory.openSession();
        user user1 = new user();
        user1.setAge("18");
        user1.setId("1");
        user1.setName("jack");

        user user2 = new user();
        user2.setAge("30");
        user2.setId("2");
        user2.setName("rose");

        session.persist(user1);
        session.persist(user2);

        List<user> list = session.createQuery("from user ").list();
        for(user s: list){
            System.out.println(s);
        }

    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章