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

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();
时间: 2024-08-28 12:07:47

IDEA中使用Hibernate数据库框架指导的相关文章

在android中使用OrmLite数据库框架

android中的数据库框架OrmLite,是对android中自带数据库的封装.下面按步骤说明如何使用. 最重要的是继承OrmLiteSqliteOpenHelper,获取得到helper对象 在里面重写onCreate,onUpgrade,close等方法,完成数据库表的创建,更新,资源释放. 获取到helper对象后,就可以使用helper的getDao方法获取dao来对数据表进行操作.下面是对数据库访问的Dao进行的封装 1.继承OrmLiteSqliteOpenHelper获取help

玩转Android之数据库框架ActiveAndroid的使用

ActiveAndroid是一个开源的数据库框架,使我们在Android中使用数据库变得更为简单,今天我们就来看看这个数据库框架的使用. 1.引入ActiveAndroid 首先创建我们自己的项目,在我们的项目中引入ActiveAndroid,引入ActiveAndroid需要我们修改两个地方,一个全局gradle文件,还有一个是局部gradle文件,修改方式如下: 全局gradle文件,在jcenter()下方添加如下代码: mavenCentral() maven { url "https:

SSH框架之Hibernate数据库外键如何插入值的问题

SSH框架之Hibernate数据库外键如何插入值的问题 一.目标: 现有表: 其中Tea_id属于外键,如何向含有外键的表中插入对应的数据. 二.pojos部分 Course_information .java package com.pojos; import java.util.Date; public class Course_information { private Integer Course_id; private String Course_name; private Inte

记录使用Hibernate查询bean中字段和数据库列类型不匹配问题

今天在工程中遇到Hibernate查询的时候,bean中的字段和数据库中的字段不符合(bean中有pageTime字段,但是数据库中没有此列)报错问题. 具体问题环境: 在auto_off表中,off_time字段是bigint类型,用于存放unix时间戳,bean中对应属性类型为Long类型,但是前台传递过来的时间是String类型(2016-11-25) 解决办法1: 在bean中添加一个String类型的pageTime字段,然后前台传递过来的数据使用pageTime接收,再将值转换成lo

如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法

最近学习了下如何在MyEclipse中通过hibernate使用jtds驱动连接数据库,并向数据库添加数据的方法,虽然MyEclipse中自带了连接数据库的方法,我也尝试了下其他方法,如有不当之处请指教,具体如下: 需要的驱动包为:jtds-1.2.jar 首先创建Java项目,就叫testjtds,同时为工程添加hibernate支持 对testjtds鼠标右键,在最下面找到MyEclipse-->Add Hibernate Capabilities...之后 出现如图窗口 当然了,直接nex

JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hibernate. 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求

Struts2+Spring+Hibernate 三大框架的合并集成

这次来看看Struts2+Spring+Hibernate三大框架的整合应用,主要是Spring和Hibernate框架的整合,因为前边已经将Strtus2+Spring整合过了基本一样.  首先看一下分工吧: Struts2做的MVC的流程框架,主要完成从客户端访问到选择action的过程,其中过滤器起到了Controller的作用,action属于model,而jsp则是view页面的展示. Spring主要利用Ioc的特长来管理各种对象:action,service,dao,数据访问源,H

Struts2+Hibernate+Spring框架实现增删改查

一.添加3个框架的JAR包,完成后写配置文件: 1.web配置文件: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation=&quo

javaEE中的hibernate配置笔记

0 从web.xml出发 项目中用Spring整合Hibernate,Spring贯穿整个项目,所以先看看Spring在哪一步整合了Hibernate.先看部分web.xml. 在context-param设定参数contextConfigLocation. 在listener配置基于Web上下文级别的监听器ContextLoaderListener,它会加载contextConfigLocation中的配置文件. 其中最重要的是spring-hibernate.xml,这里面配置了hibern