码迷,mamicode.com
首页 > 数据库 > 详细

IDEA中使用Hibernate数据库框架指导

时间:2015-10-14 21:35:09      阅读:396      评论:0      收藏:0      [点我收藏+]

标签:

 

         

1.   创建工程

通过idea创建一个支持hibernate数据库的project,在创建工程的时候需要有一些必须的操作, 下面逐步进行说明

第一步:创建Idea Project

 技术分享

 技术分享

 注意,这里要勾选Hibernate。

 技术分享

指定工程的目录。

第二步:配置数据库

通过右边栏中的Database选项卡创建一个MySQL的DataBase的实例。

 技术分享

这里填写本地MySQL的信息,包括使用的数据库,这里提前在MySQL数据库中创建了一个名称是test的Database。填写完成之后,点击中间右侧的Test Connection按钮测试连接,正常的情况下会显示连接成功。如下图:

 技术分享

第三步:新建Package,用来操作数据库

新建一个com.test的package:

技术分享 

第四步:导入数据结构

根据idea右下角的Persistence按钮召唤出来项目的配置

技术分享

然后右击Hibernate->Generate persistence maping->By data scheme。在弹出框里面按照要求填写下面的数据表。

技术分享 

上一步完成之后,就可以在src/com/test包中按照数据库中test中hibernate数据表的结构生成了一个HibernateEntity的java class了。这个过程是自动的。如图:

 技术分享       

2.   测试数据库的操作

第一步:修改hibernate.cfg.xml文件

该文件为当前项目的Hibernate配置文件,需要添加数据库访问信息。如下图所示:

技术分享 

这里因为没有加入mysql的jar包,所以这里是红色的警告信息。

可以通过两种方式添加jar包。

  • 手动下载jar包,并将其拷贝到项目的LIB库中。
  • 配置poem.xml,通过maven来自动下载依赖的jar包

通过idea右侧的Maven Project来添加poem.xml,poem.xml的编写可以自行百度搜索。

 技术分享

添加好之后的maven project如下所示:

 技术分享

可以看一下左侧的项目目录中的External lib中已经有了mysql的库了。Hibernate.cfg.xml中mysql的driver已经不会告警了。但是这里的文件是自动生成的,并不完整,我们来完善它。

 技术分享

 完善之后的配置如下:

 技术分享

第二步:生成数据库实体类的配置文件

对于当前的工程来说,该实体类为HibernateEntity。在该类的同级目录下生成一个名为HibernateEntity.hbm.xml的配置文件,指定类中属性和数据表中的字段的对应关系,示例如下:

 技术分享       

第三步:生成测试程序并运行

测试程序如下,这里只演示了添加一条数据,可以看到,这里对数据表的操作完全由对类的操作来替换了。

这里需要注意,如果在运行的时候提示没有可用的方法,可以看看是不是当前项目中有多个不同版本的hibernate的jar包,如果有的话,删掉其他的,只保留一个版本即可。

 技术分享

 通过mysql-font工具访问mysql数据库,可以看到已经添加了一条数据:

 技术分享

3.   注意事项

以上只简单地测试了增加一条数据的操作。对于其他的复杂数据库操作该如何实现,可以等后续有具体需求的时候再去考虑。

从上面的测试可以看出,hibernate可以完全屏蔽对数据库的操作,完全地通过操作类来操作数据库。这样的方式有利有弊。好处是开发人员用起来比较简单。相对的弊端也是很明显的:无法对具体的sql语句进行授权或者灵活地操作sql语句。

另外,我们在对数据库操作的时候需要注意安全问题,最明显的就是sql注入。有多种方式避免编码引入SQL注入隐患。一是对输入的字符串类型的数据进行过滤,过滤掉明显的危险字符,这种方式要求对sql注入有足够的认识,适合高级开发人员。二是对SQL语句进行预处理,将过滤操作交给底层库来实现,我们只需要将对应的字段预处理后交给SQL查询语句即可。

Hibernate也是可以实现SQL预处理的,这时候需要我们自己定义SQL查询语句,下面给出一个范例供参考:

SQLQuery query = session.createSQLQuery("select * from note where id = ?");

//设置第一个参数的值为12,即查询ID=12的note

query.setParameter(0, 12);

List list = query.list();

 

IDEA中使用Hibernate数据库框架指导

标签:

原文地址:http://www.cnblogs.com/xuxiake/p/4878701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!