您的位置:首页 > 其它

Hibernate快速入门—新手Hibernate详细配置步骤介绍

2017-10-27 17:28 711 查看

一、准备jar包

创建好javaweb以后在lib下复制准备好了的Hibernate的jar包,会自动导入Web App Libraries下

下载jar包地址:http://hibernate.org/orm/



二、创建User实体类:在com.hibernate包下

package com.hibernate;

/**
* 实体User
*/
public class User {
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 String toString() {
return "[User: id=" + id + ", name=" + name + "]";
}

}


三、创建数据库

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


四、创建主配置文件:hibernate.cfg.xml

一般涉及到三个方面的配置:

1.基于JDBC数据库的属性配置,如:url、driver、username等配置

2.数据库方言dialect配置(dialect:即理解为我们是需要Orcale、Sqlserver还是Mysql的SQL语言)

3.其他配置:如hibernate.show_sql是否以日志的方式跟踪sql语句

4.数据库实体类映射文件mapper的导入:是一种ORM的实现

具体代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!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 name="myConfig">
<!-- 1.方言(连接的数据库类型) -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 2. 配置数据库信息 -->
<property name="connection.url">jdbc:mysql:3308//hibernate</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">1234</property>

<!-- 3. 其他配置 -->
<!-- 显示生成的SQL语句 以日志的形式跟踪数据sql语句-->
<property name="hibernate.show_sql">true</property>

<!-- 4. 导入映射文件 -->
<mapping resource="com/hibernate/User.hbm.xml" />

</session-factory>
</hibernate-configuration>


五、创建实体数据库映射文件user.hbm.xml(一般格式都是:实体类xxx.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">
<!--对象-关系映射文件xxx.xml:要与User类在同一个包com.hibernate下  -->
<!--JavaBean所在包的路径  -->
<hibernate-mapping package="com.hibernate">
<!--
<class name="JavaBean名称" table="对应数据库中的表名">
-->
<class name="User" table="t_user">
<!--
1.<id name="数据库中主键在JavaBean中的属性名称" column="数据库中主键名" type="数据类型">
2.id标签必须在property标签前
-->
<id name="id" type="int" column="id">
<!--
1.<generator class="映射方式"/>节点指定Hibernate向数据库插入数据时主键的生成方式
2.映射方式种类:
native:由数据库对id赋值,如:id设置为identity
identity:采用数据库提供的主键生成机制
increment:主键按数值顺序递增
......
-->
<generator class="native"/>
</id>
<!--  <property name="数据库中字段在JavaBean中的属性名称" column="数据库中的字段名" type="数据类型"/>  -->
<property name="name" type="string" column="name" />
</class>
</hibernate-mapping>


六、创建App测试java文件

向空的数据库表t_user中加入“张三记录”

user.setName("张三");


package com.hibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

public class App {

private static SessionFactory sessionFactory;

static {
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml"); // 读取指定的主配置文件
sessionFactory = cfg.buildSessionFactory(); // 根据配置生成Session工厂
}

@Test
public void testSave() {
User user = new User();
user.setName("张三");

// 保存
Session session = sessionFactory.openSession(); // 打开一个新的Session
Transaction tx = session.beginTransaction(); // 开启事务

session.save(user);

tx.commit(); // 提交事务
session.close(); // 关闭Session,释放资源
}

@Test
public void testGet() {
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

User user = (User) session.get(User.class, 1); // 获取最终的User实体类
System.out.println(user);

tx.commit();
session.close();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate 入门 配置