标签:
通过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了。这个过程是自动的。如图:
第一步:修改hibernate.cfg.xml文件
该文件为当前项目的Hibernate配置文件,需要添加数据库访问信息。如下图所示:
这里因为没有加入mysql的jar包,所以这里是红色的警告信息。
可以通过两种方式添加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数据库,可以看到已经添加了一条数据:
以上只简单地测试了增加一条数据的操作。对于其他的复杂数据库操作该如何实现,可以等后续有具体需求的时候再去考虑。
从上面的测试可以看出,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();
标签:
原文地址:http://www.cnblogs.com/xuxiake/p/4878701.html