编写第一个 Hibernate 例子

avatar 2017年07月24日22:00:04 0 2047 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此

一、新建 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">
  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">
  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,如图



7、最终运行结果如下

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



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







本文链接:https://liuyanzhao.com/5368.html
  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0