hibernate入门之oracle连接

来源:互联网 发布:隔墙听音器专卖店淘宝 编辑:程序博客网 时间:2024/05/22 13:35

1.搭建hibernate环境

导入jar包,由于hibernate会有日志输出,本身没有对日志处理的jar包,所以需要另外导入hibernate-entitymanager是hibernate一套规范,所以也是需要的

所有必须jar包下载地址:http://download.csdn.net/detail/m0_37983376/9864698

2.创建实体类

package com.sq.entity;/** *@author sq * */public class User {/** * hibernate 要求实体类有一个属性是唯一的 */private String uid;private String username;private String password;public String getUid() {return uid;}public void setUid(String 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;}@Overridepublic String toString() {return "User [uid=" + uid + ", username=" + username + ", password="+ password + "]";}}
(1)使用hibernate不需要手动创建表,hibernate会自动帮你创建

3.配置hibernate实现数据库表与实体类一一对应关系(映射关系)

(1)实用配置文件实现映射关系

  • 创建一个xml的配置文件,名称位置没有固定要求

建议:在实体类的包下面创建,名称:实体类.hbm.xml

  • 引入dtd约束

  • 配置实体类和数据表的对应关系
<?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="com.sq.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></class></hibernate-mapping>

4.创建hibernate核心配置文件

    (1)核心配置文件xml,名称和位置是固定的,位置必须在src下面,名称必须为hibernate.cfg.xml
(2)引入dtd约束
(3)hibernate只会加载核心配置文件
<?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><!-- 1.配置数据库的信息 必须有--><property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name="hibernate.connection.username">sq</property><property name="hibernate.connection.password">sq</property><property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><!-- 2.配置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.Oracle10gDialect</property><!-- 3.把映射文件放入到核心配置文件中 必须的--><mapping resource="com/sq/entity/User.hbm.xml"/></session-factory></hibernate-configuration>

5.实现添加操作

    (1)加载hibernate核心配置文件
(2)创建Sessionfactory对象
(3)使用Sessionfactory创建session对象
(4)开启事物
(5)写具体逻辑crud操作
(6)提交事务
(7)关闭资源

package com.sq.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;import com.sq.entity.User;/** *@author sq * */public class Demo {@Testpublic void test(){//(1)加载hibernate核心配置文件//到src下面找到名称是hibernate.cfg.xml//在hibernate里面封装对象Configuration cfg = new Configuration();cfg.configure();//(2)创建Sessionfactory对象//读取hibernate核心配置文件内容,创建sessionFactory//在过程中,根据映射关系,在配置数据库里面把表建立好SessionFactory sf = cfg.buildSessionFactory();//(3)使用Sessionfactory创建session对象Session session = sf.openSession();//(4)开启事物Transaction tx = session.beginTransaction();//(5)写具体逻辑crud操作User user = new User();user.setUsername("sq");user.setPassword("sq");//调用session里面的方法实现添加session.save(user);//(6)提交事务tx.commit();//(7)关闭资源session.close();sf.close();}}


原创粉丝点击