多语言展示
当前在线:1687今日阅读:113今日分享:31

IntelliJ IDEA配置 Hibernate

由于最近在学习Hibernate时,特别是在Mac+idea16+Mysql网上的环境搭建教程比较少,另一个原因也是为了记录自己在建立Hibernate项目时所遇到的一系列问题,特此写下该文档来记录,方便自己和他人日后遇到同样的问题,能少走弯路。关于一些配置文件 代码可以看看我的博客smiletm.github.io在这里就不演示了。
工具/原料
1

Mac

2

IntelliJ IDEA2016

3

MySQL

方法/步骤
1

由于Maven有良好的仓库管理的优点,方便导入必要Jar包,也便于用户管理本地的Jar文件,因此此次简单项目的建立如图 新建Maven项目。由于只是简单的项目演示,不必选相应的模板,直接点Next

2

建立好项目后,打开Maven配置文件pom.xml并如图,添加相应的Jar包依赖。junit 有较好的分部调试的功能,可以方便我们对部分方法的调试;其中,hibernate-core的Jar包才是该项目的核心文件。如果,本地仓库中没有,则idea会自动从远程仓库中下载相应的文件到本地仓库。(出现下不动的情况很正常,具体原因你懂得)

3

导入成功后。如图,在项目包,鼠标右键打开Add Framework Support为项目添加相应的框架。

4

打开后如图选中Hibernate,由于已从Maven中导入了相关的库,idea会自动识别。如果未识别,请手动匹配相关的库。

5

以上有两个可选项:Create default hibernate configuration and main classImport database schema第一个是创建一个系统默认的hibernate的测试类(初学Hibernate时建议勾选,因为它会 给你提供相应的一些建立session的方法及帮助),勾选后会生成如下调试代码:第二个是导入已有的数据库Table,若此时已建立相应的Table,则可勾选,若没有则 后期在来创建。

6

添加完成后,打开右上角的项目架构图标然后打开后如图选中Modules —>Hibernate —> + hibernate.cfg.xml ,来添加相应的配置文件,一路ok。

7

由于Idea不像Eclipse可以根据写好的映射类来自动生成相应的hbm映射文件,但Idea可以根据已有的表来生成相应的hbm映射文件。因此我们先建立数据库。如下图设置

8

接下来根据相应数据库的表来建立相应的映射类及hbm映射配置文件。如图 ,一路OK。

9

并将默认生成的hbm文件手动移动到resources中,默认位置与生成的类位置相同,如果未移动,则会报错 找不到映射文件

10

接下来,在hibernate.cfg.xml中写入相应的数据库信息 这里 不做具体演示,具体配置可以看看我的博客。

11

然后就是写测试代码,由于度娘没有Markdown功能,这里就不贴代码了 具体可以看看我的博客。

12

有关Hibernate写入数据 中文问题报错:Dec 02, 2016 11:46:02 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions WARN: SQL Error: 1366, SQLState: HY000 Dec 02, 2016 11:46:02 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'NAME' at row 1 Dec 02, 2016 11:46:02 PM org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl release INFO: HHH000010: On release of batch it still contained JDBC statements Dec 02, 2016 11:46:02 PM org.hibernate.internal.ExceptionMapperStandardImpl mapManagedFlushFailure ERROR: HHH000346: Error during managed flush [org.hibernate.exception.GenericJDBCException: could not execute statement]我是通过MySQLWorkbench来建的表,如果出现上面的错误,主要有2个原因1.检查hibernate.cfg.xml中url是否强调为utf-82.检查MySQL默认的编码是否为utf-8解决办法: 原因1:在相应的URL中添加useUnicode=true&characterEncoding=utf-8 。 原因2:如图在MySQLWorkbench中修改(或在创建表时 明确为UTF-8)

注意事项

数据库 和 数据库URL 一定要设置为UTF-8

推荐信息