<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 成年人免费网站在线观看| 在线a免费观看最新网站| 亚洲精选在线观看| 四虎精品成人免费视频| 日韩插啊免费视频在线观看 | 狠狠综合久久综合88亚洲| 亚洲日韩乱码中文无码蜜桃臀 | 亚洲一区二区精品视频| 一级特黄aaa大片免费看| 亚洲精品高清一二区久久| 日本特黄特色AAA大片免费| 中文字幕中韩乱码亚洲大片| 亚洲三级在线免费观看| 免费可以在线看A∨网站| 中文字幕乱码亚洲精品一区| 成人免费毛片观看| 免费福利资源站在线视频| 亚洲A丁香五香天堂网| fc2成年免费共享视频18| 成年女人午夜毛片免费看 | 黄页网址在线免费观看| 无码中文在线二区免费| MM131亚洲国产美女久久| 拍拍拍无挡视频免费观看1000| 国产成人aaa在线视频免费观看| 国产精品亚洲综合天堂夜夜| 亚洲人成色77777在线观看大| 免费国产99久久久香蕉| 亚洲永久无码3D动漫一区| 午夜亚洲乱码伦小说区69堂| 亚洲日本中文字幕一区二区三区| 中国国产高清免费av片| 亚洲乱码国产乱码精品精| 永久免费在线观看视频| 亚洲AV色无码乱码在线观看| 毛片免费视频播放| 国产免费人成视频在线播放播| 精品国产亚洲男女在线线电影| 一级毛片免费视频| 亚洲18在线天美| 亚洲欧洲精品成人久久曰影片|