第一步:引入所需的jar

第二步:创建实体类,配置实体类与数据表的映射关系

创建实体类

User.java

package cn.hao.entity;

public class User {

    /* hibernate要求实体类有一个唯一标识的属性 */
private int uid;
private String username;
private String password;
private String address;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} }

配置实体类与数据表映射关系

方式1:使用xml配置文件完成

User.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>
<!-- 1、配置类与表的映射
class标签
name属性:实体类全路径
table属性:数据表名称
-->
<class name="cn.itcast.entity.User" table="t_user">
<!-- 2、配置实体类id和表id对应
hibernate要求实体类有一个属性唯一值
hibernate要求表有字段作为唯一值
-->
<!-- id标签
name属性:实体类里面id属性名称
column属性:生成的表字段名称
-->
<id name="uid" column="uid">
<!-- 设置数据表id增长策略
native:生成表id值就是主键自动增长
-->
<generator class="native"></generator>
</id>
<!-- 3、配置其他属性和字段对应
name属性:实体类属性名称
column属性:生成表字段名称
-->
<property name="username" column="username"></property>
<property name="password" column="password"></property>
<property name="address" column="address"></property> </class>
</hibernate-mapping>

第三步:创建Hibernate核心配置文件

核心配置文件的位置和名称必须是:src下hibernate.cfg.xml

<?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">mysqladmin</property> <!-- 第二部分:配置hibernate信息(非必须的) -->
<!-- 在控制台输出底层sql语句 -->
<property name="hibernate.show_sql">true</property>
<!-- 在控制台输出sql语句格式 -->
<property name="hibernate.format_sql">true</property>
<!-- hibernate自动创建表
update:如果表已经存在,则更新;如果表不存在,则创建出表
-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 配置数据库方言
在mysql里面实现分页 关键字limit,该关键字只能在mysql中使用
而在Oracle数据库使用rownum关键实现分页操作
让hibernate框架识别不同数据库的语句
-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 第三那部分:把映射文件放到核心配置文件中(必须的) -->
<mapping resource="cn/itcast/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

以上就完成的Hibernate框架基本使用环境的搭建。

测试代码

package cn.hao.hibernatetest;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test; import cn.hao.entity.User; public class HibernateDemo {
@Test
public void testAdd() {
// 第一步 加载hibernate核心配置文件
// 到src下面找到名称为hibernate.cfg.xml
// 在hibernate里面封装对象
Configuration cfg = new Configuration();
cfg.configure(); // 第二步 创建SessionFactory对象
// 读取hibernate核心配置文件内容,创建SessionFactory
// 在该过程中,根据映射关系,创建数据表
SessionFactory sessionFactory = cfg.buildSessionFactory(); // 第三步 使用SessionFactory创建Session
// 类似于连接
Session session = sessionFactory.openSession(); // 第四步 开启事务
Transaction tx = session.beginTransaction(); // 第五步 写具体crud操作
User user = new User();
user.setUsername("小明");
user.setPassword("131415");
user.setAddress("上海");
// 调用session的方法实现添加
session.save(user); // 第六步 提交事务
tx.commit(); // 第七步 关闭资源
session.close();
sessionFactory.close();
}
}

最新文章

  1. C# 文件操作 把文件读取到字节数组
  2. Azure开发者任务之四:在Azure SDK 1.3中挂载调试器的错误
  3. CentOS下netstat + awk 查看tcp的网络连接状态
  4. openstack(liberty): devstack之stack.sh分析
  5. Java中转UTC时间字符串(含有T Z)为local时间
  6. org.dom4j.DocumentException unknown protocol h
  7. codeforces 455C 并查集
  8. 用 gulp.spritesmith 自动化雪碧图
  9. (中等) HDU 2295 , DLX+重复覆盖+二分。
  10. Spring配置文件的命名空间URI
  11. js改变盒子大小(上下左右)分析
  12. 1.let命令总结
  13. 在git服务器上创建项目过程及遇到的问题
  14. ToolTip C#
  15. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变
  16. intellij idea 编码设置(乱码问题)
  17. sql server xtype 对应数据类型名称sql查询
  18. 2014江西理工大学C语言程序设计竞赛高级组题解
  19. RtlWerpReportException failed with status code :-1073741823
  20. POJ——3061Subsequence(尺取法或二分查找)

热门文章

  1. vite2 + vite.config.js 比较坑的环境变量,vite2模式的使用
  2. [hdu6991]Increasing Subsequence
  3. [bzoj1927]星际竞速
  4. [bzoj2756]奇怪的游戏
  5. Python学习手册——第二部分 类型和运算(1)之字符串
  6. SpringBoot集成邮件发送
  7. Apache发布支持Java EE微服务的Meecrowave服务器
  8. Codeforces 512E - Fox And Polygon(构造)
  9. 洛谷 P5279 - [ZJOI2019]麻将(dp 套 dp)
  10. linux RPM/YUM包管理