Java EE入门教程系列第六章Hibernate框架(三)——第一个Hibernate项目

超、凢脫俗 2022-04-12 08:39 412阅读 0赞

6.3 创建一个Hibernate项目

6.3.1 Hibernate项目开发的一般步骤

1)新建Java工程

2)导入MySQL数据库的JDBC驱动

3)导入Hibernate库

4)新建POJO文件

5)创建POJO文件对应的数据库及表

6)新建Hibernate配置文件hibernate.cfg.xml

7)新建Hibernate映射向导(就是选择数据库和数据表)文件hibernate.hbm.xml

8)编写main()函数,通过Hibernate配置文件和映射文件对POJO类进行持久化处理,将对该类的操作永久地保存到MySQL数据库中

6.3.2 项目实例(注意:根据数据库版本和hibernate版本的不同,配置、java语句也有所不同,最好根据自己的版本去找资料)

首先介绍一下如何在eclipse配置hibernate环境:

打开eclipse,点击help—>eclipse marketplace,如图输入:Hibernate 搜索,找到JBoss Tools

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70

点击install安装

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 1

选择Hibernate Tools,点击Confrm安装。安装完成后重启eclipse,项目右键->new->other,如果有Hibernate Configuration File则说明配置成功。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 2

接着先去官网下载需要的jar包:http://hibernate.org/orm/

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 3

点击releases-overview,选择右上角latest版本,选择需要的版本,点击download等待几秒后就开始下载了

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 4

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 5

下面按照之前说的步骤进行:

1)新建一个Java应用程序项目,命名H1。file-new-project-java-java project

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 6

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 7

2)添加mysql驱动程序。右击项目-build path-configure build path-add external jars找到你自己电脑里的数据库jar包加入

3)添加hibernate库。右键项目-build path-add libraries-user libraries-new-随便填写一个名字(我填的是hibernate)-add external jars将解压完的各个文件夹jar包都加入进来

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 8

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 9

导入后结构为:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 10

4)创建实体类User1。在项目H1中新建java类文件,命名为User1.java。

  1. import java.util.Date;
  2. public class User1 {
  3. private int id;
  4. private String username;
  5. private String password;
  6. private Date createTime;
  7. private Date expireTime;
  8. public int getId() {
  9. return id;
  10. }
  11. public void setId(int id) {
  12. this.id = id;
  13. }
  14. public String getUsername() {
  15. return username;
  16. }
  17. public void setUsername(String username) {
  18. this.username = username;
  19. }
  20. public String getPassword() {
  21. return password;
  22. }
  23. public void setPassword(String password) {
  24. this.password = password;
  25. }
  26. public Date getCreateTime() {
  27. return createTime;
  28. }
  29. public void setCreateTime(Date createTime) {
  30. this.createTime = createTime;
  31. }
  32. public Date getExpireTime() {
  33. return expireTime;
  34. }
  35. public void setExpireTime(Date expireTime) {
  36. this.expireTime = expireTime;
  37. }
  38. }

5)创建数据库及表。首先创建数据库studb,接着在此数据库中创建表user1,表结构中的每个字段应与User1类中定义的成员变量一一对应,数据类型也应该是对应的,如下图(数据库的下载、建表不再介绍):

20181203074557387.png

6)新建hibernate配置文件。先新建包h1(下图是没有新建包的情况,后面觉得还是放在包里比较好),然后项目src右键-new-other-找到下图

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 11

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 12

注意:这一步版本不能选择最新的,否则点击finish会出现没有响应无法创建的情况!!!

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 13

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5. <session-factory>
  6. <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  7. <property name="hibernate.connection.password">java</property>
  8. <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/studb</property>
  9. <property name="hibernate.connection.username">root</property>
  10. <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  11. <mapping resource="User1.hbm.xml"/>
  12. </session-factory>
  13. </hibernate-configuration>

7)新建hibernate映射向导(就是选择数据库和数据表)

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 14

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTk2MDQx_size_16_color_FFFFFF_t_70 15

可以找到项目工作空间,找到该xml文件,用记事本打开查看或者修改,由此文件可以看出类和表的映射关系

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!-- Generated 2018-12-3 8:58:57 by Hibernate Tools 3.5.0.Final -->
  5. <hibernate-mapping>
  6. <class name="h1.User1" table="user1">
  7. <id name="id" type="int">
  8. <column name="id" />
  9. <generator class="increment" />
  10. </id>
  11. <property name="username" type="java.lang.String">
  12. <column name="username" />
  13. </property>
  14. <property name="password" type="java.lang.String">
  15. <column name="password" />
  16. </property>
  17. <property name="createTime" type="java.util.Date">
  18. <column name="createTime" />
  19. </property>
  20. <property name="expireTime" type="java.util.Date">
  21. <column name="expireTime" />
  22. </property>
  23. </class>
  24. </hibernate-mapping>

8)编写main()函数H1.java

  1. import java.util.Date;
  2. import org.hibernate.HibernateException;
  3. import org.hibernate.Session;
  4. import org.hibernate.SessionFactory;
  5. import org.hibernate.Transaction;
  6. import org.hibernate.cfg.Configuration;
  7. public class H1 {
  8. public static void main(String[] args) {
  9. // TODO Auto-generated method stub
  10. try {
  11. SessionFactory sf=new Configuration().configure().buildSessionFactory();
  12. Session session=sf.openSession();
  13. Transaction tx=session.beginTransaction();
  14. for(int i=0;i<5;i++) {
  15. User1 u1=new User1();
  16. u1.setUsername("user"+i);
  17. u1.setPassword("java");
  18. u1.setCreateTime(new Date());
  19. u1.setExpireTime(new Date());
  20. session.save(u1);//将User1对象逐个保存到session中
  21. }
  22. tx.commit();//提交事务,将User1对象永久化保存到数据库中
  23. session.close();
  24. }catch(HibernateException e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. }

发表评论

表情:
评论列表 (有 0 条评论,412人围观)

还没有评论,来说两句吧...

相关阅读