运行环境
jdk: 1.8
mysql: 5.7
mysql-connector-java: 8.0 (手动配置)
hibernate: 5.2.17 (手动配置)
1、最外层test项目
File -> New -> Project -> 左侧选择Maven,右侧选择项目的SDK,点击Next 。
设置项目名字及位置。
2、生成dao层
File -> New -> Module.. -> 左侧选择Maven,即创建maven项目。
将该项目继承于1生成的testmvn最外层项目,GroupId和Version会继testmvn项目,直接生成,只需要填写ArtifactId即可。
点击next,即可看到该项目的存储位置位于testmvn文件夹下面。
user-dao项目生成之后,可以看到最外层的pom.xml文件(即testmvn)中添加了新的module。
此处IDEA右下角提示maven发生变化,需要点击"Import Changes",将修改后的pom.xml进行应用。
3、生成service层
采用与2相同的步骤生成user-service项目,并点击"Import Changes"进行应用。
4、连接数据库
点击IDEA右上角Database,如下图选择mysql进行连接。
如下图所示,根据自己数据库的用户名和密码进行配置mysql数据库连接。
点击"Test Connection",显示Successful表明数据库连接成功,点击Apply和OK。输入sql语句运行成功。
5、Hibernate项目
Step 1 新建Hibernate项目
File -> New Module -> 注意此处左侧选择Java,在右侧选择Hiernate,勾选下面Create default hibernate configuration and main class.
选择Use library,点击Create。进入下载的Hibernate文件夹,点击lib -> required,将所有的jar文件点击OK添加进去。
进入名字和位置配置界面,如下图所示。
Step 2 自动生成实体类
点击左下角Persistence,进入HibernateModule,在hibernate.cfg.xml点击右键,选择最下面Generate Persistence Mapping,点击By Database Scheme。进入如下界面。
在该界面中配置三个地方:
(1) Choose Data Source: 选择4配置的数据库连接,即localhost。
(2) Package: 生成的实体类的位置。
(3) 在下面Database Schema Mapping勾选要生成实体类的表。
6、Bug解决
Bug 1. mysql的jar包需要导入。
需要在项目中导入mysql的jar包。
File -> Project Structure.. 进入如下界面
在左侧Modules中选择需要导入的项目,点击+号,选择mysql的jar包进行导入。
Bug 2. 数据库连接没有设置用户名和密码
Bug 3. 数据库时区不统一
将hibernate.cfg.xml设置成下文
注意此处:
(1) property必须在mapping 的前面,否则会报错property无效或者格式问题。
(2) 在mysql5.7版本中,时区问题只需要在数据库连接后面添上"?serverTimezone=UTC",不同版本的解决方法不同。