1. 程式人生 > >Hibernate入門------HelloWord

Hibernate入門------HelloWord

Hibernate入門

Hibernate的helloword案例
第一步:導入相關jar包

  • antlr-2.7.6.jar
  • commons-collections-3.1.jar
  • dom4j-1.6.1.jar
  • hibernate3.jar
  • hibernate-jpa-2.0-api-1.0.1.Final.jar
  • javassist-3.11.0.GA.jar
  • jta-1.1.jar
  • log4j-1.2.17.jar
  • slf4j-api-1.6.1.jar
  • slf4j-log4j12-1.7.2.jar
  • mysql-connector-java-5.0.4-bin.jar

第二步:創建modle類.根據表結構.
表結構:

CREATE TABLE `userdata` (
  `name` varchar(40) DEFAULT NULL,
  `pwd` varchar(40) DEFAULT NULL,
  `id` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

modle類:

public class User {
    private String id;
    private String name;
    private String pwd;
    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 getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    }

第三步:創建modle的映射文件.
UserModel.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>
        <!-- 類與表的映射制作在class元素上 -->
        <!-- name:全路徑類名 -->
        <!-- table:表名 -->
        <class name="zz.itcast.modle.User" table="userdata">
            <!-- 主鍵的映射制作在id元素上 -->
            <!-- name:對象中用於作為主鍵的屬性名 -->
            <!-- colomn:表中主鍵字段名 -->
            <!-- 如果name與column值相同,可以省略column -->
            <id name="id" column="id">
                <!-- 將generator元素class屬性設置為"assigned" 手動生成,必須給id -->
                <generator class="assigned" />
            </id>
            <!-- 屬性與字段的映射制作在property元素上 -->
            <!-- name:類中的屬性名 -->
            <!-- column:表中的字段名 -->
            <!-- 如果name與column值相同,可以省略column -->
            <property name="name" />
            <property name="pwd" />

        </class>
    </hibernate-mapping>

第四步:hibernate配置文件.
hibernate.cfg.xml. 放到classpath下.

<?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="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/userdb</property>
            <property name="connection.username">root</property>
            <property name="connection.password">123456</property>

            <!-- 可選配置 -->
            <!--是否支持方言  -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
            <!--執行CURD時是否打印sql 語句  -->
            <property name="show_sql">true</property>

            <!-- 資源註冊 -->
            <mapping resource="cn/fy/modle/UserModel.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>

第五步:測試

// 1.創建一個要保存的數據
        User um = new User();
        um.setId("9");
        um.setName("張三");
        um.setPwd("123");
        // 2.加載配置信息
        /**
         * Configuration().configure(); ,默認讀取classpath下hibernate.cfg.xml文件 new
         * Configuration().configure(“配置文件名”); 不常用
         */
        Configuration conf = new Configuration().configure();
        // 3.基於配置信息,創建SessionFactory對象
        SessionFactory sf = conf.buildSessionFactory();
        // 4.打開一個與數據庫相關的Session對象
        Session session = sf.openSession();
        // 5.開啟事務,基於Session得到
        Transaction t = session.beginTransaction();
        // 6.通過session保存數據
        session.save(um);
        // 7.提交事務
        t.commit();
        // 8.操作完畢後,關閉session連接對象
        session.close();

Hibernate入門------HelloWord