1.说明:Idea 下,项目对应于 Eclipse 下的 workspace,Module 对应于 Eclipse 下的项目。Idea 下,新添加的项目既可以单独作为一个 Project,也可以作为一个 Project 下的 Module。

2.本篇文章介绍内容:

(1)如何在 Project 新建 Hibernate Module。

(2)如何添加 jar 包到 Module 下。

(3)如何添加 hibernate.cfg.xml,以及如何自定义模板。

(4)如何添加 Entity.hbm.xml 文件,以及自动生成实体。

3.在最开始前,添加 Hibernate 的插件。

4.如何在 Project 下新建 Hibernate Module。

(1)新建一个空项目。

(2)点击 Finish 之后,会弹出 Module 结构图。

(3)新建 Hibernate Framework 的 Module。

说明:第一处表红的地方选择后会默认创建 hbm.cfg.cml 文件以及一个测试类,点击 Configure 会弹出第二张图,需要注意的是 level 的选择。

(4)创建完成。

5.如何添加 jar 包到 Module 下。

(1)打开 Project Structure 。

(2)选择 library。选择从 maven 从下载。

(3)点击 OK 后,会弹出 Configure Library 的弹窗,同样注意 level 的选取。

(4)选中添加的 Jar 包,点击 Add Selected 按钮完成添加。

6.如何添加 hibernate.cfg.xml,以及如何自定义模板。

(1)若在新建 Module 的时候没有选择创建 hibernate.cfg.xml 文件,可以通过如下的方式来添加。

(2)点开 Project Structure

点击加号,选择 hibernate.cfg.xml。

(3)默认添加的 hibernate.cfg.xml。

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url"/>
<property name="connection.driver_class"/>
<property name="connection.username"/>
<property name="connection.password"/>
<!-- DB schema will be updated if needed -->
<!-- <property name="hbm2ddl.auto">update</property> -->
</session-factory>
</hibernate-configuration>

(4)自定义模板。

如果觉着 Idea 给添加的 hibernate.cfg.xml 不太友好的话,可以通过自定义模板的方式来添加适合自己的文件。

点击 OK 之后就可以使用添加的 hibernate.cfg.xml。

7.如何添加 Entity.hbm.xml 文件,以及自动生成实体。

(1)说明:在 Eclipse 下,添加 Hibernate tool 后,可以根据已经创建的实体去创建对应的 Entity.hbm.xml 文件,然后在程序启动的时候,

会在数据库生成对应的表信息。而在 Idea 下,是根据表和 hibernate.cfg.xml 去创建的实体和 Entity.hbm.xml 文件,至于能否根据实体

去创建 Entity.hbm.xml 和表信息,现在还没有探索出来,探索出来时再进行补充,也希望知道的童鞋告诉我,谢谢。

(2)在 hibernate.cfg.xml 文件中配置连接数据库基本信息,以及 Hibernate 基本信息和自动生成数据表策略。

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 配置连接数据库的基本信息 -->
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///hibernate</property> <!-- 配置 Hibernate 的基本信息 -->
<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 指定自动生成数据表的策略 -->
<property name="hbm2ddl.auto">update</property> </session-factory>
</hibernate-configuration>

(3)点击 Persistance 视图(View-ToolWindow-Persistance 或 直接点击快捷方式)

如果没有已经创建的 data source ,可以通过点击标红的按钮进行添加。如:

在不勾选 JPA Annotations 的情况下,生成的实体不含 JPA 注解。如:

/**
* @author solverpeng
* @create 2016-09-28-14:11
*/
public class NewsEntity {
private int id;
private String name; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public boolean equals(Object o) {
if(this == o) {
return true;
}
if(o == null || getClass() != o.getClass()) {
return false;
} NewsEntity that = (NewsEntity) o; if(id != that.id) {
return false;
}
if(name != null ? !name.equals(that.name) : that.name != null) {
return false;
} return true;
} @Override
public int hashCode() {
int result = id;
result = 31 * result + (name != null ? name.hashCode() : 0);
return result;
}
}

NewsEntity.java

对应的 NewsEntity.hbm.xml 文件

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping> <class name="com.nucsoft.hibernate.NewsEntity" table="news" schema="hibernate">
<id name="id">
<column name="id" sql-type="int(11)"/>
</id>
<property name="name">
<column name="name" sql-type="varchar(50)" length="50"/>
</property>
</class>
</hibernate-mapping>

NewsEntity.hbm.xml

在勾选 JPA Annotations 的情况下,生成的实体包含 JPA 注解。如:

/**
* @author solverpeng
* @create 2016-09-28-14:16
*/
@Entity
@Table(name = "news", schema = "hibernate", catalog = "")
public class NewsEntity {
private Integer id;
private String name; @Id
@Column(name = "id", nullable = false)
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} @Basic
@Column(name = "name", nullable = false, length = 50)
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public boolean equals(Object o) {
if(this == o) {
return true;
}
if(o == null || getClass() != o.getClass()) {
return false;
} NewsEntity that = (NewsEntity) o; if(id != null ? !id.equals(that.id) : that.id != null) {
return false;
}
if(name != null ? !name.equals(that.name) : that.name != null) {
return false;
} return true;
} @Override
public int hashCode() {
int result = id != null ? id.hashCode() : 0;
result = 31 * result + (name != null ? name.hashCode() : 0);
return result;
}
}

NewsEntity.java

注意: Gennerate Separate XML per Entity 这个选项,意思是为每一个 Entity 生成一个 hbm.xml 文件。

在勾选 Genernate JPA Annotations 选项的情况下,可以不勾选它。但是如果没有勾选 Genernate JPA Annotations 选项,需要勾选 Gennerate Separate XML per Entity。

8.总结:

介绍了 Intellij Idea 下如何新建 Hibernate 项目以及如何生成配置信息。事实上,Idea 还能完成表和表之间关系的处理,和 hql 语句的测试,关于这两个方面,在以后的文章中进行探索说明。

同样也介绍了 Module 的新建。

9.题外篇

如何添加别的框架?如上面添加了 Hibernate 框架,那么如何再添加 Spring 框架呢?

看图说话,可以通过此种方式来添加。

Intellij Idea 15 下新建 Hibernate 项目以及如何添加配置的更多相关文章

  1. IDEA 下新建 Hibernate 项目

    Hibernate 概述 什么是 Hibernate 一个 Java 领域的持久化框架 一个 Java 领域的ORM 框架 什么是持久化 持久化是指把对象永久保存到数据库中 持久化包括和数据库相关的各 ...

  2. Eclipse下新建Maven项目、自动打依赖jar包

    当我们无法从本地仓库找到需要的构件的时候,就会从远程仓库下载构件至本地仓库.一般地,对于每个人来说,书房只有一个,但外面的书店有很多,类似第,对于Maven来说,每个用户只有一个本地仓库,但可以配置访 ...

  3. eclipse下新建maven项目

    eclipse下新建maven项目 1.1下载maven安装包 进入Maven官网的下载页面:http://maven.apache.org/download.cgi,如下图所示:\ 选择当前最新版本 ...

  4. 在windows下新建maven项目

    1.拷贝settings到.m2文件下 2.修改文件 3.新建Project项目 4.转换为maven项目 config下转换 5.拷贝pom文件 6.新建目录 src/main/java src/m ...

  5. 096实战 在windows下新建maven项目

    1.拷贝settings到.m2文件下 2.修改文件 3.新建Project项目 4.转换为maven项目 config下转换 5.拷贝pom文件 <project xmlns="ht ...

  6. nodejs备忘总结(一) -- node和express安装与配置,新建简单项目(附安装配置过程中遇到问题的解决方法)

    安装node 本文以安装node_v8.9.0为例(win10环境),下载node-v8.9.0-x64.msi插件 下载后,安装,安装目录默认为C:\Program Files\nodejs 配置环 ...

  7. IntelliJ IDEA 15开发Java Maven项目

    1.安装好之后开始创建项目

  8. linux下新建svn项目

    1.新建项目svnadmin create /mnt/fbdisk/svn/newproject 2.会在svn下面建立newproject目录total 24drwxr-xr-x 2 root ro ...

  9. IntelliJ IDEA src下新建包, 没有层级结构

    新建项目后再src先右键点击新建包  com.example  , 然后想在com.example 包中包含其他包, 当点击src新建包后,出现如图的情况 解决: 继续在src上右键新建package ...

随机推荐

  1. Objective-C中block的底层原理

    先出2个考题: 1. 上面打印的是几,captureNum2 出去作用域后是否被销毁?为什么? 同样类型的题目: 问:打印的数字为多少? 有人会回答:mutArray是captureObject方法的 ...

  2. 前端学Markdown

    前面的话   我个人理解,Markdown就是一个富文本编辑器语言,类似于sass对于css的功能,Markdown也可以叫做HTML预处理器,只不过它是一门轻量级的标记语言,可以更简单的实现HTML ...

  3. 46张PPT讲述JVM体系结构、GC算法和调优

    本PPT从JVM体系结构概述.GC算法.Hotspot内存管理.Hotspot垃圾回收器.调优和监控工具六大方面进行讲述.(内嵌iframe,建议使用电脑浏览) 好东西当然要分享,PPT已上传可供下载 ...

  4. npm package.json属性详解

    概述 本文档是自己看官方文档的理解+翻译,内容是package.json配置里边的属性含义.package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象.其中很多属性可以通过np ...

  5. 【原创经验分享】WCF之消息队列

    最近都在鼓捣这个WCF,因为看到说WCF比WebService功能要强大许多,另外也看了一些公司的招聘信息,貌似一些中.高级的程序员招聘,都有提及到WCF这一块,所以,自己也关心关心一下,虽然目前工作 ...

  6. PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)

    一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...

  7. Android中Fragment与Activity之间的交互(两种实现方式)

    (未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...

  8. 通过几个Hello World感受.NET Core全新的开发体验

    2016年6月27日,这是一个特殊的日子,微软全新的.NET开发平台.NET Core的RTM版本正式发布.我个人将.NET Core的核心特性归结为三点,它们的首字母组成一个非常好记的简称——COM ...

  9. Vue.js——60分钟browserify项目模板快速入门

    概述 在之前的一系列vue.js文章,我们都是用传统模式引用vue.js以及其他的js文件的,这在开发时会产生一些问题. 首先,这限定了我们的开发模式是基于页面的,而不是基于组件的,组件的所有代码都直 ...

  10. WinRT自定义控件第一 - 转盘按钮控件

    之前的文章中,介绍了用WPF做一个转盘按钮控件,后来需要把这个控件移植到WinRT时,遇到了很大的问题,主要原因在于WPF和WinRT还是有很大不同的.这篇文章介绍了这个移植过程,由于2次实现的控件功 ...