SSH学习之Hibernate的第一个程序

回忆

在之前的几篇博客里我们了解了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进行测试。数据库表有记录,则表示成功。
  • 如果没有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();
		}
	}
}

多余的话

写这个不是为了啥,只是回想起了当初学习的时候的情形了。
     想一想当初还是各种查资料才搞定这些东西的。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值