使用Hibernate框架向MySql数据库中增删改查的开发流程小例

hibernate的简单介绍:

是一个底层封装了JDBC的持久层框架,也是ORM框架。

ORM框架:Object Relational Mapping是指对象,关系,映射。

对象是指Java中的对象;

关系是关系型数据库;

映射是两个映射:

1.Java对象和数据库中的表进行映射

2.Java对象的属性和数据库表的列进行映射。


hibernate开发流程

第一步:导入jar包(需要导入的有hibernate必须jar包和MySQL数据的驱动jar包)

官网下载hibernate-release-5.2.10.Final.zip
解压后打开
其中documentation文件夹里面是一些说明文档,project文件夹为一些官方示例项目的代码以及配置文件,lib文件夹为可用jar包。
打开lib文件夹
其中required文件夹里的jar包为运行hibernate框架的必须jar包,其余文件夹的jar包为根据需求可选,我们只导入required中的就足够了。
打开eclipse创建一个Java项目,新建一个lib文件夹,将需要导入的jar包复制进去,全选之后点击右键,选择build path,再点击add to build path。
成功导入jar包。

第二步:创建核心配置文件

1.配置文件命名:hibernate.cfg.xml,此配置文件为hibernate框架的执行入口。

2.配置文件位置:src根目录下

3.配置文件写法:可在刚才导入jar包时下载的hibernate-release-5.2.10.Final.zip文件中找到模板,具体位置在project----->etc----->hibernate.cfg.xml
将他复制到指定位置,并将<hibernate-configuration>下所有内容删除,然后自己重新配置。

配置<session-factory>,需要配置三大信息:数据库链接信息,全局参数,映射关系。

配置主要信息可参考project----->etc----->hibernate.properties文件中的Mysql信息。
前三行为示例可选的方言类型
后面4行分别为配置MYSQL的驱动类,URL,用户名,密码

全局参数:为配置show_sql为true,则显示系统执行的sql语句,默认为false;配置format_sql为true,则显示的sql为经过格式化的sql语句,看起来更加简明清晰,默认为false。

映射关系:为指定映射文件的地址。(再完成映射文件的配置后,完善此过程)

核心配置文件内容:
<!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.数据库连接信息
	2.全局参数
	3.mapping映射关系
	 -->
	<session-factory>
		<!-- 数据库连接信息 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/java</property>
		<property name="hibernate.connection.username">wby</property>
		<property name="hibernate.connection.password">wby</property>
		<!-- 全局参数 -->
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<property name="current_session_context_class">thread</property>
		<!-- mapping映射关系,此处为指定映射文件的存放地址 -->
		<mapping resource="com/hibernate/entity/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>
注意:<mapping>要写在最后一个<property>后面。

第三步:创建映射文件

1.映射文件命名习惯:实体类名+hbm.xml

2.位置习惯:entity包下

3.写法规范:还是可在下载的官方文件夹里找到模板

映射文件内容:

<?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">
    
<hibernate-mapping>
	<!-- 配置实体类和数据库中的表之间的映射关系 -->
	<class name="com.hibernate.entity.User" table="t_user">
		<id name="id" column="id" type="java.lang.Integer">
			<!-- 指定主键生成策略的方式为和MySQL一致 -->
			<generator class="native"></generator>
		</id>
		<property name="name" column="name" type="java.lang.String"></property>
		<property name="age" column="age" type="java.lang.Integer"></property>
		<property name="phone" column="phone" type="java.lang.String"></property>
	</class>
</hibernate-mapping>

第四步:测试

package com.hibernate.test;

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

import com.hibernate.entity.User;

public class Test {
	
	public static void main(String[] args) {
		//1.加载配置文件
		//Configuration是用于加载配置信息的工具类,创建类对象,
		//调用configure()方法,返回一个加载过核心配置文件的cfg对象。
		//configure()此方法在默认位置,找默认文件 src/hibernate.cfg.xml
		//若核心配置文件存放位置不是默认地址,则需调用configure(String resource)有参方法,指定位置。
		Configuration cfg = new Configuration().configure();
		
		//2.创建session-factory
		SessionFactory sf = cfg.buildSessionFactory();
		
		//3.创建session,在此使用getCurrentSession()方法创建session对象
		Session session = sf.getCurrentSession();
		
		//4.getCurrentSession()方式获取的session,增删改查操作都需要事务控制
		Transaction tx = session.beginTransaction();//开启事务
		
		//5.测试增删改查
		
		/*User u1 = new User(null,"zhangsan",18,"123123");
		User u2 = new User(null,"lisi",19,"222222");
		User u3 = new User(null,"wangwu",20,"333333");*/
		
		/*
		session.save(u1);
		session.save(u2);
		session.save(u3);*/
		
		/*User user1 = new User(2,"lisi",19,"444444");
		session.update(user1);*/
		
		/*User user2 = session.get(User.class, 3);
		session.delete(user2);*/
		
		//6.提交事物
		tx.commit();
		
		System.out.println("操作完成!!");
		
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值