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 <hibernate-configuration> ??<!-- local connection properties --> ??<!-- dialect for MySQL --> ??????? <property name="hibernate.show_sql">True</property> User.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
??? PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
??? "
??? <session-factory >
??<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 -->
??????? <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
??????? <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
??? ?<mapping resource="User.hbm.xml"/>
??? </session-factory>
</hibernate-configuration>