前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hibernate第一个程序

Hibernate第一个程序

作者头像
爱撒谎的男孩
发布2019-12-31 14:52:08
4630
发布2019-12-31 14:52:08
举报
文章被收录于专栏:码猿技术专栏

文章目录

  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项目

代码语言:javascript
复制
<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)

代码语言:javascript
复制
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. 映射文件最好和实体类放在同一个包中
代码语言:javascript
复制
<?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下
代码语言:javascript
复制
<?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)

代码语言:javascript
复制
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();
	}
}

测试类

代码语言:javascript
复制
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语句
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hibernate第一个程序
    • 创建一个Maven项目
      • 创建一个实体类(JavaBean)
        • 创建这个实体类Student的映射文件
          • 核心配置文件(hibernate.cfg.xml)
            • 工具类(HibernateUtil)
              • 测试类
                • 总结
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档