博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
01hibernate_first
阅读量:7251 次
发布时间:2019-06-29

本文共 2602 字,大约阅读时间需要 8 分钟。

第一个hibernate项目

1、新建java项目
2、创建User Library,加入如下jar
* HIBERNATE_HOME/hibernate3.jar
* HIBERNATE_HOME/lib/*.jar
* MySql jdbc驱动
3、创建hibernate配置文件hibernate.cfg.xml,为了便于调试最好加入log4j配置文件
4、定义实体类User.java
5、定义User类的映射文件User.hbm.xml
6、将User.hbml.xml文件加入到hibernate.cfg.xml文件中
7、编写hbm2ddl工具类,将实体类生成数据库表
a)
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
SchemaExport export = new SchemaExport(cfg);
export.create(true, true);
b)drop table if exists User
15:04:53,062 WARN JDBCExceptionReporter:48 - SQL Warning: 1051, SQLState: 42S02
15:04:53,062 WARN JDBCExceptionReporter:49 - Unknown table 'user'
create table User (id varchar(255) not null, name varchar(255), password varchar(255), createTime datetime, expireTime datetime, primary key (id))
15:04:53,140 WARN JDBCExceptionReporter:48 - SQL Warning: 1051, SQLState: 42S02
15:04:53,140 WARN JDBCExceptionReporter:49 - Unknown table 'user'
8、开发客户端Client.java
a)public class Client {
public static void main(String[] args) {
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//创建SessionFactory
SessionFactory factory = cfg.buildSessionFactory();
Session session = null;
try {
session = factory.openSession();
//开启事务
session.beginTransaction();
User user = new User();
user.setName("白龙马");
user.setPassword("123");
user.setCreateTime(new Date());
user.setExpireTime(new Date());
//保存数据
session.save(user);
//提交事务
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
//回滚事务
session.getTransaction().rollback();
}finally {
if (session != null) {
if (session.isOpen()) {
//关闭session
session.close();
}
}
}
}
}
b)Hibernate: insert into User (name, password, createTime, expireTime, id) values (?, ?, ?, ?, ?)
c)
mysql> use 01_hibernate_first;
Database changed
mysql> show tables;
+------------------------------+
| Tables_in_01_hibernate_first |
+------------------------------+
| user |
+------------------------------+
1 row in set (0.00 sec)
mysql> select * from user;
+----------------------------------+--------+----------+---------------------+---------------------+
| id | name | password | createTime | expireTime |
+----------------------------------+--------+----------+---------------------+---------------------+
| 402881e538dbdbd80138dbdbda690001 | 白龙马 | 123 | 2012-07-31 15:06:54 | 2012-07-31 15:06:54 |
+----------------------------------+--------+----------+---------------------+---------------------+
1 row in set (0.00 sec)
为了方便跟踪sql执行,在hibernate.cfg.xml文件中加入:
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>

转载地址:http://bphbm.baihongyu.com/

你可能感兴趣的文章
解决阿里云ECS运行前后台分离项目调用QQ互联导致: redirect uri is illegal(100010)问题...
查看>>
Slog48_项目上线之域名的备案
查看>>
[ 一起学React系列 -- 1 ] 信笔说JSX
查看>>
homebrew报错问题解决
查看>>
肉眼看到的相同两个字串的不同
查看>>
ng-zorror@~0.6升级@^1在开发中有哪些差异
查看>>
微信小程序 request请求封装
查看>>
Git 学习
查看>>
ES6深入浅出 模块系统
查看>>
一道js闭包面试题的学习
查看>>
微信小程序(新)必备知识
查看>>
网站接入微信扫码登录并获取用户基本信息(微信开放平台)
查看>>
HTC VIVE Wave 概览
查看>>
Vue动态控制input的disabled属性
查看>>
TCP的局限性有哪些?
查看>>
【前端数据结构基础】栈
查看>>
沙漠种水稻,88岁的袁隆平又创造奇迹!他参与的“袁米”还有个大计划
查看>>
JS基础入门篇(二十四)—DOM(上)
查看>>
阿里架构师眼里JVM可以说的那些事
查看>>
如何将应用完美迁移至Android P版本
查看>>