什么是【hibernate】?怎么用

一:

1.Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm【Object Relational Mapping】框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。(简单来说就是通过管理对象来操作数据库

2:Hibernate的优势:简化了代码,实现了跨数据库的无缝移植

二:如何在项目中添加hibernate支持

①:pom.xml文件中加入

  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.3.6.Final</version>
</dependency>

②:添加DTD约束(可参考我另外一篇博客)

hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

③: 添加实体映射文件(一般一个实体类只有一个实体映射文件,命名通常为 :实体类.hbm.xml)

<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<!-- 
		table:实体类所对应的表
		name:实体类的全类名
	 -->
	<class table="t_hibernate_user" name="com.zking.one.entity.User">
	<!-- 
		name:实体类的属性
		type:实体类的属性类型
		column:指的是数据库表的主键列
	 -->
		<id name="id" type="java.lang.Integer" column="id">
				<generator class="increment"></generator>
		</id>
		<!-- id标签打头,代表配置的是数据库主键与实体类的关系,其他property配置的是数据库的其他列 -->
		<property name="userName" type="java.lang.String" column="user_name"></property>
		<property name="userPwd" type="java.lang.String" column="user_pwd"></property>
		<property name="realName" type="java.lang.String" column="real_name"></property>
		<property name="sex" type="java.lang.String" column="sex"></property>
	</class>
</hibernate-mapping>    

④: 在resource目录下添加hibernate.cfg.xml(核心配置文件)

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<!-- 1. 数据库相关 -->
		<property name="connection.username">root</property>
		<property name="connection.password">123</property>
		<property name="connection.url">jdbc:mysql://localhost:3306/db_study?useUnicode=true&amp;characterEncoding=UTF-8</property>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

		<!-- 配置本地事务(No CurrentSessionContext configured!) -->
		<property name="hibernate.current_session_context_class">thread</property>
		
		<!-- 2. 调试相关 -->
		<property name="show_sql">true</property>
		<property name="format_sql">true</property>


		<!-- 3. 添加实体映射文件 -->
		<mapping resource="com/zking/one/entity/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

⑤:运用

	public static void main(String[] args) {
		
		//  1.读取hibernate.cfg.xml文件
		Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
		
		//2.通过xml建模得到sessionfactory工厂
		SessionFactory sessionFactory = cfg.buildSessionFactory();
		
		//3.打开session通道拿到session对象
		Session session = sessionFactory.openSession();
		
		//4.开启事务
		Transaction transaction = session.beginTransaction();
		
		//5. 5.具体的数据库操作
		User user = new User();
		user.setUserName("xiang");
		user.setRealName("aa");
		user.setUserPwd("123");
		user.setSex("n");
		user.setRemark("CC");
		
		//6.提交事务
		session.save(user);
		transaction.commit();
		
		//7.关闭会话
		session.close();
		
	}

猜你喜欢

转载自blog.csdn.net/qq_40979551/article/details/83213013