小海賊的夜晚

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            14 隨筆 :: 0 文章 :: 9 評(píng)論 :: 0 Trackbacks

          這是一個(gè)簡(jiǎn)單的例子

          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. 建立一個(gè)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>

                  <!-- 顯示實(shí)際操作數(shù)據(jù)庫(kù)時(shí)的SQL -->
                  <property name="show_sql">true</property>
                  <!-- SQL方言,這里設(shè)定的是MySQL -->
                  <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
                  <!-- JDBC驅(qū)動(dòng)程式 -->
                  <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. 測(cè)試文件

          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("插入數(shù)據(jù)OK!請(qǐng)?jiān)贛ySQL查看結(jié)果!");
            } 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. 文件結(jié)構(gòu)和所用到的jar包


           
          7. 操作結(jié)果

          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 (?, ?, ?, ?)
          插入數(shù)據(jù)OK!請(qǐng)?jiān)贛ySQL查看結(jié)果!


          評(píng)論

          # re: 第一個(gè)Hibernate例子 2005-09-07 16:21 jingchh
          調(diào)試不通 ,老大  回復(fù)  更多評(píng)論
            

          # re: 第一個(gè)Hibernate例子 2005-09-19 11:54 海賊
          報(bào)什么錯(cuò)?  回復(fù)  更多評(píng)論
            

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

          # re: 第一個(gè)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

          為什么會(huì)出現(xiàn)這樣的錯(cuò)誤  回復(fù)  更多評(píng)論
            

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

          # re: 第一個(gè)Hibernate例子 2009-08-05 17:16 orz
          大贊。。跑起來了。。。改了半天發(fā)現(xiàn)只要把"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
          改成"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
          大贊lz  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 石渠县| 来安县| 会东县| 永春县| 北安市| 阿拉善右旗| 汶上县| 八宿县| 汝州市| 独山县| 福海县| 外汇| 甘南县| 商水县| 拉孜县| 清涧县| 抚顺县| 五常市| 含山县| 阳高县| 德化县| 石家庄市| 舟山市| 明水县| 瓮安县| 隆回县| 和顺县| 深水埗区| 甘德县| 焦作市| 塘沽区| 琼海市| 绍兴市| 乳源| 洞口县| 吉木萨尔县| 兴宁市| 八宿县| 同江市| 平顶山市| 临西县|