hibernate 入门案例

hibernate框架介绍:

ORM概念(很重要)

O,Object 对象.       R,Relation 关系.     M,Mapping 映射

ORM:对象关系映射!

ORM,解决了什么问题?

存储:能否把对象的数据直接保存到数据库中

获取:能否直接从数据库拿到一个对象

要想做到上述两点,必须要有映射

总结:Hibernate与 ORM的关系:Hibernate是ORM的实现

如何搭建一个Hibernate开发环境,开发步骤:

(1)下载源码:版本hibernate-distribution-3.6.0.Final

(2)引入jar文件 :Hibernate3.jar核心+required必须引入的(6个)+jsp目录+mysql驱动

(3)写对象以及对象的映射

Employee.java 对象

Employee.hbm.xml 对象的映射(一般我们使用hbm.xml结尾,这是为了区分Hibernate映射文件)

(4)src/hibernate.cfg.xml(这个文件的命名必须这样写)

1.Employee.java

package cn.itcast.hello;

import java.util.Date;

public class Employee {
	private int id;
	private String empName;
	private Date workDate;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getEmpName() {
		return empName;
	}
	public void setEmpName(String empName) {
		this.empName = empName;
	}
	public Date getWorkDate() {
		return workDate;
	}
	public void setWorkDate(Date workDate) {
		this.workDate = workDate;
	}

}

2.Employee.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">
<hibernate-mapping package="cn.itcast.hello">
	<class name="Employee" table="employee">
		<!-- 主键  映射-->
		<id name="id">
			<generator class="native"></generator>
		</id>
		<!-- 非主键 映射 -->
		<property name="empName" column="empName"></property>
		<property name="workDate" column="workDate"></property>
	</class>
</hibernate-mapping>

3.hibernate.cfg.xml文件

(1)数据库连接的配置.如果不懂可以去Hibernate源码/project/etc/hibernate.properties找到复制粘贴即可

(2)其他配置包括方言以及是不是自动建表的配置信息

(3)映射文件的引入.<mapping resource="配置文件的目录"/>

<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///day25</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">169500</property>

		<!-- 2.其他配置信息,hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql语句 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
		<!-- 显示sql语句信息 -->
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.hbm2ddl.auto">create</property>
		<!-- 3.导入映射文件 -->
		<mapping resource="cn/itcast/hello/Employee.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

4.测试类AppTest

编写步骤:

(1).获取加载配置文件的管理类对象.(2).加载配置文件.(3).创建session工厂对象.(4).创建session(代表的是一个对话,与数据库连接的会话).(5).开启事务.(6).与数据库的操作.(7).提交事务.(8).关闭资源.

package cn.itcast.hello;

import java.util.Date;

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

public class AppTest {
	@Test
	public void test(){
		Employee emp=new Employee();
		emp.setEmpName("李卫康");
		emp.setWorkDate(new Date());
		//1.获取加载配置文件的管理类对象
		Configuration config=new Configuration();
		//2.加载配置文件
		config.configure();//默认加载的是src目录下的hiberate.xml文件
		//3.创建session工厂对象
		SessionFactory factory = config.buildSessionFactory();
		//4.创建session(代表的是一个对话,与数据库连接的会话)
		Session session = factory.openSession();
		//5.开启事务
		Transaction tx = session.beginTransaction();
		//6.与数据库的操作
		session.save(emp);
		//7.提交事务
		tx.commit();
		//8.关闭资源
		session.close();

	}

}

运行结果可以发现数据库中多了一个employee的表,并有一条记录

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-07 00:12:47

hibernate 入门案例的相关文章

Hibernate入门案例及增删改查

一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private Integer age; private String name; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public Integer getAge() {

Hibernate入门案例 增删改

一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private Integer age; private String name; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public Integer getAge() {

Hibernate入门案例

1.Hibernate框架简述 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(***.hbm.xml)把JAVA对象或PO(Persistent Object,持久化对象)映射到数据库中的数据库,然后通过操作PO,对数据表中的数据进行增,删,改,查等操作.除配置文件,映射文件和持久化类外,Hibernate的核心组件包

Hibernate入门案例配置以及增、删、改、查看

享受痛苦就是走向成功的第一步. 一.创建一个项目(lib里面是需要的夹包小奶瓶要导包) 二.书写大配置文件 大配置文件必须放置在项目根目录(专业classpath下):界定:就是src 1名称:hibernate.cfg.xml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0/

Hibernate介绍和入门案例

一身转战三千里,一剑曾当百万师 如果你在之前没有学过SSH三大框架,那么你之前肯定是通过JDBC来对数据库进行操作.现在,你完全可以把跟数据库交互的操作直接交给Hibernate. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的 orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC

一起学习Hibernate: Hibernate01 —— Hibernate的概述与入门案例

一 Hibernate的介绍 1 让我们从JDBC与替代它的框架Hibernate进行一下对比. 1.1 JDBC的缺点 1) 代码结构繁琐.每次书写sql语句操作数据库都得需要很多步; 2) 是面向过程的编程,而非面向对象的: 3) 没有做到数据缓存.这会导致程序与数据库的交互的次数很多: 4) 因为事务是自动开启的,所以存在安全隐患. 1.2 JDBC的优点 1) 因为是底层的数据库操作,所以执行效率很高: 2) sql语句可以自己编写,可以进行优化从而选择效率最高的那些. 1.3 Hibe

Hibernate入门_增删改查

一.Hibernate入门案例剖析:  ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private Integer age; private String name; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public Integer getAge()

MyBatis学习(一)简介及入门案例

1.什么是MyBatis? MyBatis是一个支持普通SQL查询,存储过程,和高级映射的优秀持久层框架.MyBatis去掉了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解进行配置和原始映射,以将接口和Java的POJO映射成数据库中的记录. MyBatis作为持久层框架,主要思想是将程序中大量的SQL语句剥离出来,配置在配置文件中,以实现SQL的灵活配置.这样的好处是将SQL语句和程序代码分离,可以在不修改代码的前提下,直接在配置文件中修

Spring入门案例 idea创建Spring项目

spring入门案例 idea创建spring项目 Spring介绍 Spring概述 Spring是一个开源框架,Spring是2003年兴起的轻量级java开发框架,由Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原形衍生而来.它是为了解决企业级开发的复杂性而创建的.Spring使用基本的javaBaen来完成以前只可能由EJB完成的事情,然而Spring的用途不仅限于服务器端的开发,从简单性.