一、SSH框架之——Hibernate入门环境的搭建和基础操作(2)

搭建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();
	}
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值