作者king08 (糊涂蛋)
站内java
标题[站内] 简易 Hibernate 教学
时间Sun Apr 2 12:25:31 2006
==站内信件==
开发环境:
OS :Windows XP
Java SDK:5.0
java IDE:Eclipse 3.11
Database:MySQL 5.0.19
(请到
http://dev.mysql.com/downloads/mysql/5.0.html
点 without installer 选项下载 mysql database
请到
http://dev.mysql.com/downloads/connector/j/3.1.html
点 zip 格式的档案下载 mySQL 的 JDBC
为了管理方便请到
http://dev.mysql.com/downloads/administrator/1.1.html
跟
http://dev.mysql.com/downloads/query-browser/1.1.html
下载 mySql Administrator 跟 Query Browser
)
Hibernate:hibernate 3
(请到
http://www.hibernate.org/6.htm 点Hibernate Core下载)
Eclipse Plugins:XMLBuddy,hibernate tools,hibernate Synchronizer(可有可无)
开发环境准备完就可以进行开发工作
Step 1:开起 Eclipse
Step 2:开起一个 Java 专案
Step 3:专案命名为 HibernateDemo(请依照你的习惯来命名)
Step 4:起动 mysql,请在Dos视窗中mysql_home\bin下输入 mysqld-nt --console
Step 5:请开另一个Dos视窗在 mysql_home\bin 下输入 mysql -u root
Step 6:建立一个 sample 资料库,并建一个的 user table
SQL 语法:
create database sample;
create table `sample`.`user` (
`id` int(11) not null auto_increment,
`name` varchar(100) not null default '',
`age` int,
primary key (`id`)
)engine=InnoDB;
Step 7:准备 hibernte 需要的lib,加入Eclipse 专案建置中
hibernate 相关的 lib
log4j-1.2.11.jar
antlr-2.7.6rc1.jar
asm.jar
cglib-2.1.3.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
dom4j-1.6.1.jar
encache-1.1.jar
jta.jar
junit-3.8.1.jar
hibernate3.jar
ant.jar 此为 Ant 专案的lib
mysql-connector-java-3.1.10-bin.jar (此为MySQL的JDBC Driver)
Step 8:建立一个 User class
程式码:
package idv.study;
public class User{
private Integer id;
private String name;
private Integer age;
}
Step 9:在 User class 中建立 setter 跟 getter
Step 10:在User.java的目录中建立User的Mapping档案
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="idv.study.User" table="user">
<id name="id" column="id">
<generator class="native" />
</id>
<property name="name" column="name" />
<property name="age" column="age" />
</class>
</hibernate-mapping>
Step 11:在开发者的目录中建立hibernate config档案
hibernate.cfg.xml程式码:
<?xml version="1.0" encoding="utf-8"?>
<!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="hibernate.connection.url">
<!--选取我们所需要的Database-->
jdbc:mysql://localhost/sample
</property>
<property name="hibernate.connection.driver_class">
<!--设定JDBC所使用的Driver-->
org.git.mm.mysql.Driver
</property>
<property name="hibernate.connection.username">
<!--设定连接DataBase所需使用的username-->
root
</property>
<property name="hibernate.connection.password">
<!--设定连接DataBase所需使用的密码-->
</property>
<property name="dialect">
<!--这行我不清楚他的用意,请版上的大大解释一下吧-->
org.hibernate.dialect.MySQLDialect
</property>
<!--选取对应到DataBase的Mapping 档案-->
<mapping resource="idv/study/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
Step 12:建立一个测试类别 UserStudyDemo
程式码:
import idv.study.User;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class UserStudyDemo {
public static void main(String[] args) {
// 读取hibernate config 档案
Configuration configuration = new Configuration().configure();
Session session = configuration.buildSessionFactory().openSession();
Transaction tx = session.beginTranscation();
// 建立使用者
User user = new User();
user.setAge(new Integer(20));
user.setName("King");
// 将使用者资讯存入 session 中
session.save(user);
// 判断资料是否相等
User user2 = (User) session.get(User.class,user.getId());
System.out.print(user2.getName().equals(user.getName()));
// 将 session 资料存入资料库
tx.commit();
session.close();
}
}
Step 13:将 hibernate/etc 目录中的log4j.properties 放入专案
的 src 下面
Step 14:完成之後去资料库查看有没有将User的资料存入资料库中
在Dos视窗mysql_home\bin目录下输入:mysql -u root
进入 mysql 中,
会看到画面为 mysql>
在此画面中输入:select * from `sample`.`user`;
接着就会看到刚刚利用 UserStudyDemo 存入的资料
参考文献:
良葛格的 Spring 技术手册 碁峰出版 作者:林信良 出版年月:2006.3
深入浅出 Hibernate 博硕出版 作者: 夏昕 曹晓钢 唐勇 出版年月:2006.1
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.85.210.133