Hibernate学习----hibernate初识

73 篇文章 0 订阅
52 篇文章 0 订阅

当前主流web框架图解

流行数据库框架

  • JPA Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系(只有接口规范
  • Hibernate 最流行ORM框架,通过对象-关系映射配置,可以完全脱离底层SQL
  • MyBatis  本是apache的一个开源项目 iBatis,支持普通 SQL查询,存储过程和高级映射的优秀持久层框架
  • Apache DBUtils Spring JDBCTemplate

 ORM框架介绍

              orm:object relationship mapping  对象关系映射,java中的对象,与数据库中的表,之间的映射关系。

  •        ORM功能:提供api操作java对象,ORM自动生成sql,并执行。
  •        ORM开发需要完成事情:编写对象、建立映射关系

              hibernate是一个ORM框架

hibernate介绍         

  • Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架
         持久层:java中的数据需要保存到数据库
         轻量级:使用的依赖hibernate内容较少。提供简单的api和通过配置,完成强大功能。
  • Hibernate提供了对关系型数据库增删改查操作

hibernate优点

  • Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码
  • Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作
  • Hibernate使用java的反射机制
  • Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系

使用Hibernate编写hello world

         1.导入jar包

       2.编写javabean

public class User {
	private Integer userId;  //类型必须:整形,名称不建议使用id
	private String username;
	private String password;
    ...	
}

        3.映射文件 hbm.xml(文件位置:javabean同包)

<?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="cn.itcast.a_hello.User" table="t_user">
		<!-- 主键 -->
		<id name="userId">
			<!-- 固定值 -->
			<generator class="native"></generator>
		</id>	
		<!-- 普通属性 -->	
		<property name="username"></property>
		<property name="password"></property>
	</class>

</hibernate-mapping>

         4.核心配置文件hibernate.cfg.xml(位置:src)

<?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>
		<!-- #1 基本4项,注意:必须手动创建数据库 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/h_day01_db</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">1234</property>
		
		<!-- #2 方言 
			* 通过配置文件获得: %h%/project/etc/hibernate.properties
		-->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
		
		<!-- #3 自动创建表,固定值 -->
		<property name="hibernate.hbm2ddl.auto">update</property>
		
		
		<!-- 配置映射文件 -->
		<mapping resource="cn/itcast/a_hello/User.hbm.xml"/>
	
	</session-factory>

</hibernate-configuration>

        5.编写操作api

            注意:必须手动创建数据库,且保证数据库启动

public static void main(String[] args) {
		User user = new User();  //注意:不要设置userId
		user.setUsername("张三");
		user.setPassword("ds123");
		
		
		//1 加载配置文件 , 注意:必须执行 configure()方法
		Configuration config = new Configuration().configure();
		
		//2 获得session工厂,相当于连接池
		SessionFactory factory = config.buildSessionFactory();
		
		//3获得session ,相当于 jdbc Connection
		Session session = factory.openSession();
		
		//4 必须开启事务
		Transaction transaction = session.beginTransaction();
		
		// 操作--保存
		session.save(user);
		
		// 5 提交|回滚
		transaction.commit();
		
		// 6 释放资源
		session.close();
		factory.close(); //可以不关
		
	}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值