小海賊的夜晚

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            14 隨筆 :: 0 文章 :: 9 評論 :: 0 Trackbacks

          這是一個簡單的例子

          1. 在mySQL中建立一張USER表。

          CREATE TABLE USER (
              user_id CHAR(32) NOT NULL PRIMARY KEY,
              name VARCHAR(16) NOT NULL,
              sex CHAR(1),
              age INT
          );

          2. 建立一個pojo

          package com.xy;

          public class User {
              private String id;
              private String name;
              private char sex;
              private int age;

              public int getAge() {
                  return age;
              }

              public String getId() {
                  return id;
              }

              public String getName() {
                  return name;
              }

              public char getSex() {
                  return sex;
              }

              public void setAge(int i) {
                  age = i;
              }

              public void setId(String string) {
                  id = string;
              }

              public void setName(String string) {
                  name = string;
              }

              public void setSex(char c) {
                  sex = c;
              }
          }

          3. hibernate.cfg.xml文件

          <?xml version='1.0' encoding='utf-8'?>
          <!DOCTYPE hibernate-configuration
              PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
              "

          <hibernate-configuration>

              <session-factory>

                  <!-- 顯示實際操作數據庫時的SQL -->
                  <property name="show_sql">true</property>
                  <!-- SQL方言,這里設定的是MySQL -->
                  <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
                  <!-- JDBC驅動程式 -->
                  <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
                  <!-- JDBC URL -->
                  <property name="connection.url">jdbc:mysql://localhost/jiejie</property>
                  <!-- 用戶名 -->
                  <property name="connection.username">root</property>
                  <!-- 密碼-->
                  <property name="connection.password"></property>

                  <!-- 映射文件 -->
                  <mapping resource="User.hbm.xml"/>

              </session-factory>

          </hibernate-configuration>

          4. User.hbm.xml

          <?xml version="1.0"?>
          <!DOCTYPE hibernate-mapping
              PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
              "

          <hibernate-mapping>

              <class name="com.xy.User" table="USER">

                  <id name="id" type="string" unsaved-value="null">
                      <column name="user_id" sql-type="char(32)" />
                      <generator class="uuid.hex"/>
                  </id>

                  <property name="name" type="string" not-null="true">
                      <column name="name" length="16" not-null="true"/>
                  </property>

                  <property name="sex" type="char"/>

                  <property name="age" type="int"/>

              </class>

          </hibernate-mapping>

          5. 測試文件

          package com.xy;

          import java.util.List;
          import java.util.ListIterator;

          import org.apache.commons.logging.Log;
          import org.apache.commons.logging.LogFactory;

          import net.sf.hibernate.*;
          import net.sf.hibernate.cfg.*;

          public class HibernateTest {
           private static Log log = LogFactory.getLog(HibernateTest.class);
           public void find() {
            SessionFactory sessionFactory;
            try {
             sessionFactory = new Configuration().configure()
               .buildSessionFactory();

             Session session = sessionFactory.openSession();

             List users = session.find("from User");

             session.close();
             sessionFactory.close();

             for (ListIterator iterator = users.listIterator(); iterator
               .hasNext();) {
              User user = (User) iterator.next();
              System.out.println(user.getName() + "\n\tAge: " + user.getAge()
                + "\n\tSex: " + user.getSex());
             }
            } catch (HibernateException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            }

           }

           public void insert() {

            SessionFactory sessionFactory;
            try {
             sessionFactory = new Configuration().configure()
               .buildSessionFactory();

             User user = new User();
             user.setName("caterpillar");
             user.setSex('M');
             user.setAge(23);

             Session session = sessionFactory.openSession();
             Transaction tx = session.beginTransaction();
             session.save(user);
             tx.commit();
             session.close();
             sessionFactory.close();

             System.out.println("插入數據OK!請在MySQL查看結果!");
            } catch (HibernateException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            }
           }

           public static void main(String[] args) throws HibernateException {

            new HibernateTest().find();
            new HibernateTest().insert();

           }
          }

          6. 文件結構和所用到的jar包


           
          7. 操作結果

          log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
          log4j:WARN Please initialize the log4j system properly.
          Hibernate: select user0_.user_id as user_id, user0_.name as name, user0_.sex as sex, user0_.age as age from USER user0_
          caterpillar
           Age: 28
           Sex: M
          caterpillar
           Age: 28
           Sex: M
          caterpillar
           Age: 28
           Sex: M
          caterpillar
           Age: 23
           Sex: M
          qqqqq
           Age: 20
           Sex: M
          www
           Age: 21
           Sex: M
          yyy
           Age: 20
           Sex: M
          yyy
           Age: 20
           Sex: M
          yyy
           Age: 20
           Sex: M
          yyy
           Age: 20
           Sex: M
          Hibernate: insert into USER (name, sex, age, user_id) values (?, ?, ?, ?)
          插入數據OK!請在MySQL查看結果!


          評論

          # re: 第一個Hibernate例子 2005-09-07 16:21 jingchh
          調試不通 ,老大  回復  更多評論
            

          # re: 第一個Hibernate例子 2005-09-19 11:54 海賊
          報什么錯?  回復  更多評論
            

          # re: 第一個Hibernate例子 2006-10-11 08:58 暗暗
          List users = session.find("from User");
          應該改成List users = session.createQuery("from User").list();
          下邊在改
            回復  更多評論
            

          # re: 第一個Hibernate例子 2007-01-17 14:46 fanf
          D:\resin-3.0.18\webapps\test\WebRoot\WEB-INF\classes>java com.netease.test.MyTes
          t
          Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/HibernateException

          為什么會出現這樣的錯誤  回復  更多評論
            

          # re: 第一個Hibernate例子[未登錄] 2007-08-08 00:05 sky
          注意hibernate的版本:net.sf.hibernate.dialect.MySQLDialect是以前的,現在用org.hibernate.dialect.MySQLDialect等 你查看下hibernate包里面的hibernate.properties找到MySQL,你就清楚了。。。好像有三個  回復  更多評論
            

          # re: 第一個Hibernate例子 2009-08-05 17:16 orz
          大贊。。跑起來了。。。改了半天發現只要把"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
          改成"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
          大贊lz  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 津市市| 米林县| 无为县| 大洼县| 枞阳县| 堆龙德庆县| 马边| 平定县| 化德县| 肇庆市| 柳林县| 鹤岗市| 曲阜市| 隆林| 铜山县| 怀安县| 灌云县| 桐城市| 武宁县| 晋城| 大竹县| 广元市| 徐汇区| 阳城县| 长沙县| 济阳县| 武川县| 万州区| 庄河市| 河西区| 崇义县| 永仁县| 临城县| 呼和浩特市| 南川市| 金堂县| 承德县| 逊克县| 土默特左旗| 紫金县| 曲松县|