下载hibernate

documentation目录:存放hibernate的相关文件与API
lib目录:存放hibernate编译和运行所依赖的jar包,其中required子目录下包含了运行hibernate项目必须的jar包
project目录:存放hibernate各种相关的源代码与资源.
在lib/required目录中,包含的jar包


创建数据库与表

CREATE DATABASE hibernateTest;USER hibernateTest;CREATE TABLE t_customer(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20),address VARCHAR(50)
)

创建实体类

public class Customer {private int id;private String name;private String address;private String sex;public Customer() {super();}public Customer(String name, String address) {super();this.name = name;this.address = address;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}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 String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "Customer [id=" + id + ", name=" + name + ", address=" + address + "]";}}

导入hibernate框架相关依赖jar包

导入lib/required下所有的jar

导入数据库的驱动jar包

日志相关jar包

将hibernate/project/etc/log4j.properties文件导入到工程src下.

#
# Hibernate, Relational Persistence for Idiomatic Java
#
# License: GNU Lesser General Public License (LGPL), version 2.1 or later.
# See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
#### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###log4j.rootLogger=warn, stdout#log4j.logger.org.hibernate=info
log4j.logger.org.hibernate=debug### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug### log just the SQL
#log4j.logger.org.hibernate.SQL=debug### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug### log cache activity ###
#log4j.logger.org.hibernate.cache=debug### log transaction activity
#log4j.logger.org.hibernate.transaction=debug### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

Hibernate的相关配置文件

有两种:
1.xxx.hbm.xml 它主要是用于描述类与数据库中的表的映射关系.
2.hibernate.cfg.xml 它是hibernate框架核心配置文件。

映射配置文件

位置:它要与实体类在同一个包下.
名称 :类名.hbm.xml
约束:

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

约束文件可以在hibernate的核心的jar包下的org.hibernate包下查找到


Customer.hbm.xml配置文件的内容

<?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 package="cn.nwtxxb.domain"><!-- name属性它是实体类的全名 table 表的名称 catalog 数据库名称 --><class name="Customer" table="t_customer"catalog="hibernateTest"><!-- id它是用于描述主键 --><id name="id" column="id" type="int">  <!-- java数据类型 --><!-- 主键生成策略 --><generator class="native"></generator></id><!-- 使用property来描述属性与字段的对应关系 --><property name="name" column="name" length="20" type="string"></property>  <!-- hibernate数据类型 --><property name="address"><column name="address" length="50" sql-type="varchar(50)"></column> <!-- sql数据类型 --></property><property name="sex" column="sex" length="20"></property></class>
</hibernate-mapping> 

核心配置文件

它主要是hibernate框架所使用的,它主要包含了连接数据库相关信息,hibernate相关配置等。
位置:在src下创建一个hibernate.cfg.xml
约束:

约束文件所在位置:hiberante核心jar包下的org.hibernate包下


在这个文件中如何配置?
可以参考 hibernate-release-5.0.7.Final\project\etc\hibernate.properties文件

<?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><!-- 配置关于数据库连接的四个项 driverClass url username password --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///hibernateTest</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">abc</property><!-- 设置连接提供者 --><property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property><!-- c3p0连接池的配置 --><property name="hibernate.c3p0.max_size">20</property> <!-- 最大连接池 --><property name="hibernate.c3p0.min_size">5</property> <!-- 最小连接数 --><property name="hibernate.c3p0.timeout">120</property> <!-- 超时 --><property name="hibernate.c3p0.idle_test_period">3000</property> <!-- 空闲连接 --><!-- 可以将向数据库发送的sql显示出来 --><property name="hibernate.show_sql">true</property><!-- 格式化sql --><property name="hibernate.format_sql">true</property><!-- hibernate的方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 自动创建表 --><property name="hibernate.hbm2ddl.auto">update</property><!-- 用于设置事务提交方式 --><property name="hibernate.connection.autocommit">false</property><!-- 配置hibernate的映射文件所在位置 --><mapping resource="cn/nwtxxb/domain/Customer.hbm.xml" /></session-factory></hibernate-configuration>  

测试

public class HibernateTest1 {// 保存一个Customer@Testpublic void saveCustomerTest() {// 创建一个CustomerCustomer c = new Customer();c.setName("张三");c.setAddress("北京");c.setSex("男");// 使用hibernate的api来完成将customer信息保存到mysql中操作Configuration config = new Configuration().configure(); // 加载hibernate.cfg.xmlSessionFactory sessionFactory = config.buildSessionFactory();Session session = sessionFactory.openSession(); // 相当于得到一个Connection。// 开启事务Transaction transaction = session.beginTransaction();// 操作session.save(c);// 事务提交transaction.commit();session.close();sessionFactory.close();}
}

Hibernate快速入门相关推荐

  1. (转)Hibernate快速入门

    http://blog.csdn.net/yerenyuan_pku/article/details/64209343 Hibernate框架介绍 什么是Hibernate 我们可以从度娘上摘抄这样有 ...

  2. Hibernate快速入门+简单示例

    很多人说Hbiernate已经没人用了,市面上有太多可供选择的开源工具.诚然市面上有很多新技术,但是作为初学者,还是要踏踏实实从基础做起,而且Hbiernate有自己的应用场景. 上篇博文 我们介绍了 ...

  3. Hibernate 快速入门

    原视频内容以及资料来自 b 站:https://www.bilibili.com/medialist/play/ml1025729445/p1 hibernate 在 idea 中文件快速生成博客:h ...

  4. Hibernate快速入门(2)

    目录 一对多/多对一 多对多 数据库中多表之间存在着三种关系,也就是系统设计中的三种实体关系.如下图: 从图可以看出,系统设计的三种实体关系分别为:多对多.一对多.和一对一关系. 一对多/多对一 关系 ...

  5. hibernate教程--快速入门(增删改查)

    一. Hibernate框架的概述: 1.1 什么是Hibernate: 框架:软件的半成品,完成部分功能代码. Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC ...

  6. 一文快速入门分库分表中间件 Sharding-JDBC (必修课)

    书接上文 <一文快速入门分库分表(必修课)>,这篇拖了好长的时间,本来计划在一周前就该写完的,结果家庭内部突然人事调整,领导层进行权利交接,随之宣布我正式当爹,紧接着家庭地位滑落至第三名, ...

  7. Castle Active Record for .NET2.0快速入门示例

    一.创建Web工程 创建一个Web站点或者Web应用程序,添加对Castle.ActiveRecord.dll的引用. 二.创建需要持久化的业务实体 在.NET2.0下,由于引入了泛型,创建业务实体比 ...

  8. struts2教程--快速入门

    Struts2框架介绍 1.三大框架 : 是企业主流 JavaEE开发的一套架构 Struts2 + Spring + Hibernate 2. 什么是框架?为什么要学框架 ? 框架 是 实现部分功能 ...

  9. 分库分表介绍和Sharding-JDBC快速入门

    1.分库分表介绍 垂直分表:可以把一个宽表的字段按访问频次.是否是大字段的原则拆分为多个表,这样既能使业务清晰,还能提升部分性能.拆分后,尽量从业务角度避免联查,否则性能方面将得不偿失. 比如我们可以 ...

最新文章

  1. 详解Python的*args和 **kwargs
  2. Spring整合mybatis 1 查询
  3. 局域网一点通之组网、管网、用网1000问
  4. Spring Boot 2.x 启动全过程源码分析(上)入口类剖析
  5. python tkinter选择路径控件_如何使用tkinter在Python中选择目录并存储位置
  6. 谈谈枚举和 那啥 那啥来着 哦 对对对 泛型!
  7. 【linux 001】【利用staging Driver】【001】wifi AR6000 驱动移植引发的 staging 的问题
  8. ubuntu+intellij IDEA+android环境配置
  9. Atitit 架构师的分类 架构师都有哪些种类? 1. 应用架构师 应用架构师是行业中数量最多的架构师,主要负责公司产品的技术架构。产品架构师需要对业务有足够的理解,根据产品需求设计架构,在运营团
  10. 【防火墙篇】03. Web 登录 ❀ Juniper 防火墙
  11. Perl 6 - CPAN
  12. OpenGL ES 绘制图片
  13. 个人号微信淘宝客机器人SDK定制开发教程
  14. 网站软文推广类的文章怎么写?
  15. 2021年技术自媒体经验分享 —— 开始尝试认真做 CSDN 的一年后的复盘
  16. vs 没法f12_键盘快捷键 - F12不再适用于Visual Studio
  17. 疯子坐飞机,第1个人疯了,随便坐下,第n个人能够坐在自己位置上的概率
  18. ERP系统中与BOM有关的常用方法
  19. 安装新交互英语客户端提示找不到SOAP的解决方案
  20. MySQL 如何查看表和数据库索引

热门文章

  1. 【Python基础】什么是Python的 “内存管理机制”
  2. 图系列|7篇动态时空图网络学习必读的顶会论文
  3. 卷积神经网络之 - Alexnet
  4. 互联网1分钟 |1121
  5. 网易汪源: 网易云将如何激活 互联网+产业 深度融合
  6. 业界 | 裁判太嚣张?平昌之后,奥运会评分系统将引入AI技术
  7. 一个隐藏着的僵尸巨兽——Ponmocup僵尸网络
  8. 《软件工程(第4版?修订版)》—第1章1.2节软件工程取得了哪些进展
  9. 【Unity】11.2 刚体(Rigidbody)
  10. Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现...