虽然hibernate3.2版本已经很旧了,但是为了适应某些场合的应用和了解下hibernate,来学习一下3.2版本!
1:添加hibernate的jar文件:
hibernate根目录下面的:hibernate3.jar;
hibernate/lib下面的全部jar文件;
2:手动copy,hibernate.cfg.xml:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- hibernate连接的url --> <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernateTest</property> <!-- hibernate连接驱动 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 数据库名字 --> <property name="hibernate.connection.username">root</property> <!-- 数据库密码 --> <property name="hibernate.connection.password">mysql</property> <!-- 数据库方言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 输出sql语句 --> <property name="show_sql">true</property> <!-- 找到实体类的文件 --> <mapping resource="cn/keith/hibernate/model/User.hbm.xml" /> </session-factory> </hibernate-configuration>
3:建立实体类,里面有user的属性,并给出set(),get()方法:
user.java:
package cn.keith.hibernate.model; public class User { private String id; private String username; private String sex; private String mail; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getMail() { return mail; } public void setMail(String mail) { this.mail = mail; } }
4:创建实体类相应的XXX.hbm.xml文件:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!-- 默认的表面会与实体类名相同 --> <class name="cn.keith.hibernate.model.User" > <!-- 设置主键,uuid不唯一 --> <id name="id"> <generator class="uuid" /> </id> <!-- 表里属性,默认的与表同名,也可修改用到column=""属性 --> <property name="username" /> <property name="sex" /> <property name="mail" /> </class> </hibernate-mapping>
5:写测试类:TestDB.java:
package cn.keith.hibernate.model; import org.hibernate.cfg.Configuration; import org.hibernate.tool.hbm2ddl.SchemaExport; public class TestDB { public static void main(String[] args) { // 读取hibernate配置文件 Configuration cfg = new Configuration().configure(); //将实体类转换为DDL语言,创建表 SchemaExport export = new SchemaExport(cfg); export.create(true, true); } }
如果Configuration cfg = new Configuration();会报:
Exception in thread "main" org.hibernate.HibernateException: The dialect was not set. Set the property hibernate.dialect.
错误!
*:数据库得自己创建,将配置在hibernate.cfg.xml的
<property name="hibernate.connection.url">jdbc:mysql://localhost/hibernateTest</property>
里!