<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Junky's IT Notebook

    統計

    留言簿(8)

    積分與排名

    WebSphere Studio

    閱讀排行榜

    評論排行榜

    Eclipse下Hibernate入門

    1.開發環境
    ???? Eclipse 3.2+MySQL 4.0.16+Hibernate3.0
    ??? 首先應該安裝好Eclipse和MySQL,此外準備好MySQL的JDBC Driver和Hibernate3.0,相關下載地址如下:
    ???? Eclipse SDK:
    ??????? http://www.eclipse.org/downloads/index.php?
    ?????? MySQL及MySQL的JDBC Driver:
    ?????????? http://www.mysql.org
    ?????? Hibernate:
    ????????? http://www.hibernate.org
    ?????? 此外我還安裝了Eclipse的一個Hibernate插件:
    ???? Hibernate synchronizer
    ?????????? http://hibernatesynch.sourceforge.net


    ?????? Plugin Search:
    ???????? http://eclipse-plugins.2y.net/eclipse/search.jsp?

    ?????? Hibernate synchronizer插件的安裝和配置有問題請直接Google。

    ???? 在工程中其實只用到了Hibernate synchronizer插件的一部分功能,Hibernate依賴的相關jar包最好還是手動添加,因為最開始用Hibernate synchronizer添加時總是發生錯誤。
    ???? 將下載的Mysql driver和Hibernate包解壓縮,我們需要的只是里面相關的jar,在Eclipse中新建Mysql_Driver和Hibernate兩個user library,將mysql-connector-java-3.0.15-ga-bin.jar加入Mysql_Driver中,將hibernate3.jar,
    ,log4j-1.2.11.jar,antlr-2.7.5H3.jar,asm.jar,asm-attrs.jar,cglib-2.1.2.jar,commons-collections-2.1.1.jar,commons-logging-1.0.4.jar,dom4j-1.6.1.jar,ehcache-1.1.jar,jta.jar加入到Hibernate中。

    2.開始
    在Mysql中新建test數據庫(Mysql其實有個空的test數據庫),然后新建下面的Table

    create table user (
    ?id int(10) not null auto_increment primary key,
    ?name varchar(20) not null,
    ?password varchar(20) not null,
    ?email varchar(50),
    ?address varchar(100)
    )type=innodb;


    新建Java Project,將Mysql_Driver,Hibernate兩個user library添加到該工程的java build path中。

    新建與數據表對應的POJO類:User和Contact

    /**
    ?*
    ?*?
    ?*/
    package com.user;

    /**
    ?* @author lzy
    ?*
    ?*/
    public class User{
    ??? private Integer id;
    ??? private String name;
    ??? private String password;
    ??? private Contact contact;
    ???

    ?/**
    ? * @return Returns the id.
    ? */
    ?public Integer getId() {
    ??return id;
    ?}
    ?/**
    ? * @param id The id to set.
    ? */
    ?public void setId(Integer id) {
    ??this.id = id;
    ?}
    ?/**
    ? * @return Returns the name.
    ? */
    ?public String getName() {
    ??return name;
    ?}
    ?/**
    ? * @param name The name to set.
    ? */
    ?public void setName(String name) {
    ??this.name = name;
    ?}
    ?/**
    ? * @return Returns the password.
    ? */
    ?public String getPassword() {
    ??return password;
    ?}
    ?/**
    ? * @param password The password to set.
    ? */
    ?public void setPassword(String password) {
    ??this.password = password;
    ?}
    ?/**
    ? * @return Returns the contact.
    ? */
    ?public Contact getContact() {
    ??return contact;
    ?}
    ?/**
    ? * @param contact The contact to set.
    ? */
    ?public void setContact(Contact contact) {
    ??this.contact = contact;
    ?}
    ???
    ???
    }
    /**
    ?*
    ?*/
    package com.user;

    /**
    ?* @author lzy
    ?*
    ?*/
    public class Contact {
    ?private String email;
    ??? private String address;

    ?/**
    ? * @return Returns the address.
    ? */
    ?public String getAddress() {
    ??return address;
    ?}
    ?/**
    ? * @param address The address to set.
    ? */
    ?public void setAddress(String address) {
    ??this.address = address;
    ?}
    ?/**
    ? * @return Returns the email.
    ? */
    ?public String getEmail() {
    ??return email;
    ?}
    ?/**
    ? * @param email The email to set.
    ? */
    ?public void setEmail(String email) {
    ??this.email = email;
    ?}
    }

    之后可以用synchronizer插件生成Hibernate配置文件和映射文件(相關過程可以參考http://www.ideagrace.com/html/doc/2005/08/01/00315.html),不過映射文件必須稍作修改。

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

    <hibernate-configuration>
    ??? <session-factory >

    ??<!-- local connection properties -->
    ??<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
    ??<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    ??<property name="hibernate.connection.username"></property>
    ??<property name="hibernate.connection.password"></property>
    ??<!-- property name="hibernate.connection.pool_size"></property -->

    ??<!-- dialect for MySQL -->
    ??????? <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

    ??????? <property name="hibernate.show_sql">True</property>
    ??????? <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    ??? ?<mapping resource="User.hbm.xml"/>


    ??? </session-factory>
    </hibernate-configuration>

    User.hbm.xml

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

    <hibernate-mapping package="com.user">
    ?<class
    ??name="User"
    ??table="user"
    ?>
    ??<id
    ???name="Id"
    ???type="integer"
    ???column="id"
    ??>
    ???<generator class="native"/>
    ??</id>

    ??<property
    ???name="Name"
    ???column="name"
    ???type="string"
    ???not-null="true"
    ???length="20"
    ??/>
    ??<property
    ???name="Password"
    ???column="password"
    ???type="string"
    ???not-null="true"
    ???length="20"
    ??/>
    ??<component name="Contact" class="Contact">
    ???<property
    ???name="Email"
    ???column="email"
    ???type="string"
    ???not-null="false"
    ???length="50"
    ??/>
    ??<property
    ???name="Address"
    ???column="address"
    ???type="string"
    ???not-null="false"
    ???length="100"
    ??/>
    ??</component>
    ??


    ?</class>?
    </hibernate-mapping>

    ?

    3.測試
    添加一個測試類:HibernateTest

    package com.user;

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

    import org.hibernate.*;
    import org.hibernate.cfg.*;

    public class HibernateTest {
    ??? public static void main(String[] args) throws HibernateException {
    ??????? SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
    ???????
    ??????? //
    ??????? //testInsert(sessionFactory);
    ???????
    ??????? //
    ??????? testQuery(sessionFactory);
    ???????
    ?????????
    ??????? sessionFactory.close();
    ???????
    ??? }
    ??? public static void testInsert( SessionFactory sessionFactory )throws HibernateException {
    ??? ?
    ? ?? ?Session session = sessionFactory.openSession();
    ??????? Transaction tx= session.beginTransaction();
    ??????? User user = new User();
    ??????? Contact contact=new Contact();
    ??????? contact.setEmail("email");
    ??????? contact.setAddress("address");
    ???????
    ??????? user.setName("caterpillar");
    ??????? user.setPassword("password");
    ??????? user.setContact(contact);
    ???????
    ??????? session.save(user);
    ??????? tx.commit();
    ??????? session.close();
    ??????? System.out.println("OK!");
    ? ?}
    ???
    ??? public static void testQuery( SessionFactory sessionFactory )throws HibernateException {
    ??? ?
    ??? ?Session session = sessionFactory.openSession();
    ??????? Transaction tx= session.beginTransaction();
    ??????? User user = new User();
    ??????? Contact contact=new Contact();
    ?????????????????
    ??????? Query query=session.createQuery("from User as user");
    ??????? //query.setCharacter(1, 'M');
    ??????? List names =query.list();
    ??????? for(ListIterator it=names.listIterator();it.hasNext();){
    ????????? ?user= (User)it.next();
    ????????? ?System.out.println("Id: " + user.getId());
    ??????????? System.out.println("name: " + user.getName());
    ??????????? System.out.println("password: " + user.getPassword());
    ??????????? if(user.getContact()!=null){
    ??????????? ?
    ??????????? ?if(user.getContact().getEmail()!=null){
    ??????????? ??System.out.println("Email: " + user.getContact().getEmail());
    ??????????? ?}
    ??????????? ?if(user.getContact().getAddress()!=null){
    ??????????? ??System.out.println("Address: " + user.getContact().getAddress());
    ???????????????
    ??????????? ?}
    ??????????? }
    ???????????
    ???????????
    ???????????
    ??????? }
    ?????????
    ??????
    ??????? tx.commit();
    ??????? session.close();
    ??? ?
    ??? }
    }

    posted on 2006-05-22 20:35 junky 閱讀(256) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲av无码乱码国产精品| 亚洲一区精品无码| 亚洲欧洲国产经精品香蕉网| 久久免费观看国产精品88av| 亚洲爆乳无码一区二区三区| 日韩精品免费视频| 久久国产亚洲高清观看| 3d成人免费动漫在线观看| 久久久久亚洲AV片无码下载蜜桃| 无码人妻一区二区三区免费n鬼沢| 亚洲国产精品无码久久一线 | 亚洲一区AV无码少妇电影☆| 国产无遮挡色视频免费观看性色 | 亚洲av色香蕉一区二区三区 | 黄色视频在线免费观看| 亚洲国产三级在线观看| 久久永久免费人妻精品下载| 亚洲毛片免费观看| 午夜免费福利在线观看| 一个人看的hd免费视频| 久久精品国产亚洲AV麻豆王友容 | 亚洲乱码在线观看| 国产性生交xxxxx免费| xxxx日本在线播放免费不卡| 亚洲av中文无码乱人伦在线播放| 麻豆最新国产剧情AV原创免费| 亚洲欧美日韩一区二区三区在线| 亚洲麻豆精品国偷自产在线91| 国内精品一级毛片免费看| 亚洲日产2021三区| 免费观看日本污污ww网站一区| 最近免费中文字幕MV在线视频3 | 2019中文字幕免费电影在线播放| 伊人久久亚洲综合影院首页| 亚洲综合最新无码专区| 久草视频免费在线观看| 免费一级全黄少妇性色生活片| 久久亚洲私人国产精品| 成人伊人亚洲人综合网站222| 91久久青青草原线免费| 黄色一级毛片免费|