Java框架:Hibernate介绍和使用

项目中框架的体系结构 

ORM框架

  •  对象关系映射(Object Relational Mapping)
  • 对象和表字段进行对应
  •  是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换
  • Object:对象,java对象,此处特指JavaBean,Model
  • Relational:关系,二维表,数据库中的表。
  • Mapping:映射
  • 主流的ORM框架:Apache DBUtils 、Spring JDBCTemplate

    什么是Hibernate

Hibernate是一个数据持久化dao层的ORM框架,它对JDBC进行轻量级的对象封装,将POJO与数据库表建立映射关系,把对象映射到表中,提供了对关系型数据库增删改操作API,是一个全自动的ORM框架。

  • DBUtils也是对JDBC的封装
  • POJO(Plain Ordinary Java Object):简单的Java对象,实际就是普通JavaBeans

 Hibernate的优点

  • Hibernate自动生成SQL语句,自动执行,使程序员可以使用对象编程思维来操纵数据库
  • Hibernate对JDBC访问数据库代码封装,简化了数据访问层代码    
  • Hibernate使用java的反射机制
  • Hibernate是一个轻量级框架,性能好,支持很多关系型数据库,多种场合

Hibernate的使用步骤

  1. 下载Hibernate并导入jar包
  2. 创建数据库和表
  3. 编写对象模型Javabean POJO
  4. 配置核心配置文件hibernate.cfg.xml【连接数据库的配置】
  5. 编写映射文件hibernate mapping(*.hbm.xml),【声明对象模型能关联数据库表字段】
  6. 调用Hibernate的api 

下载Hibernate并导入jar包

创建数据库和表

编写对象模型Javabean POJO

配置核心配置文件hibernate.cfg.xml【连接数据库的配置】

<!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、配置数据库连接的4个参数 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///项目名</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">12345</property>
		
		<!--  是否显示sql语句 -->
		<property name="show_sql">true</property>
		
		<!--  是否格式化sql语句 -->
		<property name="format_sql">true</property>
		
		<!--  是否自动提交事务 -->
		<property name="hibernate.connection.autocommit">true</property>
		
		<!-- 2、配置JavaBean与表的映射文件 -->
		<mapping resource="com/zjc/hibernate/domain/User.hbm.xml"/>
		
	</session-factory>
	
	
</hibernate-configuration>

编写映射文件hibernate mapping(*.hbm.xml),【声明对象模型能关联数据库表字段】

//javabean: 
public class User   {

	private int uid;
	private String username;
	private String password;
    ..............setter+getter............

}
--------------------------------------------------------------------

对应User的映射配置文件 User.hbm.xml

<!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="对应的.User类路径" table="t_user对应的数据库表名">

		<!-- 1、主键,如果属性与表字段不一至,要指定column -->
		<id name="uid" column="id">
			<!-- 主键生成策略  -->
			<generator class="native"></generator>
		</id>

		<!-- 2、用户字段 -->
		<property name="username"></property>
		<property name="password"></property>

	</class>

</hibernate-mapping>

调用Hibernate的api    测试

public class Demo01 {
	@Test
	public void test1(){

		//1.获取核心 配置文件对象,默认是加载src的hibernate.cfg.xm文件
		Configuration cfg = new Configuration().configure();
		
		//2.创建会话工厂
		SessionFactory factory = cfg.buildSessionFactory();
		
		//3.创建会话
		Session session = factory.openSession();

		//开启事务
		Transaction trans = session.beginTransaction();
		
		//保存
		User user = new User();
		user.setUsername("zjc");
		user.setPassword("123");
		session.save(user);
		
		//提交事务
		trans.commit();

		//4.关闭会话
		session.close();

		//5.关闭工厂,释放资源
		factory.close();
	}
}

 常见问题:

  • 下面未知的实体是指在hibernate.cfg.xml中没有配置映射文件
  •  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值