目录

  • 1. 项目结构

    • 1.2 hibernate.cfg.xml
    • 1.3 entity
    • 1.4 entity.hbm.xml
  • 2. 测试
  • 3. 总结

© 版权声明:本文为博主原创文章,转载请注明出处


1. 项目结构

  • 本项目使用maven进行项目管理,搭建一个简单的Hibernate框架需要四步。
  • 本项目未使用注解方式进行搭建

    1.1 pom.xml

  • 使用maven引入依赖jar包,若未使用maven,则自己下载所需jar包放到lib目录下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.imooc</groupId><artifactId>Hibernate_001</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- Hibernate --><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.1.5.Final</version></dependency><!-- mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.22</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.6.1</version><configuration><target>1.7</target><source>1.7</source><encoding>UTF-8</encoding></configuration></plugin></plugins></build></project>

1.2 hibernate.cfg.xml

  • 在hibernate.cfg.xml中配置三方面的信息。

    • 连接数据库的信息,比如驱动、url、连接名、密码等。
    • hibernate本身的配置,比如方言、是否展示SQL,SQL格式化、建表策略等。
    • 引入映射文件
<?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="connection.username">root</property><!-- 数据库连接密码 --><property name="connection.password">20121221</property><!-- 数据库驱动 --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><!-- 数据库连接url --><property name="connection.url">jdbc:mysql://localhost:3306/hibernate?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8</property><!-- 方言 --><property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property><!-- 展示SQL --><property name="show_sql">true</property><!-- 格式化SQL --><property name="format_sql">false</property><!-- 建表策略 --><property name="hbm2ddl.auto">update</property><!-- 指定映射文件 --><mapping resource="hbm/student.hbm.xml"/></session-factory></hibernate-configuration>

1.3 entity

  • entity是实体类,对应数据库中的表结构,仅实现setter和getter方法即可
package com.imooc.hibernate.model;import java.util.Date;public class Student {private int sid; // 学号private String sname; // 姓名private String gender; // 性别private Date birthday; // 出生日期private String address; // 地址public Student() {}public Student(int sid, String sname, String gender, Date birthday, String address) {this.sid = sid;this.sname = sname;this.gender = gender;this.birthday = birthday;this.address = address;}public int getSid() {return sid;}public void setSid(int sid) {this.sid = sid;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "Student [sid=" + sid + ", sname=" + sname + ", gender=" + gender + ", birthday=" + birthday + ", address=" + address + "]";}}

1.4 entity.hbm.xml

  • entity.hbm.xml是映射文件,将数据库表与entity进行对应
<?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="com.imooc.hibernate.model.Student"><id name="sid" type="int"><column name="SID"/><generator class="assigned"/> <!-- 主键生成策略 --></id><property name="sname" type="java.lang.String"><column name="SNAME"/></property><property name="gender" type="java.lang.String"><column name="GENDER"></column></property><property name="birthday" type="java.util.Date"><column name="BIRTHDAY"/></property><property name="address" type="java.lang.String"><column name="ADDRESS"></column></property></class></hibernate-mapping>

2. 测试

  • 使用junit进行测试
package com.imooc.hibernate.test;import java.util.Date;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import com.imooc.hibernate.model.Student;public class StudentTest {private SessionFactory sessionFactory;private Session session;private Transaction transaction;@Testpublic void testSaveStudent() {// 生成学生对象Student s = new Student(3, "张三丰", "男", new Date(), "武当山");session.save(s);}@Beforepublic void init() {// 创建会话工厂对象sessionFactory = new Configuration().configure().buildSessionFactory();// 创建会话对象session = sessionFactory.openSession();// 开始事务transaction = session.beginTransaction();}@Afterpublic void destory () {// 提交事务transaction.commit();// 关闭会话session.close();// 关闭会话工厂sessionFactory.close();}}

3. 总结

Hibernate初步搭建很简单,主要是使用hibernate.cfg.xml进行数据库连接的配置,使用entity.hbm.xml进行数据库表结构与实体类进行映射。

参考:Hibernate初探之单表映射

更好的markdown体验:https://www.zybuluo.com/chy282/note/970569

转载于:https://www.cnblogs.com/jinjiyese153/p/7976680.html

Hibernate二次学习一----------搭建Hibernate相关推荐

  1. ssh架构之hibernate(二)进阶学习

    1.JPA入门 JPA的认识: JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中Java持久层A ...

  2. 学习:配置hibernate

    最近实现的一系列功能(权限管理,索引持久化等)都涉及到了持久化问题 之前做了一个基于XML的管理插件,只需要在第一次读取的时候使用到XML,之后数据来自缓存,这样可以满足权限管理的功能,但是一旦权限发 ...

  3. Hibernate 马士兵 学习笔记

    1.  HelloWorld a)        Xml b)        Annotction 2.  Hibernate原理模拟-什么是O/RMapping以及为什么要有O/RMapping 3 ...

  4. Hibernate ORM框架学习日记基础篇-1

    一.简介 Hibernate是轻量级Java EE应用的持久层解决方案,不仅管理Java类库到数据库表的映射,还提供数据查询和获取数据的 方法,它完成对象模型和基于SQL的关系模型的映射关系,使得开发 ...

  5. [原创]java WEB学习笔记80:Hibernate学习之路--- hibernate配置文件:JDBC 连接属性,C3P0 数据库连接池属性等...

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. uniapp 学习笔记二十二 购物车页面结构搭建

    uniapp 学习笔记二十二 购物车页面结构搭建 cart.vue <template><view><view class="flex padding" ...

  7. Hibernate初级知识学习(1)

    现在这记性是越来越不如从前了,虽然从前也总是记不住.学一点东西就得重复练好几遍,如果十天半个月不用可能就又忘得一干二净了.还是写下来比较好.学完一点知识赶快总结一下. Hibernate是JBoss公 ...

  8. 考研党的寒假学习之spring+hibernate(1)

    小试牛刀,一直在小试牛刀,却从未认真的做一些项目,技术方面也是半斤八两,寒假在家,准备考研,顺便利用时间帮别人做一套完整的管理系统,界面采用bootstrap,技术采用spring(springmvc ...

  9. Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发

    前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)--MyBatis的基础知识.MybatisFirst中存在大量重复的代码.这次简化下代码: 使用MyBatis开发Dao ...

最新文章

  1. plsql developer的一些使用
  2. jQuery 属性操作——案例:购物车案例模块
  3. Dropout层 tf.keras.layers.Dropout() 介绍
  4. linux python 永久添加自己的模块路径
  5. 【软件工程】业务过程与解决方案
  6. 复练-面试的科技树-我是谁、我喜欢、我能够
  7. mkdir() mkdirs() createNewFile
  8. 28. HTTP、SSL/TLS和HTTPS协议的区别与联系
  9. java放大镜_Java写的屏幕放大镜
  10. 虚拟偶像春天来临,谁能从中脱颖而出?
  11. Flink StreamingFileSink 文件到hdfs 文件一直处于inprogress状态无法生成正式文件
  12. HTML——W3C简介(万维网联盟)
  13. GND-VDD-VCC-VSS-VEE-VPP-GND
  14. 中国电信5G技术缩略语
  15. iOS Password AutoFill开发指南
  16. 手机LBS位置应用服务盘点
  17. 工程流体力学笔记暂记10(动量矩方程)
  18. Android apktool使用中遇到的问题
  19. 个人实用java 常用语句(工作笔记)
  20. gcc 运行指定动态库的三种方法

热门文章

  1. java 轻量级同步volatile关键字简介与可见性有序性与synchronized区别 多线程中篇(十二)...
  2. HTML --- 简单的标签
  3. Windbg 查看SSDT表
  4. 菜鸟学Java笔记1
  5. 如何在Ubuntu下面识别Galaxy Nexus设备
  6. python 面试题(3)--- 进制转换
  7. ant指定servlet版本_[转载]程序开发常见错误
  8. Bootstrap自适应居中问题
  9. sci写作sci写作模板_2020年写作主题
  10. 如何编写好的C main函数