Hibernate框架简单实例

今天很困,不说废话了,赶紧开始吧。

运行环境

JDK-1.7.0
Eclipse Java EE IDE for Web Developers,MARS版

目录结构

首先看一下我的目录结构
在这里插入图片描述

新建一个java项目,然后建两个包分别为com.shanmu.pojo以及com.shanmu.test,
pojo是用来存储实体类的,而test则是用来存储测试类的(main),为了简单,这里只写了一个实体类,所以不用去考虑各个类的关系问题,这里也没有用到任何的注解。

配置文件

在这里插入图片描述
这里导入的jar包有这些,因为是最简单的,所以不需要导入很多包。先新建一个文件夹lib来存放jar包,再通过add加入项目中。
hibernate框架中有两种重要的配置文件(.xml),分别是核心配置文件(hibernate.cfg.xml)以及映射配置文件(xxx.hbm.xml)。
核心配置文件是用来配置访问数据库要用到的驱动,例如数据库地址,用户名,密码这些,而映射配置文件是用于映射实体类中对应数据库中的表,这里的映射配置文件是Student.hbm.xml。

核心配置文件

<?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>
		<!-- Database connection settings -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8</property>
		<property name="connection.username">数据库用户名</property>
		<property name="connection.password">数据库密码</property>
		<!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="current_session_context_class">thread</property>
		<property name="show_sql">true</property>
		<property name="hbm2ddl.auto">update</property>
		<mapping resource="com/shanmu/pojo/Student.hbm.xml" />
	</session-factory>
</hibernate-configuration>

Student类

package com.shanmu.pojo;
public class Student {
	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;
	}
}

Student类是最普通的实体类,这个就像是以前学过的bean一样,不同的是bean有一定的规范。

Student类映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- 用于映射Student类中对应数据库中的student_表 -->
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.shanmu.pojo">
	<class name="Student" table="student_">
		<id name="id" column="id"><!-- id的自增长方式采用数据库的本地方式 -->
			<generator class="native">
			<!-- 一对一关联映射 -->
			</generator>
		</id>
		<property name="name" />
	</class>
</hibernate-mapping>

接下来写一个测试类

package com.shanmu.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import com.shanmu.pojo.Student;

public class TestHibernate {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//1.获取SessionFactory
		SessionFactory sf=new Configuration().configure().buildSessionFactory();
		//2.通过SessionFactory获得一个Session
		Session s=sf.openSession();
		//3.在Session基础上开启一个业务
		s.beginTransaction();
		//4.通过调用Session的save方法把对象保存到数据库
		Student student=new Student();
		student.setName("zhangsan");
		s.save(student);
		//5.提交事务
		s.getTransaction().commit();
		//6.关闭Session
		s.close();
		//7.关闭SessionFactory
		sf.close();
	}

}

结果

首先,在我的数据库中,有一个test数据库,但是里面没有student_表,看一下
在这里插入图片描述
运行之后控制台输出
在这里插入图片描述
这里输出的是一条SQL语句,表明对数据库执行了一次操作
运行之后会发现数据库中有student_表,表中有一条数据
在这里插入图片描述

最后

所以hibernate框架主要是用来处理数据库的,当然除了插入还有查询,删除,修改等操作,这里主要是以最简单的方式写了一个最简单的实现,最简单的能看懂的话,难的才能在这基础上一步步学。之前听很多人说SSH已经过时了,大家都用SSM了,但是我还是想把SSH学了,可能是学数学专业的原因吧,就想循序渐进知道前因后果,这对我对后面其他框架的理解也有很多好处。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值