准备工作
创建示例数据库
构建Hibernate基础代码
Hibernate配置
测试代码
准备工作
在正式开始Hibernate旅程之前,先准备好所需要的软件和开发环境。
1.Hibernate框架所需要的JAR包
2.MySql的最新版JDBC驱动
3.开发工具[Eclipse3.x]
4.数据库环境[MySql5.x]
创建示例数据库
CREATE DATABASE sample
CREATE TABLE `sample`.`user1` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL DEFAULT '',
PRIMARY KEY(`id`)
)
构建Hibernate基础代码
Hibernate基础代码包括POJO类和Hibernate映射文件。
POJO在Hibernate语义中理解为数据库表所对应的Domain Object。这里的POJO就是所谓的“无格式普通Java对象”,可以简单地理解为一个不包含逻辑代码的值对象(Value Object,简称VO)。从数据层面上来看,POJO作为数据实体的对象代表现形式,也称为实体类。
Hibernate是一种“对象—关系型数据映射组件”,它使用映射文件将对象(Object)与关系数据(Relational)相关联。在Hibernate中,映射文件通常以“.hbm.xml”作为后缀。
User1.java
public class User1 implements java.io.Serializable {
private Integer id;
private String name="";
public User1() {
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
User1.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="User1" table="user1" catalog="sample">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="45" not-null="true" />
</property>
</class>
</hibernate-mapping>
class节点定义
参数 描述
name 类名
table 类对应的表名
catalog 数据库目录
id节点定义
参数 描述
name 映射类中对应主键的属性名
type 上述属性的数据类型
column 主键字段名
generator子节点
参数 描述
class 主健生成方式
class属性可选项:
assigned:主键由应用逻辑产生
increment:主键按数值顺序递增
identity:采用数据库提供的主键生成机制
sequence:采用数据库提供的sequence机制生成主键
uuid.hex:由Hibernate基于128位唯一值产生算法,根据当前IP,时间,JVM启动时间,内部自增量等4个参数生成16进制数值(编码后以长度32的字符串表示)作为主键
foreign:使用外部表的字段作为主键
property节点参数
参数 描述
name 映射类属性名称
type 上述属性的数据类型
column 对应数据库表字段名
length 数据库类型长度
not-null 字段是否允许为空
Hibernate配置
Hibernate配置文件主要用于配置数据库连接和Hibernate运行时所需的各种属性。
hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 数据库URL -->
<property name="connection.url">jdbc:mysql://localhost:3306/sample</property>
<!-- 数据库JDBC驱动 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 数据库用户名 -->
<property name="connection.username">root</property>
<!-- 数据库用户密码 -->
<property name="connection.password">root</property>
<!-- 每个数据库都有其对应的方言以匹配其平台特性 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 是否将运行期生成的SQL输出到日志以供调试 -->
<property name="show_sql">true</property>
<!-- 映射文件配置,注意配置文件名必须包含其相对于根的全路径 -->
<mapping resource="User1.hbm.xml" />
</session-factory>
</hibernate-configuration>
测试代码:
插入数据
User1 user = new User1();
user.setId(new Integer(1));
user.setName("张三");
//创建Hibernate配置对象
Configuration cfg = new Configuration().configure();
//获得会话工厂对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
//获得会话对象
Session s = sessionFactory.openSession();
//启动事务
Transaction t = s.beginTransaction();
//插入数据
s.save(user);
//提交事务
t.commit();
//关闭会话
s.close();
//关闭会话工厂
sessionFactory.close();
修改数据
User1 user = new User1();
user.setId(new Integer(1));
user.setName("李四");
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction();
//修改数据
s.update(user);
t.commit();
s.close();
sessionFactory.close();
删除数据
User1 user = new User1();
user.setId(new Integer(1));
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction();
//删除数据
s.delete(user);
t.commit();
s.close();
sessionFactory.close();
查询数据
Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction();
//根据主键查询数据。如果查询不到,则抛出异常
User1 user = (User1) s.load(User1.class, new Integer(1));
//根据主键查询数据。如果查询不到,则返回null
//User1 user = (User1) s.get(User1.class, new Integer(1));
System.out.println(user.getId() + "\t" + user.getName());
t.commit();
s.close();
sessionFactory.close();
使用MyEclipse创建Hibernate的步骤:
1.先创建一个数据库的连接:
Window - ShowView - Other... - MyEclipse Database - Ok 在DBBrowser选项卡 空白处按右键 - new - Datebase Driver - Driver teplate选择驱动模板 - new - Driver name (自定义名字) - Connection URL - Username(数据库的用户名) - Userpassword(数据库的密码) - AddJARS(加入数据库驱动) - 可以选择savepassword(来保存密码) - Finish (连接创建完毕).
2.创建JAVA项目:
MyEclipse - ProjectCapabilities - addHibernateCapabilities - next - DBDriver选择前面自定义的连接 - next -是否创建SessionFactory(建议创建) - 创建包 -Finish
3. 在Hibernate.cfg.mxl中加入show_sql 还可以加format Properties - Add - show_sql - true - ok
4.在DBBrowser 中选中自定义的数据库的连接找到对映的表右键选中Hibernate Reverse Engineering.. - Java srcfolder选择src - Hibernate mapping file选中update hibernate选中 Java Data Object选中 - next - IDGenerator(选择数据库表中id的创建方式要和表里的一至) - next - Finish
5.在src目录先创建 类 实例化实体类并给实体类里的属性赋值 通过Configuration cfg = new Configuration().configure();得到配置对象 通过SessionFactory sessionFactory = cfg.buildSessionFactory();获得会话工厂对象 通过Session s = sessionFactory.openSession();
得到会话对象 Transaction t = s.beginTransaction();启动事务通过会话对象s控制数据 最后t.commit();提交事务 s.close();sessionFactory;关闭会话对象和工厂对象.OK了大功告成.
分享到:
相关推荐
第3章 快速起步 3.1 准备工作 3.2 Hibernate配置 3.3 日志配置 3.4 第一段代码 3.5 代码初解 第4章 Hibernate基础 4.1 Hibernate基础语义 4.2 基础配置 4.3 Hibernate O/R映射 4.4 数据关联 4.5 ...
Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...
**标题解析:** "hibernate所需要的所有jar包" 指的是...总的来说,这个压缩包是一个全面的Hibernate开发环境起步包,包含运行Hibernate应用所需的所有组件,适用于初学者快速上手或者为现有项目添加Hibernate支持。
Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...
Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...
第3章 快速起步 3.1 准备工作 3.2 Hibernate配置 3.3 日志配置 3.4 第一段代码 3.5 代码初解 第4章 Hibernate基础 4.1 Hibernate基础语义 4.2 基础配置 4.3 Hibernate O/R映射 4.4 数据关联 4.5 ...
5. **Spring Boot整合Hibernate**:Spring Boot通过`spring-boot-starter-data-jpa`起步依赖自动配置了Hibernate。只需在配置文件中指定数据库连接信息,Spring Boot就会自动创建SessionFactory,并在需要时提供...
Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...
此外,虽然自动化的代码生成可以快速起步,但有时仍需根据业务需求进行手动调整。 7. **文档资源** 提供的“JPA to entities.doc”文档很可能是对这个过程的详细步骤或者相关知识点的进一步解释,建议查阅以获取更...
Spring Boot的核心理念是“约定优于配置”,它提供了一种快速构建独立的、生产级别的基于Spring的应用程序的方法。无需大量的XML配置,而是通过自动配置和起步依赖来简化项目结构。 1. **起步依赖**:Spring Boot...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供读者对比与参考,也给初学者提供了一个快带起步的基础。...
SpringBoot是Spring框架的一个子项目,它简化了初始化和配置Spring应用的过程,使得开发者能够快速启动项目。SpringBoot的核心特性包括自动配置、内嵌Web服务器(如Tomcat)和起步依赖。通过起步依赖,开发者可以...
虽然自动生成的代码可以快速起步,但通常需要根据项目需求进行调整。比如,添加懒加载、缓存策略、事务管理等高级特性。此外,合理设计实体类的继承结构,利用集合类型处理一对多、多对一关系,也是提高代码可维护...
本书有丰富的附录部,在附录中讲述了Hibernate常用的映射配置,Hibernate工具、XDoclet模板配置以及Hibernate的益友iBatis用法,还以卡片的形式列出了本书中所用的工具及软件,附录最后一部分是“快速启动代码”,供...
创建一个新的 Maven 项目,并在 `pom.xml` 文件中添加 SpringBoot 的起步依赖,例如 `spring-boot-starter-web` 和 `spring-boot-starter-data-jpa`,后者包含了对 Hibernate 的支持。 接下来,我们需要定义实体类...