您的位置:首页 > 其它

SSH学习之Hibernate的第一个程序

2017-03-16 16:37 495 查看

回忆

在之前的几篇博客里我们了解了Hibernate的一些基本的概念和用途,接下来我从环境搭建到对数据库进行CRUD操作做一次详细的讲解。(在这里JDK、Tomcat、myeclipse、MySQL都已经配置好了)

搭建环境

第一步:创建项目
个人建议还是创建WEB项目比较好,其实创建Java项目也行,在这里我就以WEB项目为例了。
第二步:导入jar包

我使用的Hibernate3.6的版本,因为这是比较稳定的一个版本,用其他版本也可从官网下载。
下载解压Hibernate之后,我们初学的只需要其中的两个文件夹下的jar包,在lib目录下。值得注意的是如果是Hibernate3.X版本的必须要引入加压后的hibernate3.jar,否则会报错。



即便是其他的版本,也只需要引入这两个文件夹的jar包。
将jar包复制到WEB-INF下的lib目录。
第三步:引入核心配置文件

核心配置文件可以从下载解压的文件中获取。hibernate-distribution-3.6.10.Final\project\etc目录下的hibernate.cfg.xml,将其拷贝到项目src目录下,删除其中的session-factory标签中的属性及它的所有子标签,然后可以参考博客SSH学习之Hibernate的配置文件对其中的一些信息进行配置,比如数据库信息。
<?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>
<!-- 配置MySQL数据库信息 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/db_hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>

<!-- 配置hibernate设置信息 -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<!--指定数据库的方言,指定MySQL-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

<!-- 导入映射文件(实体和表之间的映射关系) -->
<mapping resource="pojo/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>


第四步:导入MySQL驱动包

MySQL的驱动包可以到官网下载驱动包下载,可以选择版本。将MySQL驱动包也导入项目的lib目录下。



编写程序

第一步:创建一个实体类User
package pojo;

public class User {

private Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
第二步:创建映射文件User.hbm.xml
将映射文件和User实体类放到同一个包下。
<?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">
<hibernate-mapping>
<!--
name属性:实体类的全路径,必选
table属性:指明数据库中的表名,必选
catalog属性:指明数据库的名称,可选
-->
<class name="pojo.User" table="user" catalog="db_hibernate">
<!--
id标签:每一张表都必须要有唯一的标识符,必要
name属性:标识符的名称,必选
column属性:指定标识符对应表中的哪个字段,可选,默认为和标识符同名
type属性:指定类型,可选,一般不写
-->
<id name="id" column="id">
<!--
主键的生成策略
native:根据不同的数据库而不同,MySQL的是整型并且自增长
-->
<generator class="native"></generator>
</id>
<!--
property标签:实体类和表字段的对应关系
name属性:实体类的属性,必选
column属性:表字段,可选,默认和实体类属性同名
type属性:指定类型,可选,一般不写
-->
<property name="username" column="username" />
<property name="password" column="password" />
</class>
</hibernate-mapping>
第三步:核心配置文件中引入映射文件
<!-- 导入映射文件(实体和表之间的映射关系) -->
<mapping resource="pojo/User.hbm.xml"/>
第四步:创建数据库以及相应的表
数据库名称为db_hibernate,表的名称为user。



第五步:编写测试类

利用Test进行测试,双击类名,选择run as-》JUnit Test进行测试。数据
9b6d
库表有记录,则表示成功。
如果没有JUint的jar包,可以去下载。

package test;

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

import pojo.User;

public class TestHibernate {

@Test
public void testSave() {
//加载配置文件
Configuration cfg = new Configuration();
//如果没有指定核心配置文件,那么默认加载的是src目录下的hibernate.cfg.xml
//如果核心配置文件路径改变,一定要指出路径
cfg.configure("hibernate.cfg.xml");
//生成SessionFactory
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
//开启事务
Transaction tx = session.beginTransaction();
User user = new User();
user.setUsername("王五");
user.setPassword("123abc");
try {
session.save(user);
tx.commit();
} catch (Exception e) {
tx.rollback();
} finally {
session.close();
sf.close();
}
}
}

多余的话

写这个不是为了啥,只是回想起了当初学习的时候的情形了。
     想一想当初还是各种查资料才搞定这些东西的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: