搭建hibernate环境
一:装备工作
1:jar包的下载
官网下载地址http://hibernate.org/
二:开始搭建
1:准备工作做好就开始创建项目
我是没有创建WEB项目,因为开始就是学习环境的搭建
将所需要的jar包导入lib中 ,然后选中全部jar包对其构建路径,
按住shift点击第一个和最后一个可以全部选中 然后右击在点击bulid path
因为使用hibernate时候,有日志信息输出,hibernate本身没有日志输出的jar包,导入其他日志的jar包
不要忘记还有mysql驱动的jar包
2:创建实体类User.java
(1)使用hibernate时候,不需要自己手动创建表,hibernate会帮我们把表创建好。
3:配置实体类和数据库表一一对应(映射关系)
使用配置文件实现映射关系
(1)创建xml格式的配置文件
映射配置文件名称和位置没有固定要求
我是在实体类所在包里面创建,实体类名称.xml
(2)配置是xml格式,在配置文件中首先引入xml约束(dtd约束)
打开 复制标红的
(3)映射关系是<hibernate-mapping>
实体类的全路径可以直接复制
选择类名右击点击copy Q~N,就是copy下面那个
<!-- 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>
<!-- 配置其他属性和表字段对应
name属性:实体类里面id属性名称
column属性:生成的表字段名称
-->
<property name="username" column="username"></property>
<property name="password" column="password"></property>
<property name="address" column="address"></property>
设置数据库表id增长策略(一部分)
1:自动增长identity
数据库中的语法如下:
MySQL:create table t_user(id int auto_increment primary key, name varchar(20));
<id name="id" column="id" type="long">
<generator class="identity" />
</id>
2:sequence
insert into tbl_name(id, name) values(seq_name.nextval, ‘Jimliu’);
<id name="id" column="id" type="long">
<generator class="sequence">
<param name="sequence">seq_name</param>
</generator>
</id>
4:native
<id name="id" column="id">
<generator class="native"/>
</id>
4:创建hibernate的核心配置文件
(1)核心配置文件格式xml,但是核心配置文件名称和位置是固定的
位置:必须在src下面
名称:必须hibernate.cfg.xml
(2)引入dtd约束
(3)hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载
第一部分:配置数据库信息必须的
<hibernate-configuration>
<session-factory>
<!-- 第一部分:配置数据库信息 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
配置数据库的信息在下面文件中找
第二部分:配置hibernate信息可选的
<!-- 第二部分:配置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>
<!-- 配置数据库的方言
识别不懂数据库的特有语句
-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
第三部分:把映射文件放到核心配置文件中,必须的,因为hibernate操作时只加载核心文件
注意:resource后面路径必须是文件路径
<!-- 第三部分:把映射文件放到核心配置文件中 -->
<mapping resource="cn/itcast/entity/User.xml"/>
</session-factory>
</hibernate-configuration>
到这里hibernate环境就搭建好了
实现添加操作
第一步,加载hibernate核心配置文件
第二步,创建SessionFactory对象
第三步,使用SessionFactory创建session对象
第四步,开启事物
第五步,写具体逻辑 crud操作
第六步,提交事物
第七步,关闭资源
@Test
public void testAdd() {
// 第一步 加载hibernate核心配置文件
// 到src下面找到名称是hibernate.cfg.xml
//在hibernate里面封装对象
// Configuration cfg = new Configuration();
// cfg.configure();
// 第二步 创建SessionFactory对象
//读取hibernate核心配置文件内容,创建sessionFactory
//在过程中,根据映射关系,在配置数据库里面把表创建
// SessionFactory sessionFactory = cfg.buildSessionFactory();
SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
// 第三步 使用SessionFactory创建session对象
// 类似于连接
Session session = sessionFactory.openSession();
// 第四步 开启事务
Transaction tx = session.beginTransaction();
// 第五步 写具体逻辑 crud操作
//添加功能
User user = new User();
user.setUsername("小马");
user.setPassword("1314520");
user.setAddress("美国");
//调用session的方法实现添加
session.save(user);
// 第六步 提交事务
tx.commit();
// 第七步 关闭资源
session.close();
sessionFactory.close();
}
}