• 那是从何处传来的钟声呢?偶尔听到那钟声,平添一份喜悦与向往之情。

编写第一个 Hibernate 例子

后端 Nanait 12年前 (2012-10-21) 1159次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

一、新建 Java Project,取名为 Hibernate_001

导入包:参考 Eclipse 下创建 Hibernate 工程

 

二、创建 Hibernate 配置文档

1、点击 src,右键 New,选择 Other

2、选择 Hibernate 下的 第一个,即 Hibernate Configuration file (cfg.xml)

3、点击 Next,选择默认的 src,点击 Next

4、出现一个表单,问是否创建 Session factory name,我们这里暂时不创建,直接点击 Finish

5、如果 xml 文件,代码不能自动提示,可以参考这里

Eclipse 手动添加 dtd 文件使 xml 能自动提示

6、最终生成的 hibernate.cfg.xml,我们填写以下代码

  1. <?xml version=“1.0” encoding=“UTF-8”?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3.         “-//Hibernate/Hibernate Configuration DTD 3.0//EN”
  4.         “http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd&#8221;>
  5. <hibernate-configuration>
  6.     <session-factory>
  7.         <property name=“connection.username”>root</property><!– 用户名 –>
  8.         <property name=“connection.password”></property><!– 密码 –>
  9.         <property name=“connection.driver_class”>com.mysql.jdbc.Driver</property><!– jdbc 驱动 –>
  10.         <property name=“connection.url”>jdbc:mysql://127.0.0.1:3306/hibernate?useUnicode=true&amp;characterEncoding=UTF-8</property>  
  11.         <property name=“dialect”>org.hibernate.dialect.MySQLDialect</property><!– MySQL 方言 –>
  12.         <property name=“show_sql”>true</property>
  13.         <property name=“format_sql”>true</property>
  14.         <property name=“hbm2ddl.auto”>create</property><!– ddl 的生成策略 –>
  15.     </session-factory>
  16. </hibernate-configuration>

三、创建  持久化类 Student 类

Student.java

  1. import java.util.Date;
  2. //学生类
  3. public class Student {
  4.     private int sid;//学号
  5.     private String name;//姓名
  6.     private int sex;//性别
  7.     private Date birthday;//出生日期
  8.     private String address;//地址
  9.     public Student() {
  10.     }
  11.     public Student(int sid, String name, int sex, Date birthday, String address) {
  12.         //super();
  13.         this.sid = sid;
  14.         this.name = name;
  15.         this.sex = sex;
  16.         this.birthday = birthday;
  17.         this.address = address;
  18.     }
  19.     public int getSid() {
  20.         return sid;
  21.     }
  22.     public void setSid(int sid) {
  23.         this.sid = sid;
  24.     }
  25.     public String getName() {
  26.         return name;
  27.     }
  28.     public void setName(String name) {
  29.         this.name = name;
  30.     }
  31.     public int getSex() {
  32.         return sex;
  33.     }
  34.     public void setSex(int sex) {
  35.         this.sex = sex;
  36.     }
  37.     public Date getBirthday() {
  38.         return birthday;
  39.     }
  40.     public void setBirthday(Date birthday) {
  41.         this.birthday = birthday;
  42.     }
  43.     public String getAddress() {
  44.         return address;
  45.     }
  46.     public void setAddress(String address) {
  47.         this.address = address;
  48.     }
  49.     @Override
  50.     public String toString() {
  51.         return “Student [sid=” + sid + “, name=” + name + “, sex=” + sex + “, birthday=” + birthday + “, address=”
  52.                 + address + “]”;
  53.     }
  54. }

四、创建关系映射文件

1、点击 src,右键 New,选择 Other

2、选择 Hibernate 下的 第四个,即 Hibernate XML Mapping file (hbm.xml)

3、点击 Next,Next,Finish

4、最终生成 Student.hbm.xml 文件,我们可以看到以下代码

  1. <?xml version=“1.0”?>
  2. <!DOCTYPE hibernate-mapping PUBLIC “-//Hibernate/Hibernate Mapping DTD 3.0//EN”
  3. http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd&#8221;>
  4. <!– Generated 2017-7-24 20:28:18 by Hibernate Tools 3.5.0.Final –>
  5. <hibernate-mapping>
  6.     <class name=“Student” table=“STUDENT”>
  7.         <id name=“sid” type=“int”>
  8.             <column name=“SID” />
  9.             <generator class=“assigned” />
  10.         </id>
  11.         <property name=“name” type=“java.lang.String”>
  12.             <column name=“NAME” />
  13.         </property>
  14.         <property name=“sex” type=“int”>
  15.             <column name=“SEX” />
  16.         </property>
  17.         <property name=“birthday” type=“java.util.Date”>
  18.             <column name=“BIRTHDAY” />
  19.         </property>
  20.         <property name=“address” type=“java.lang.String”>
  21.             <column name=“ADDRESS” />
  22.         </property>
  23.     </class>
  24. </hibernate-mapping>

5、给  hibernate.cfg.xml 添加关系映射,即在  <session-factory> 标签内加以下代码

  1. <mapping resource=“Student.hbm.xml”/>

 

五、创建数据库

1、博主的本地 mysql 的账号是 root,密码为 空

2、创建数据库 hibernate,utf8 编码

3、我们这里不用建数据表,待会儿 Hibernate 会自动帮我生成

 

六、使用 Junit 测试

1、点击 Hibernate_001 项目(不是点 src),右键 New,选择 Source Folder

2、Folder name,填写为 test ,点击 Finish

3、点击 test 文件夹,右键 新建 StudentTest 类

4、StudentTest 代码如下

  1. import java.util.Date;
  2. import org.hibernate.Session;
  3. import org.hibernate.SessionFactory;
  4. import org.hibernate.Transaction;
  5. import org.hibernate.cfg.Configuration;
  6. import org.hibernate.service.ServiceRegistry;
  7. import org.hibernate.service.ServiceRegistryBuilder;
  8. import org.junit.After;
  9. import org.junit.Before;
  10. import org.junit.Test;
  11. //测试类
  12. public class StudentTest {
  13.     private SessionFactory sessionFactory;
  14.     private Session session;
  15.     private Transaction transaction;
  16.     @Before
  17.     public void init() {
  18.         //创建配置对象
  19.         Configuration config = new Configuration().configure();
  20.         //创建服务注册对象
  21.         ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
  22.         //创建会话工厂
  23.         sessionFactory = config.buildSessionFactory(serviceRegistry);
  24.         //创建会话对象
  25.         session = sessionFactory.openSession();
  26.         //开始事务
  27.         transaction = session.beginTransaction();
  28.     }
  29.     @After
  30.     public void destory() {
  31.         transaction.commit();//提交事务
  32.         session.close();//关闭会话
  33.         sessionFactory.close();//关闭会话工厂
  34.     }
  35.     @Test
  36.     public void testSaveStudnets() {
  37.         //生成学生对象
  38.         Student s = new Student(1,“张三丰”,1,new Date(),“武当山”);
  39.         session.save(s);//保存对象进入数据库
  40.     }
  41. }

注意:Hibernate 版本不同,可能方法不同,也会遇到不同问题,具体可以参 这里 的评论区

5、点击 StudentTest 展开,点击 testSaveStudents 方法

6、右键,run as Junit Test,如图

编写第一个 Hibernate 例子

7、最终运行结果如下

左上角为绿色条,表示成功

编写第一个 Hibernate 例子

同时,我们发现数据库里多了一张 Student 表,表里有数据

编写第一个 Hibernate 例子

 

 


何处钟 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:编写第一个 Hibernate 例子
喜欢 (0)
[15211539367@163.com]
分享 (0)

您必须 登录 才能发表评论!