自学hibernate第一步(创建第一个hibernate项目)

hibernate的简单介绍

hibernate(开放源代码的对象关系映射框架),它对JDBC进行了轻量级的对象封装,将POJO(普通对象)与数据库表简历映射关系,是一个全自动的orm(对象关系映射)框架,hibernate可以自动生成SQL语句,自动执行,所以Java程序员可以用对象编程思维来操控数据库

hibernate的优点

hibernate对JDBC访问数据库的代码做了轻量级封装,简化数据访问层的重复代码,减少内存消耗,加快了运行效率。

hibernate的搭建

搭建环境说明

hibernate版本:hibernate-release-5.3.7.Final
数据库:MySQL
Java开发者工具:Eclipse
mysql驱动jar包

开始创建hibernate项目

  1. 创建Java项目
    在eclipse中创建Java Project

  2. 导入hibernate的jar包
    Java项目中创建一个文件夹(Folder)命名为lib
    hibernate-release-5.3.7.Final文件夹中找到lib
    在lib目录中找到required文件夹
    将required文件夹中所有jar包复制到项目中的lib文件夹中
    将MySQL驱动jar包(mysql-connector-java-5.1.45-bin.jar)复制到lib文件夹中
    选中所有lib目录中的文件,单击鼠标右键,
    选择build path—>add to build path

  3. 数据库
    新建数据库命名为csdn_study
    然后导入以下表结构

-- ----------------------------
-- Table structure for person_base
-- ----------------------------
DROP TABLE IF EXISTS `person_base`;
CREATE TABLE `person_base` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `NAME` varchar(10) NOT NULL,
  `AGE` int(3) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  1. 创建pojo类
    pojo就是MVC中model的环节
    pojo=entity=model(根据个人习惯命名,都是一样)
    在项目的src包下创建以下结构
    项目下src的结构
    在pojo包中创建class,命名为PersonBase(与数据库表名对应)
    在这里插入图片描述
    然后根据数据库中的字段,书写如下代码
package com.study.pojo;

public class PersonBase {
	private int id;
	private String name;
	private int age;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
}
  1. 在pojo包中添加映射文件
    在这里插入图片描述
    命名规则为:pojo类名.hbm.xml
    输入如下代码
    这个文件是说明数据库中的表与相应的pojo类的映射关系
    代码中的约束可以在hibernate的jar包中hibernate-mapping-3.0.dtd中找到
    一个class对应着数据库中的一张表
<?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-mapping>
				<class name="com.study.pojo.PersonBase" table="person_base">
					<id name="id" column="ID">
						<generator class="native"></generator>
					</id>
					<property name="name" column="NAME"></property>
					<property name="age" column="AGE"></property>	
				</class>
		</hibernate-mapping>
  1. 创建主配置文件
    在src目录下新建一个xml文件,命名为hibernate.cfg.xml
    书写如下代码(**为数据库密码)
<?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 >
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///study_hibernate?useSSL=false</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">********</property>
	
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.hbm2bbl.auto">update</property>
	
		<mapping resource="com/study/pojo/PersonBase.hbm.xml"/>

	</session-factory>
</hibernate-configuration>
  1. 测试hibernate与数据库是否联通
    创建一个类在test目录中,命名为PersonControl
    书写如下代码
package com.study.test;

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

import com.study.pojo.PersonBase;


public class PersonControl {
	   @Test
       public void testTool(){
		//1 加载核心配置文件
		Configuration cfg = new Configuration().configure();
		//2创建一个sessionFactory工厂
		SessionFactory sessionFactory = cfg.buildSessionFactory();
		//3创建session对象
		Session session = sessionFactory.openSession();
		//4开启事务
		Transaction tx = session.beginTransaction();
		//5执行相关操作
		PersonBase pb = new PersonBase();
		pb.setName("墨风拂尘");
		pb.setAge(18);
		
		session.save(pb);
		//6提交事务
		tx.commit();
		//7释放资源
		session.close();
		
	   }
}

  1. 运行该程序得到的结果如下
    在这里插入图片描述
    数据库中的结果如下
    在这里插入图片描述
    看!数据成功写入数据库了
发布了4 篇原创文章 · 获赞 4 · 访问量 266

猜你喜欢

转载自blog.csdn.net/qq_40604335/article/details/89852428