博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate学习——建立一个简单的Hibernate项目
阅读量:5317 次
发布时间:2019-06-14

本文共 3201 字,大约阅读时间需要 10 分钟。

最近老师让做个web小应用,大三的时候学习过一点J2EE的东西,也做过一些web相关的XXX管理系统,都是用servlet,jsp这些完成的,虽然勉强能够完成任务,但其中各种代码掺杂在一起,不好看而且维护起来也很麻烦,出了一点问题要调试好久才能解决。这次打算让自己多学一点东西,在项目的架构上我使用了struts2实现了多层代码的分离,在数据库方面,因为以往的经历都需要对连接数据库进行一个封装,里面包含有数据库的连接,记录的添加,查询,修改和删除等操作,每次使用的过程中都需要先实现一个连接对象然后再进行数据库的操作,而面向对象编程中对于不同对象,传统的数据库操作只能够完成一个泛化的任务,不同的对象需要不同的处理方式,所以我们需要一个使用面向对象思想描述数据库的一个框架来完成这样的任务,通过度娘就找到了Hibernate。

那么在这里我将记录下我学习Hibernate框架的过程,以免用过之后又给忘记了。。。

今天我将完成环境的配置以及建立一个简单的Hibernate的工程,使用的开发工具为myeclipse10,数据库为mysql。

在此之前我们要做一些必要的准备:java jdk还有mysql的问题我就不说了,这里只涉及项目配置以及必要代码的编写,我们要先下载Hibernate的jar包,解压后找到这几个文件:hibernate-annotations.jar,hibernate-commons-annotations.jar,hibernate-entitymanager.jar,hibernate-validator.jar,hibernate3.jar

打开myeclipse后建立一个web项目,将上述的Jar包导入到项目中,这里我自己建立一个数据库lan,里面有一个表叫user,其中包括U_ID,U_NAME,U_PASSWORD三个,我们的任务就是在程序中实现一个User类,完成User类与数据库中user表的映射,并向表中添加一个记录。

一个hibernate的项目有必不可少的两个文件,一个是hibernate.cfg.xml,用于完成项目与数据库的映射。另一个是xxx.hbm.xml,即表与类对象映射的文件,实现类属性与表中属性的映射。

首先要完成项目与数据库的映射关系,在这里需要写一个配置文件来完成,命名为hibernate.cfg.xml,路径放在src根目录就好。

1 
2 5 6
7
8 9
10
11 org.hibernate.dialect.MySQLDialect12
13
14 jdbc:mysql://127.0.0.1:3306/lan15
16
root
17
root
18
19 com.mysql.jdbc.Driver20
21
lan
22
23 24
25 26

 

其中的表映射文件我们下面说。

然后写一个User类(注意我们的模型类和表内容必须是一一对应的,即属性之间是一一对应的关系):

1 class User{ 2     private int id; 3     private String name; 4     private String password; 5  6     public void setId(int id){ 7         this.id = id; 8     } 9     public void setName(String name){10         this.name = name;11     }12     public void setPassword(String password){13         this.password = password;14     }15 16     public int getId(){17         return id;18     }19     public String getName(){20         return name;21     }22     public String getPassword(){23         return password;24     }25 }

 

其中的数据成员分别对应数据库user表中的三个元素:U_ID,U_NAME,U_PASSWORD。

有了user类,我们下一步就是要实现数据库表user与程序中的模型类User的映射关系了,此时我们需要一个表映射文件:XXX.hbm.xml(本文我们将其命名为user.hbm.xml)

1 
2 4
7
8
9
10
11
12
13
14
15
16
17
18
19
20

 

其中class name选项是项目中数据库表对应的类路径,table选项为表名,catalog为数据库名。

完成了上述的准备过程,我们下面就要尝试对项目进行测试了,我们向数据库中添加一个的记录的代码如下:

1 User user;    //定义一个model 2 user.setId(1);   //设置user的属性值  3 user.setName("name"); 4 user.setPassword("password"); 5 Session session; 6 // 找到Hibernate配置 7 Configuration config=new Configuration().configure(); 8 //从配置中取出SessionFactory 9 SessionFactory factory=config.buildSessionFactory();10 //从SessionFactory中取出一个Session11 session=factory.openSession();12 Transaction tran=session.beginTransaction();13 //执行语句14 this.session.save(user);15 //提交事务16 tran.commit();//

以上的语句实现了向数据库中添加一条记录的效果,第一次写思维有点混乱。。。

转载于:https://www.cnblogs.com/mickeygao/p/3947066.html

你可能感兴趣的文章
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
实验4 [bx]和loop的使用
查看>>
Redis常用命令
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
centos系统python2.7更新到3.5
查看>>
【Quartz】常用方法的使用方式(三)
查看>>
MVVM模式下关闭窗口的实现
查看>>
C#区域截图——调用API截图
查看>>
c#与java中byte字节的区别及转换方法
查看>>
A WebBrowser Toy
查看>>
用MyXls生成Excel报表(C#)
查看>>
了解WP的传感器
查看>>
阅读笔记 火球——UML大战需求分析 2
查看>>
acedEvaluateLisp函数的反汇编
查看>>