目录
2.5 创建hibernate核心配置文件hibernate.cfg.xml
hibernate基本数据类型映射:——可参考链接:hibernate基本数据类型映射
1. Hibernate-orm
Domain model persistence for relational databases |
Orm:Object relational mapping,对象映射关系,用于对象与关系型数据库关联映射框架。
2. 快速上手
2.1 步骤
创建数据库表t_user
创建java对象User.java
添加jar包
创建映射文件
创建hibernate核心配置文件hibernate.cfg.xml
测试
2.2 创建数据库表t_user
CREATE DATABASE hibernate_207 CHARSET `UTF8`; CREATE TABLE t_user( id INT(9) PRIMARY KEY AUTO_INCREMENT, uname VARCHAR(50) NOT NULL ); |
2.3 创建java对象User.java
2.4 添加jar
以及添加mysql-connection.jar
2.5 创建hibernate核心配置文件hibernate.cfg.xml
注意:还要安装一个专门为hibernate开发的工具:
eclipse安装步骤:
选择add进行在线安装,选择archive从本地来选择上面我们说那个zip工具包:
然后点击选择:
依次点击下一步即可,装完之后我们的配置文件在写的时候就会有智能提醒。并且,我们在new的时候,可以专门去找hibernate.cfg.xm文件,下一步会有图形化选择来让我们填写。
而在IDEA中,没有install new software这个操作,在IDEA中,我们是这么做的:
首先,对项目目录进行必要的配置:
- 在main目录下添加resources文件夹,并且设置为resource
- 在test目录下添加resources文件夹,并且设置为test-resources
具体方法如下:
IDEA中给项目添加支持的框架,右击项目名,选择add framework support.如果里面没有的话,就到File---settings里面-----plugin搜索添加apply。然后restart我们的idea,就可以到add framework support里面看到我们想要的框架名字。勾选,apply。
上面有两个可选项:
Create default hibernate configuration and main class
Import database schema
第一个是创建一个系统默认的hibernate的测试类(初学Hibernate时建议勾选,因为它会 给你提供相应的一些建立session的方法及帮助),勾选后会生成如下调试代码;
第二个是导入已有的数据库Table,若此时已建立相应的Table,则可勾选,若没有则 后期在来创建。
添加完成后,点击上面的项目架构图标
进入project structure中的facets中,点击右边那个+号,就可以生成hibernate.cfg.xml。
下面是我们核心配置文件的具体内容:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 1.方言:指定数据库类型 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 2.配置数据源 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate_207</property>
<property name="connection.username">root</property>
<property name="connection.password">111111</property>
<!-- 打印sql -->
<property name="show_sql">true</property>
<!-- 3.加载映射文件 -->
<mapping resource="com/sxt/model/user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
2.6 创建映射文件
user.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- package:java对象包路径 -->
<hibernate-mapping package="com.sxt.model">
<!-- 配置对象与table表关系 -->
<class name="User" table="t_user">
<!-- 指定主键 name:表示java对象属性名 column:table表中的字段 -->
<id name="id" column="id" type="integer">
<!-- 配置主键自增策略 -->
<generator class="native"/>
</id>
<!-- 配置其他属性与字段关联关系 -->
<property name="uname" column="uname" type="string"/>
</class>
</hibernate-mapping>
hibernate基本数据类型映射:——可参考链接:hibernate基本数据类型映射
我们使用的IDEA,那么在IDEA中,我们配置号hibernate核心文件之后,可以通过数据库中的表来自动创建orm配置文件。
首先我们先把数据库工具窗口打开
然后点击小绿+,选择MySQL
把该填写的都填上。
然后点击测试连接:如果像上图一样,这个Test Connection不显示的话,点击下方的下载(蓝色的Download)
然后我们就可以看到可以显示了。
保存连接之后,就可以看到数据库的具体内容:
下面是我们看到的数据库的具体内容:
然后,我们把persistent工具打开:
在这个窗口下面右击项目名:
Generate Persistence Mapping -> By Database Schema 根据数据库来创建映射。
按照上图进行选择,注意红线框起来的部分。
点击OK,我们可以看到不光是orm配置文件,连对应的类都帮我们建立好了。
点开brm.xml和类文件,会发现有一些报错提示。 如果有的话,那么我们选择点击alt+enter,提示让我们锁定数据源。
直接点enter进入
鼠标点选,OK即可。(IDEA之强大,让我一天比一天喜欢)
提醒:看两种方式建立起来的brm.xml文件有什么差别,我们在学习使用快捷便利的工具的同时,不要忘记思考。另外,这种方式还给我们生成了hibernate.cfg.xml文件,里面没有给我们写所连接数据库的用户名和密码,注意添加!!!!
2.7 测试类
package com.sxt.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import com.sxt.model.User;
public class Helloworld {
public static void main(String[] args) {
//1.加载配置文件
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml");
//2.创建sessionFactory cfg.buildSessionFactory()已被废弃
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry);
//3.打开全新session
Session session = sessionFactory.openSession();
try {
//事务
Transaction ts = session.beginTransaction();
User user = new User();
user.setUname("bjsxt");
//添加数据
session.save(user);
//提交事务
ts.commit();
} catch (Exception e) {
}finally {
//关闭连接
if(session!=null){
session.close();
}
if(sessionFactory!=null){
sessionFactory.close();
}
}
}
}