第一次使用和学习hibernate

第一次使用和学习hibernate

  •                      **学习hibernate前提技能整理 **
    

1.mysql、JDBC、DBUtils、
2.hibernate底层是JDBC,架构可以简化开发流程,提供新的功能,比如缓存。
3.框架是一个半成品的项目,重点掌握使用、应用框架。
ORM对象关系映射。

          -- **hibernate入门流程**

一.下载hiebernate5
(https://sourceforge.net/projects/hibernate/files/hibernate-

orm/5.2.10.Final/hibernate-release-5.2.10.Final.zip/download)
二.对目录结构进行了解

  • documentation文件夹 文件相关资料

  • *javadocs文件夹 java文档
    *quickstart文件夹 快速入门

    *lib文件夹源码
    *jpa文件夹ORM框架规范
    *required文件夹架构必须引入的包
    *optional文件夹 可选包
    *c3p0文件夹映射的配置文件

    *project文件夹提供开源的小项目
    *etc文件夹hiebernate的配置文件目录

powerdesigner 设置字段显示comment注释
在Columns标签下,一排按钮中找到这个按钮:Customize Columns and Filter

M:表示强制非空;P:是否为主键;D:是否在模型中显示。gerenate:表示是否作为表生成

三.创建表结构
//
/
DBMS name: MySQL 5.0 /
/
Created on: 2017/7/26 14:02:05 /
/
/

drop table if exists cst_customer;

//
/
Table: cst_customer /
/
/
create table cst_customer
(
cust_id bigint(32) not null comment ‘客户编号(主键)’,
cust_name varchar(32) not null comment ‘客户名称(公司名称)’,
cust_user_id bigint(32) comment ‘负责人id’,
cust_create_id bigint(32) comment ‘创建人id’,
cust_source varchar(32) comment ‘客户信息来源’,
cust_industry varchar(32) comment ‘客户所属行业’,
cust_level varchar(32) comment ‘客户级别’,
cust_linkman varchar(64) comment ‘联系人’,
cust_phone varchar(64) comment ‘固定电话’,
cust_mobile varchar(16) comment ‘移动电话’,
primary key (cust_id)
)ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;
四.导包
mysql-connector-java-5.1.37-bin
hibernate-release-5.0.7.Final\lib\required
五.包介绍
hibernate-core-5.0.7.Final 核心包
hibernate-commons-annotations-5.0.1.Final 注解相关
javassist-3.18.1-GA 生成动态代理
dom4j-1.6.1 解析xml
log4j-1.2.17 日志包
slf4j-api-1.7.5日志接口
slf4j-log4j12-1.7.5 整合包
六.实体类
注意事项: 包装类默认值是null,基本数据类型是零。
七.对应数据库和实体类的xml映射文件 Customer.hbn.xml
命名格式 .hbn.xml
约束位置: libraries/hibernate-core/org.hibernate/hibernate-mapping-3.0.dtd

//约束

文档信息

!-- 见到name属性 都是JavaBena的属性
见到column属性 是表结构的字段。

–*
– 根节点标签 -->

- 配置实体类和表结构的属性标签 -->
– class标签:name属性 填写类的全路径,table属性填写数据库的表名 -->

- id标签,用于配置主键 -->

– generator属性是主键的生成策略 -->


– property标签用于配置其他属性, -->
– name属性用于填写实体类的成员变量名称, column属性用于填写实体类的字段 -->
property name=“cust_name” column=“cust_name”
property>
property name=“cust_user_id” column=“cust_user_id”>property>
property name=“cust_create_id” column=“cust_create_id”>

八.创建hibernate配置文件 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”>

< 一个数据库对应一个session-factory一个 -->

  #hibernate.dialect org.hibernate.dialect.MySQLDialect
  #hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
  #hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect
  #hibernate.connection.driver_class org.gjt.mm.mysql.Driver
  #hibernate.connection.driver_class com.mysql.jdbc.Driver
  #hibernate.connection.url jdbc:mysql:///test
  #hibernate.connection.username gavin
  #hibernate.connection.password

–>
– 必须要配置的参数有五个,四大参数和一个数据库方言 -->
property

name=“hibernate.connection.driver_class”>com.mysql.jdbc.Driver
property

name=“hibernate.connection.url”>jdbc:mysql:///hibernate_day01
property name=“hibernate.connection.username”>root
root
– 方言 -->
property

name=“hibernate.dialect”>org.hibernate.dialect.MySQLDialect
映射配置文件 需要引入映射的配置文件 -->

session-factory>
hibernate-configuration>
测试类
public void testsave() {
1.加载配置文件,默认加载src下的hibernate.cfg.xml
Configuration config = new Configuration();
config.configure();
System.out.println(“加载配置文件”);
2.创建session-factory,生成session
SessionFactory factory = config.buildSessionFactory();
Session session = factory.openSession();
System.out.println(“创建session-factory,生成session”);
// 3.开启事务
Transaction transaction = session.beginTransaction();
System.out.println(“开启事务”);
4.编写保存的代码

	Customer c = new Customer();
	System.out.println("创建Costomer");
	c.setCust_name("小名");
	c.setCust_user_id(2001l);
	c.setCust_create_id(110l);
	c.setCust_source("百度");
	c.setCust_industry("民工");
	c.setCust_level("一级");
	c.setCust_linkman("小李子");
	c.setCust_phone("010-232323234");
	c.setCust_mobile("122222222");
	System.out.println("向实体类保存数据完成");
	
		
		session.save(c);

	
	System.out.println("编写保存的代码");
5.提交事务
	transaction.commit();
	System.out.println("提交事务");
	6.释放事务
	session.close();
	factory.close();
	System.out.println("释放事务");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TianYuBaBy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值