现在java有挺多的IDE,如IntelliJ IDEA,Eclipse,NetBeans等等很多
我使用的是eclipse
然后eclipse要如何安装Hibernate插件?
当时着实被这个卡了好久
刚开始我使用的是eclipse4.10
然后再eclipse的marketplace上搜索JBossTool根本找不到,或者找到了下载之后不能用,甚至导致ide崩溃了
后来发现,jbossTool插件对不同版本的eclipse是一一对应的,这个就很烦,后来害的我重新下载了一个eclipse
然后eclipse本身也是很多版本的,什么水星金星乱七八糟的昵称,刚开始实在弄混了
怎么选择eclipse版本和jbossTool,可以直接去jbossTool的官网上去查
地址:
https://tools.jboss.org/downloads/devstudio/2019-03/12.11.0.GA.html#marketplace
如上图,
Red Hat CodeReady Studio 12.11.0.GA支持的是2019-03版本的eclipse
Red Hat CodeReady Studio 12.9.0.GA 支持的是2018-09版本的eclipse
而我使用的2018-12恰好夹在了他们中间,没有支持的插件(刚开始头都大了,刚开始的方向是找支持2018-12的插件,为此卡了好久)
后来我换了2019-03版本的eclipse
安装方法:
在官网中找到对应你eclipse的插件版本->点击 Eclipse Marketplace
按网站指示将install的那个图标拖动到eclipse内,接下来就按照提示来就好了
安装完成后
右键->new-other
搜索hibernate会出现以下四个东西:
主要用到的是第一个和第四个
第一个是配置数据库相关连接信息的
第二个是描述表和类映射的
说一下上述几个参数
hibernate.connection.driver_class 驱动类型
hibernate.dialect 数据库方言
这两个用于指定何种关系型数据库,必须两个互相对应
Default Schema 默认架构名称
不要写,刚开始以为是写数据库名称,后来发现生成的sql语句时都变成了数据库名.表名,然后就会报找不到表的错误
指定数据库在url中指定就行了
这东西一般不怎么用,使用举例:
use myDB
go
create schema myschema --先建立
go
alter schema myschema transfer dbo.myTable --移动对象至建立的schema下
go
Default Catalog:默认目录(最好不要写)
一般建立表最好前面都加上dbo
dbo即是datebase Owner
如果通过用dbo作为所有者来定义对象,能够使数据库中的任何用户引用而不必提供所有者名称。
比如:你以User1登录进去并建表Table,而未指定dbo, 当用户User2登进去想访问Table时就得知道这个Table是你User1建立的,要写上User1.Table,如果他不知道是你建的,则访问会有问题。 如果你建表时把所有者指给了dbo,则别的用户进来时写上Dbo.Table就行了,不必知道User1。
HHH000228: Running hbm2ddl schema update
java.lang.NullPointerException
我写了dbo之后,报了这个错。(暂时也没有特别的清楚,不写就行了,不知道是不是用的sa账号什么的缘故)
最后:url
这个里边指定了IP地址:端口号(注意后面端口号,不同数据库的端口号可能是不同的,甚至这个端口号可以在数据库配置管理工具那边修改,注意务必别写错)
并且指定了数据库名称
username:一般sa或者其他都行
password:密码
其他没出现在上面的重要配置值:
<property name="show_sql">true</property>
是否显示sql语句
这个在调试过程中挺重要的
<property name="hibernate.current_session_context_class">thread</property>
这个指定了事物的配置,本地事物还是全局事物
全局事物写jta,本地写thread
(这个写了就能getCurrentSession了)
<mapping
resource="com/XXX/hbm/XXXX1.hbm.xml" />
这个指定了映射资源文件
<property name="hibernate.hbm2ddl.auto">update</property>
参考地址: https://www.cnblogs.com/stonefeng/p/5758580.html
举例:
<?xml version="1.0" encoding="UTF-8"?>
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="hibernate.connection.url">jdbc:sqlserver://127.0.0.1:1433;databaseName=XXXX
</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">123456</property>
<property name="show_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect
</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<mapping
resource="com/XXX/hbm/XXXX1.hbm.xml" />
<mapping
resource="com/XXX/hbm/XXXX2.hbm.xml" />
</session-factory>
</hibernate-configuration>
另外 :hibernate配置文件的目录问题:
必须放在资源文件夹下!
以上完成了最基本的配置了
下一篇会粗略的讲一下另一个配置文件 hbm.xml