Hibernate 第一步(2006-06-05)

原创 2006年06月05日 17:18:00
  • 下载Hibernate软件和ant软件,然后解压缩
  • 我第一个例子的目录层次结构如下:

              Hibernate
                              -----build.xml
                              ----src
                                        --------onlyfun.caterpillar.FirstHibernate.java
                                        --------onlyfun.caterpillar.User.java
                              ----classes
                                        --------hibernate.cfg.xml
                                        --------onlyfun
                                                                --------caterpillar
                                                                                           --------FirstHibernate.class
                                                                                           --------User.class

  •   注意我的Hibernate目录是C:/hibernate/hibernate-3.2,我把用于Mysql连接的驱动程序mysql-connector-java-3.1.11-bin房子Hibernate目录的lib子目录下
  • 首先看build.xml,这里说明了很多问题,注意
                                            
     <?xml version="1.0" encoding="GBK"?>
    <project name="hibernate" basedir="." default="run">
    <!--****************************************************************************-->
    <property environment="env" />
    <property name="hibernateDir" value="C:/hibernate/hibernate-3.2"/>
    <property name="srcdir" value="src"/>
    <property name="classesDir" value="classes"/>
    <!--****************************************************************************-->
    <!-- 定义Hibernate和它所有JAR的classpath -->
    <path id="hibernate.lib.path">
            <fileset dir="${hibernateDir}/lib">
                <include name="**/*.jar"/>
            </fileset>

                     <fileset dir="${hibernateDir}">
                                         <include name="hibernate3.jar"/>
                    </fileset>
            </path>
           <!--定义class-->

             <path id="project.classpath">                          

                        <pathelement location="${classesDir}"/>

             </path>
        <!--****************************************************************************-->

            <!-- 创建存放编译文件的目录 -->
                <target name="init">                            
                          <mkdir dir="${classesDir}"/>
           </target>
     <!--**********************************************-->
           <!--这里开始编译-->
           <target name="compile" depends="init">          
                    <javac srcdir="${srcdir}" destdir="${classesDir}">
                                  <!-- 为编译添加Hibernate的类路径 -->
                                    <classpath refid="hibernate.lib.path" />
                   </javac>
             </target>
<!--**********************************************-->
<!--  运行编译好的类文件 -->
              <target name="run" depends="compile">         
                      <!-- 运行类 -->
                      <java classname="onlyfun.caterpillar.FirstHibernate">
                                     <!--说明这个class文件的位置-->
                                     <classpath refid="project.classpath"/>
                                     <!-- 添加Hibernate去运行Java文件 -->
                                    <classpath refid="hibernate.lib.path" />
                      </java>
                       <echo>配置成功echo>
             </target>

         </project>

  • 现在是两个类

    //现在是User类

    package onlyfun.caterpillar;
    public class User
    {
     private Integer id;
     private String name;
     private Integer age;
     // 必須要有一個預設的建構方法
     // 以使得Hibernate可以使用Constructor.newInstance()建立物件
     public User() {    }
     public Integer getId()
     {
      return id;
     }   
     public void setId(Integer id)
     {       
      this.id = id;
     }   
     public String getName()
     {       
      return name;   
     }   
     public void setName(String name)
     {
      this.name = name;  
     }       
     public Integer getAge()
     {
      return age;   
     }  
     public void setAge(Integer age)
     {      
      this.age = age;   
     }
    }

          

然后是FirstHibernate类

package onlyfun.caterpillar;
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class FirstHibernate
{
 public static void main(String[] args)
 {       
  // Configuration 負責管理 Hibernate 配置訊息
  Configuration config = new Configuration().configure();
  // 根據 config 建立 SessionFactory
  // SessionFactory 將用於建立 Session
  SessionFactory sessionFactory = config.buildSessionFactory();
  // 將持久化的物件
  User user = new User();
  user.setName("caterpillar");
  user.setAge(new Integer(30));
  // 開啟Session,相當於開啟JDBC的Connection
  Session session = sessionFactory.openSession();
  // Transaction表示一組會話操作
  Transaction tx= session.beginTransaction();
  // 將物件映射至資料庫表格中儲存
  session.save(user);
  tx.commit();
  session.close();
  sessionFactory.close();
  System.out.println("新增資料OK!請先用MySQL觀看結果!");
 }
}

  • 最后是配置文件两个

    hibernate.cfg.xml文件:

    <?xml version="1.0" encoding="GB2312"?>
    <!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="show_sql">true</property>
      
      <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
      
      <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
      
      <property name="connection.url">jdbc:mysql://localhost/sample</property>
      
      <property name="connection.username">root</property>
      
      <property name="connection.password">3008602</property>
      
      <mapping resource="onlyfun/caterpillar/User.hbm.xml"/>
     </session-factory>
    </hibernate-configuration>



    User.hbm.xml文件:


    <?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>
     <class name="onlyfun.caterpillar.User" table="user">
      <id name="id" column="id" type="java.lang.Integer">
       <generator class="native"/>
      </id>
      <property name="name" column="name" type="java.lang.String"/>
      <property name="age" column="age" type="java.lang.Integer"/>
     </class>
    </hibernate-mapping>
  • 数据库结构:
    sample数据库,里面建立了一个表
    CREATE TABLE user (
        id INT(11) NOT NULL auto_increment PRIMARY KEY,
        name VARCHAR(100) NOT NULL default '',
        age INT
    );
  • 现在运行ant,然后到数据库里面查看,就发现有记录了

进入编程世界的第一步

这是一篇翻译的文章,原文地址:https://medium.freecodecamp.org/my-first-steps-into-the-world-of-software-development...
  • mogoweb
  • mogoweb
  • 2018年01月09日 17:00
  • 86

学习前端的第一步:HTML

test one 网站第一标题 导航链接一 导航链接二 导航链接...
  • SunnyCM
  • SunnyCM
  • 2016年09月10日 22:09
  • 294

Hibernate学习第一步

今天我在网上查的Hibernate学习的基础的第一个简单例子。 实体类代码如下: package domain; public class News { //news members p...
  • Anglebeat
  • Anglebeat
  • 2014年03月30日 17:30
  • 810

hibernate初学者的第一步

1 新建项目 2 学习建立user-library-hibernate,并加入相应的jar包   a.项目右键-build path-configure build path-add librar...
  • lo5sea
  • lo5sea
  • 2011年12月18日 23:38
  • 505

Hibernate HelloWorld(第一步)

本地类的实现: package com.zzk.hibernate.model; public class Student { private int id; private St...
  • opzoonzhuzhengke
  • opzoonzhuzhengke
  • 2012年05月16日 14:12
  • 648

Hibernate annotation 第一步

首先看一下构建configuration:              Configuration config = new AnnotationConfiguration();区别于XML下构建con...
  • SamuelGavin
  • SamuelGavin
  • 2011年04月13日 18:35
  • 239

Python开发之路第一步-安装

win8.1下安装Python 3.4教程,有需要的朋友可以看看
  • u012891571
  • u012891571
  • 2015年07月14日 10:23
  • 228

Hibernate 学习之第一步

Hibernate     学习总结之第一步 经过一个星期做左右的学习,对hibernate 有了“些”了解,于是就写下了这篇文章记录所学所感 Hibernate的优势: 1.一个开发源代码的...
  • u010918288
  • u010918288
  • 2013年07月21日 17:08
  • 434

javascript第一步

简介 javascript是弱类型的面向对象语言(指的是在定位变量时不必声明变量类型)html和ccs设置后页面依然是个模型,javascript的引入让网页动起来、为页面增加了灵动 知识点...
  • baidu_37573266
  • baidu_37573266
  • 2017年02月25日 22:41
  • 59

迈出数据分析与机器学习的第一步

数据分析机器学习-牛刀小试数据分析太火爆,怎奈机器学习太难懂!随着人工智能的浪潮卷卷袭来,机器学习已经越来越火爆啦。数据分析与机器学习岗位可谓供不应求,但是入门的门槛也是蛮高的,究竟了机器学习太难学还...
  • tangyudi
  • tangyudi
  • 2017年04月07日 10:54
  • 1025
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate 第一步(2006-06-05)
举报原因:
原因补充:

(最多只允许输入30个字)