Hibernate学习——建立一个简单的Hibernate项目

最近老师让做个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 <?xml version=‘1.0‘ encoding=‘UTF-8‘?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5
 6 <!-- Generated by MyEclipse Hibernate Tools.                   -->
 7 <hibernate-configuration>
 8
 9     <session-factory>
10         <property name="dialect">
11             org.hibernate.dialect.MySQLDialect
12         </property>
13         <property name="hibernate.connection.url"><!-- 填写数据库路径 -->
14             jdbc:mysql://127.0.0.1:3306/lan
15         </property>
16         <property name="connection.username">root</property><!-- 填写数据库用户名 -->
17         <property name="connection.password">root</property><!-- 填写数据库密码 -->
18         <property name="connection.driver_class"><!-- 填写数据库驱动 -->
19             com.mysql.jdbc.Driver
20         </property>
21         <property name="myeclipse.connection.profile">lan</property>
22         <mapping resource="./User.hbm.xml" /><!-- 表映射文件-->
23
24     </session-factory>
25
26 </hibernate-configuration>

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

然后写一个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 <?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 <!--
 5     Mapping file autogenerated by MyEclipse Persistence Tools
 6 -->
 7 <hibernate-mapping>
 8     <class name="model.User" table="user" catalog="lan">
 9         <id name="id" type="int">
10             <column name="U_ID" length="11" />
11             <generator class="assigned"></generator>
12         </id>
13         <property name="name" type="string">
14             <column name="U_NAME" length="20" not-null="true" />
15         </property>
16         <property name="password" type="string">
17             <column name="U_PASSWORD" length="20" not-null="true" />
18         </property>
19     </class>
20 </hibernate-mapping>

其中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中取出一个Session
11 session=factory.openSession();
12 Transaction tran=session.beginTransaction();
13 //执行语句
14 this.session.save(user);
15 //提交事务
16 tran.commit();//

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

时间: 2024-10-03 02:26:49

Hibernate学习——建立一个简单的Hibernate项目的相关文章

TCP学习之建立一个简单的客户/服务器系统--回射系统

TCP学习之建立一个简单的客户/服务器系统--回射系统 相关的资料可以参考Unix网络编程,这个只是修改版,不需要依赖任何文件,可以独立编译通过,而且是在两台不同的主机上进行的. fggets和fputs这两个函数来自标准I/O函数库,writen和readline见my_unp.h头文件 //my_unp.h #include<stdarg.h> #include<syslog.h> #include<stdio.h> #include<netinet/in.h

Hibernate学习笔记(1)Hibernate配置

一 准备工作 首先我们将创建一个简单的基于控制台的(console-based)Hibernate应用程序. 我们所做的第一件事就是创建我们的开发目录,并且把所有需要用到的Java库文件放进去.解压缩从Hibernate网站下载的Hibernate发布包,并把所有需要的库文件拷到我们项目中去. 学习建User-library-hibernate,并加入相应的jar包 (a)项目右键-buildpath-configure build path-add library (b)选择User-libr

Hibernate学习笔记(1)Hibernate构造

一 准备工作 首先,我们将创建一个简单的基于控制台(console-based)Hibernate应用. 我们所做的第一件事就是创建我们的开发文件夹.并把所有需要用到的Java件放进去.解压缩从Hibernate站点下载的Hibernate公布包.并把全部须要的库文件拷到我们项目中去. 学习建User-library-hibernate,并增加对应的jar包 (a)项目右键-buildpath-configure build path-add library watermark/2/text/a

Django入门第一步:构建一个简单的Django项目

Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将按照以下步骤创建功能完备的Web应用程序,并一路学习框架的一些最重要的功能以及它们如何协同工作. 学习目标: 了解Django是什么以及为什么他是一个伟大的web框架 了解Django的体系结构以及与其他框架的对比 独立搭建一个简单的Django项目和应用程序(app) 2.为什么要学习Django

【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement

本blog提供了一个简单的通过JDBC驱动建立JDBC连接例程,并分别通过Statement和PreparedStatement实现对数据库的查询.在下一篇blog中将重点比较Statement与PreparedStatement的差异. 1.为项目添加JDBC驱动 1)JDBC驱动下载 官方下载地址:mysql-connector-java-5.0.8.zip CSDN资料下载地址:mysql-connector-java-5.0.8.zip 2)为项目添加JDBC驱动 建立项目Java项目J

Ogre: 建立一个简单的框架——关于场景节点

[转载请保证内容的完整性和正确性] 建立一个简单的框架——关于场景节点 如果我们要做一个类似于<跑跑卡丁车>的游戏,人物模型是需要随着卡丁车模型一起进行各种变换的(平移.旋转等),我们需要分别计算两个关联的模型的位置吗?这样能解决问题,但是太麻烦了,利用Ogre的场景节点可以很方便地解决这种问题. 添加一个新的模型 之前添加的模型都是由3DMAX等软件导出的模型,接下来我们利用Ogre生成一个Cube模型. 1 //DemoManager.cpp 2 Ogre::ManualObject* c

Ogre: 建立一个简单的框架——响应键盘事件

[转载请保证内容的完整性和正确性] 建立一个简单的框架——响应键盘事件 上一节我们在场景中添加了一个机器人,这一节我们将建立一个FrameListener类(顾名思义,这是一个侦听类),来控制模型进行移动. 创建FrameListener类 FrameListener类主要负责事件的侦听,如帧结束.键盘输入等事件.它继承自ExampleFrameListener类,如果需要的话还可以继承KeyListener(键盘事件).MouseListener(鼠标事件)和JoyStickListener(

WebADI_建立一个简单的WebADI实现日记账上传(案例)

2014-06-01 BaoXinjian 一.摘要 WebADI原本固定资产导入和日记账导入的一些工具发展而来,因为财务部门人员大多非常熟悉Excel,希望竟可能尽量多的使用Excel工具去进行财务操作 而WebADI提供了这样一种可能性通过excel,将资料建立客制化的API或Interface处理,导入至EBS中 在11i中,WebADI可能还不够完善,还需要很多代码操作和注册 在R12中,WebADI的功能有进一步的加强 个人觉得,如果资料导入API或Interface不是太过频繁,数据

一个简单的Hibernate工具类HibernateUtil

HibernateUtil 1 package com.wj.app.util; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.cfg.Configuration; 6 import org.hibernate.service.ServiceRegistry; 7 import org.hibernate.service.ServiceRegistry