配置hibernate手动配置

手动配置:java

1.CROD 操做程序员

界面sql

testmain.java数据库

Domainsession

service架构

数据持久层oracle

数据库app

Mysqldom

Oreacle函数

Sqlserver

                                                                                                                               ````

2.引用hibernate   jar

3.POJO介绍

 使用hibernate 时 要求数据库的某张表相互对应的那个java 类叫作pojo类  plain ordinary java objects 实际 就是普通的javaBeans 使用.

特色:

有一个主键属性 , 用于惟一标识该对象

有其余的属性

有对个个属操做的getset 方法

属性通常的private 修饰

必定要有一个无产的构造函数 (用于hibernate 架构的反射做用)

对象关系映射文件 做用 与 domain 对象和类的映射关系

文件名的 规范

Domian对象 bomm .xml 通常会放在domain 对象统一文件夹下(同包下)

手动用户配置 domain 对象和表的映射关系  

<?xml version="1.0" encoding="utf-8"?>

<!--该文件要清楚地表述出 类 和 表 的对应关系-->

<!DOCTYPE hibernate-mapping PUBLIC

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<!-- package : 表示该类在哪一个包下 -->

<hibernate-mapping package="com.sun.domain">

<!-- name : 表示类名 table 表示 该类和哪一个表映射 -->

<class name="Employee" table="EMPLOYEE">

<!-- id元素专门用于指定主键是如何生成,hibernate设计者认为,咱们每个表都应该有一个主键 -->

<!-- name:表示类的哪一个属性是主键 -->

<id name="id" type="java.lang.Integer">

<!-- 指定主键生成策略 -->

<generator class="sequence">

<param name="sequence">emp_seq</param>

</generator>

</id>

<property name="name" type="java.lang.String">

<column name="name" not-null="true"/>

</property>

<property name="email" type="java.lang.String">

<column name="email" not-null="true"/>

</property>

<property name="hiredate" type="java.util.Date">

<column name="hiredate" not-null="true"/>

</property>

</class>

</hibernate-mapping>

手动配置 咱们 的 hibernate.cfg.xml文件 该文件用于配置,链接数据库的类型, driver 用户名 ,密码 , url  *****  文件名称 ,程序员通常不进行修改该文件。

手动配置 hibernate.cfg.xml 文件 代码以下

<?xml version='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration PUBLIC

        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

 <session-factory>

 <!-- -hibernate 设计者提供经常使用设置-->

 <!-- -配置使用driver -->

      <property name="connection.driver_class"> oracle.jdbc.driver.OracleDriver</property>

        <!-- -配置用户名 -->

        <property name="connection.username">system</property>

         <!-- -配置密码 -->

          <property name="connection.password">123</property>

          <!-- -地址 -->

          <property name="connection.url">jdbc:oracle:thin:@127.0.0.1 :1521:SUNDB</property>

  <!-- -p配置dialect方言使其 识别链接方式 -->

  <property name="dialect">org.hibernate.dialect.OracleDialect</property>

 <mapping resource="com/sun/domain/Emloyee.hbm.xml"/>

 </session-factory>

hibernate-configuration>

建立一个序列,未来用于主键的自增加 :

--建立一个序列

create sequence emp_seq

start with 1

increment by 1

minvalue 1

nomaxvalue

nocycle

nocache

View 方法呈现

package com.sun.view;

import java.util.Date;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import com.sun.domain.Employee;

public class MainTest {

/**

 * @param args

 */

public static void main(String[] args) {

// TODO Auto-generated method stub

//建立configuration链接hibernate 该对象读取 完成初始化

Configuration configuration = new Configuration().configure("hibernate.cfg.xml");

///建立SessionFactory 这是一个会化工厂  是重量级的对象  保证该对象存在一次

//很是重要 

SessionFactory sessionFactory = configuration.buildSessionFactory();

//建立Session 与数据库进行对话  和jdbc 的链接

Session session = sessionFactory.openSession();

///对hibernate 而言 要去对数据库 增长 , 删除  ,修改  的时候使用事务提交

//添加一名雇员

Transaction transaction = session.beginTransaction();

Employee myEmployee = new Employee();

myEmployee.setName("素贞");

myEmployee.setEmail("shuzhen@163.com");

myEmployee.setHiredate(new Date());

///实现保存

session.save(myEmployee); ///实现hibernate 封装

///完成关闭操做

///事务提交文件数据库

transaction.commit();

session.close();

}

}

对数据的   增长  修改   删除  

要求数据持久层 的 类中 进行序列化 

使用hibernate 开发型模数据   要使用一个 sessionFactory,提升数据减小内存的

简单定义 一个数据库 对应一个SessionFactory接口  使用一个工具包编写  

SessionFactory 会话工厂

案例 

建立一个工具类编写 SessionFactory会话工厂

package com.sun.Util;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

///使用hibernate 开发型模数据   要使用一个 sessionFactory,提升数据减小内存的使用

//简单定义 一个数据库 对应一个SessionFactory接口

final public class MySessionFactory {

   private static SessionFactory sessionFactory  = null

//构造函数

   private  MySessionFactory() {

}

///建立一次单例 只能被调用一次 

   static {

sessionFactory=new Configuration().configure().buildSessionFactory();    

       }

 public static SessionFactory getSessionFactory() {

return sessionFactory;

}

}

主类

package com.sun.view;

import java.util.Date;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import com.sun.Util.MySessionFactory;

import com.sun.domain.Employee;

public class MainTest {

/**

 * @param args

 */

public static void main(String[] args) {

///添加对象数据

  AddEmployee();

  //修改对象数据

c   updateEmployee();

//删对象数据

    DeleteEmployee();

}

public static void DeleteEmployee() {

///h获取一个session 

Session session = MySessionFactory.getSessionFactory().openSession();

//删除获取对象 获取该对象  , 而后删除

//建立事务调用Session 中的beginTransaction()函数开始事务  勿忘   要有结束事务  即提交事务

 Transaction ts = session.beginTransaction();

///实现  强转 

Employee employee = (Employee) session.load(Employee.class,3);

session.delete(employee);

ts.commit();

session.close();

}

      //修改对象数据

public static void updateEmployee() {

//修改对象 

//建立configuration 对象

//建立会话工厂  SessionFactory   重量级 对象 

//只能建立一次 咱们能够封装起来 写成一个最终了类 是单态 

Session session = MySessionFactory.getSessionFactory().openSession();

//修改用户 对象  获取咱们要修改的用户  修改

//使用对象数据库对象与类的反射

//load 函数 经过主键属性   ,进而获取该对象  表的记录对应

///必定要进行强钻对象

Transaction ts = session.beginTransaction();

Employee emp =(Employee) session.load(Employee.class,6);

emp.setName("宫保鸡丁");  ///实现对数据库修改对象  update

ts.commit();

session.close();

}

   /// 添加对象数据 

public static void AddEmployee() {

// TODO Auto-generated method stub

//建立configuration链接hibernate 该对象读取 完成初始化

Configuration configuration = new Configuration().configure("hibernate.cfg.xml");

///建立SessionFactory 这是一个会化工厂  是重量级的对象  保证该对象存在一次

//很是重要 

SessionFactory sessionFactory = configuration.buildSessionFactory();

//建立Session 与数据库进行对话  和jdbc 的链接

Session session = sessionFactory.openSession();

///hibernate 而言 要去对数据库 增长 , 删除  ,修改  的时候使用事务提交

//添加一名雇员

Transaction transaction = session.beginTransaction();

Employee myEmployee = new Employee();

myEmployee.setName("素贞");

myEmployee.setEmail("shuzhen@163.com");

myEmployee.setHiredate(new Date());

///实现保存

session.save(myEmployee); ///实现hibernate 封装

///完成关闭操做

///事务提交文件数据库

transaction.commit();

session.close();

}

}

相关文章
相关标签/搜索