专栏首页码猿技术专栏Hibernate第一个程序

Hibernate第一个程序

文章目录

  1. 1. Hibernate第一个程序
    1. 1.1. 创建一个Maven项目
    2. 1.2. 创建一个实体类(JavaBean)
    3. 1.3. 创建这个实体类Student的映射文件
    4. 1.4. 核心配置文件(hibernate.cfg.xml)
    5. 1.5. 工具类(HibernateUtil)
    6. 1.6. 测试类
    7. 1.7. 总结

Hibernate第一个程序

创建一个Maven项目

<dependencies>
	<!-- hibernate核心jar包 -->
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-core</artifactId>
		<version>5.1.0.Final</version>
	</dependency>
	<dependency>
		<groupId>dom4j</groupId>
		<artifactId>dom4j</artifactId>
		<version>1.6.1</version>
	</dependency>
	<!-- mysqljar包 -->
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.21</version>
	</dependency>
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.17</version>
	</dependency>
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-api</artifactId>
		<version>1.7.25</version>
	</dependency>
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
		<version>1.7.25</version>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.12</version>
		<scope>test</scope>
	</dependency>
</dependencies>

创建一个实体类(JavaBean)

package cn.tedu.bean;

public class Student {
	private String name;
	private Integer id;  //主键
	private Integer age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
}

创建这个实体类Student的映射文件

  1. 这个实体类的映射文件的名字最好要和是:实体类名.hbm.xml
  2. 映射文件最好和实体类放在同一个包中
<?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>
	<!-- name:指定实体类的路径 table:指定该实体类对应的表的名称 -->
	<class name="cn.tedu.bean.Student" table="student">
		<!-- <id>配置主键,name指定JavaBean中的属性,column指定的是表中的属性 -->
		<id name="id" column="id">
			<!-- 配置主键的生成策略 自增长-->
			<generator class="native"></generator>
		</id>
		<!-- property是定义非主键的类型 name:指定实体类中的属性名称 column:指定实体类中的属性对应在表中的元素的名称 如果这里的name和column相同,那么可以省略这里的colum,不过建议写全,更加清晰 -->
		<property name="name" column="name"></property>
		<property name="age" column="age"></property>
	</class>
</hibernate-mapping>

核心配置文件(hibernate.cfg.xml)

  1. 核心配置文件的名字是hibernate.cfg.xml
  2. 放在根目录中,resource下
<?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>
		<!-- 必须要配置的5大参数,4大参数,一个方言 其中的四大参数是连接JDBC必须的参数 这里的方言也是必须的 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hirbernate</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		<!-- mysql的方言 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<!-- 可选的配置文件 -->
		<!-- 输出所有的sql语句到控制台 -->
		<property name="hibernate.show_sql">true</property>
		<!-- 在控制台上打印出漂亮的sql语句 -->
		<property name="hibernate.format_sql">true</property>
		<!-- 配置如果这个表还没有创建,那么就会自动创建,如果已经创建了,那么会自动更新 -->
		<property name="hibernate.hbm2ddl.auto">update</property>
		<!-- 映射配置文件,这里是引用Student类的配置文件,注意这里的配置文件可以有多个 -->
		<mapping resource="cn/tedu/bean/Student.hbm.xml" />
	</session-factory>
</hibernate-configuration>

工具类(HibernateUtil)

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUntil {
	private static Configuration configuration;
	private static SessionFactory sessionFactory;
	/*
	 * 静态语句块中的内容只是在类加载的时候只创建一次,因此这里的大大减少了资源的消耗
	 */
	static {
		// 加载核心配置文件hibernate.cfg.xml
		configuration = new Configuration();
		configuration.configure();
		// 创建SessionFactotry对象
		sessionFactory = configuration.buildSessionFactory();
	}
	//创建session对象,在测试类中可以使用这个静态方法获取session
	public static Session getSession() {
		return sessionFactory.openSession();
	}
}

测试类

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import cn.tedu.bean.Student;
import cn.tedu.utils.HibernateUntil;
public class Demo1 {
	@Test
	public void TestAdd() {
		Session session = null;
		Transaction transaction = null;
		try {
			// 创建session
			session = HibernateUntil.getSession();
			// 开始事务
			transaction = session.beginTransaction();
			Student student = new Student();
			student.setAge(22);
			student.setName("陈加兵");
			// 保存数据到数据库
			session.save(student);
			// 提交事务
			transaction.commit();
		} catch (Exception exception) {
			transaction.rollback(); // 事务回滚
		} finally {
			if (session!=null) {
				session.close();
			}
		}
	}

总结

  1. 核心配置文件名字一定要是: hibernate.cfg.xml
  2. 实体类的配置文件要和实体类最好放在同一个包中
  3. 运行测试类,我student表将会自动创建,在控制台还会输出sql语句

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hibernate的基本配置

    爱撒谎的男孩
  • Springmvc响应Ajax请求(@ResponseBody)

    爱撒谎的男孩
  • 自己写springmvc框架

    爱撒谎的男孩
  • hibernate基本使用

    hibernate框架应用在web三层架构的DAO层,是对JDBC的一种轻量级的封装,对javaBeans和数据库表进行映射,就不用再自己编写sql语句去获取对...

    木瓜煲鸡脚
  • 【SSH框架】之Hibernate系列(一)

    微信公众号:compassblog 欢迎关注、转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1、Hibernate框架概述 (1)、什么是Hiber...

    compassblog
  • Hibernate之开门见山

    1:SSH框架:   Struts2:基于mvc模式的应用层框架模式(Servlet层)   Hibernate:基于持久层的框架(数据访问层)   Sprin...

    别先生
  • Hibernate【与Spring整合】

    前言 前面已经学习了如何使用Spring与Struts2进行整合,本博文主要讲解如何使用Spring对Hibernate进行整合 Spring和Hibernat...

    Java3y
  • Hibernate框架的配置文件

    Hiernate是用来实现连接数据库、操作数据库记录的框架,因此Hibbernate框架首先需要配置连接数据库的信息。Hibernate框架使用连接池(Conn...

    无邪Z
  • web基础之hibernate(一篇)

                                                                   hibernate的一些基本的认识...

    Gxjun
  • hibernate进阶操作

    配置hibernate.cfg.xml配置文件 1.连接数据库 2.数据库方言 3.控制台是否显示sql语句 4.给控制台sql语句添加格式

    微醺

扫码关注云+社区

领取腾讯云代金券