<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 閱讀(263) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 久久久久亚洲AV无码去区首| 亚洲成aⅴ人片在线观| 亚洲乱色伦图片区小说| 99精品国产免费久久久久久下载| 666精品国产精品亚洲| 一级毛片免费观看不卡的| 亚洲狠狠久久综合一区77777| 国产一级黄片儿免费看| 亚洲爆乳无码一区二区三区| 久久精品免费观看国产| 亚洲欧洲第一a在线观看| 91精品成人免费国产片| 亚洲一区二区三区免费观看| 亚洲中文无码永久免费| 亚洲国产精品无码久久98| 免费一级毛片清高播放| 亚欧洲精品在线视频免费观看| 亚洲中文字幕无码一久久区| 在线涩涩免费观看国产精品 | 5g影院5g天天爽永久免费影院| 久久丫精品国产亚洲av不卡| 在线视频精品免费| 香蕉视频亚洲一级| 亚洲精品夜夜夜妓女网| 最近的中文字幕大全免费8| 亚洲天堂2017无码中文| 无码不卡亚洲成?人片| 天堂在线免费观看| 亚洲码在线中文在线观看| 午夜小视频免费观看| 国产人成网在线播放VA免费| 久久久久亚洲AV无码专区首JN| 成人免费午夜视频| 久久久久久毛片免费看| 亚洲精品国产成人| av无码东京热亚洲男人的天堂| 波多野结衣免费一区视频 | 亚洲Av无码国产一区二区| 免费大黄网站在线观| 免费无码一区二区三区| 亚洲精品一卡2卡3卡四卡乱码|