hibernate环境搭建

持久化概念:

持久化就是把数据(如内存中的对象)同步保存到数据库或某些存储设备中(如磁盘文件中、XML数据文件中)等等。
在软件的分层体系结构中,持久化层是与数据库打交道的逻辑层.

JDBC-的问题:

代码繁琐:

一个插入对象的例子

public void addAccount(final Account account) throws DAOException,AccountAlreadyExistException{ final Connection conn=getConnection(); PreparedStatement pstmt=conn.prepareStatement(“insert into account values(?,?,?)”); pstmt.setString(1.account.getUserName)); pstmt.setInt(2,account.getPassWord)); pstmt.setString(3.account.getSex); pstmt.execute(); conn.close();

如果account表有上百个字段,则pstmt.setXX()语句要写上百次,这明显不合适

非面向对象

对于数据库的操作不是面向对象,是面向关系数据库的

ORM简介

ORM(object relational mapping)是对象到关系的映射

它把对表直接进行的操作变成对持久化类的属性和方法的直接操作

ORM作为分层体系中的持久层.

ORM技术可以极大地提高开发效率和开发时间,同时开发质量也更容易得到保证

hibernate核心接口

Session、SessionFactory、Transaction、Query和Configuration

Session:

Session负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。

但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。

这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。

SessionFactory

SessionFactroy负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。

这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,

一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

Configuration

Configuration负责配置并启动Hibernate,创建SessionFactory对象。

在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

Transaction

Transaction负责事务相关的操作。

它是可选的,可发人员也可以设计编写自己的底层事务处理代码.

Query:

Query负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。

环境搭建:

依赖包:

pom.xml

4.0.0 com.demo my-hibernate 0.0.1-SNAPSHOT org.hibernate hibernate-core 3.6.10.Final org.hibernate.javax.persistence hibernate-jpa-2.0-api 1.0.0.Final log4j log4j 1.2.17 org.slf4j slf4j-log4j12 1.7.7 org.javassist javassist 3.18.2-GA junit junit 4.10 oracle ojdbc 14

注意:ojdbc14.jar需要手动添加到maven本地仓库,自定义坐标

hibernate.cfg.xml:

true oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:orcl diankun diankun org.hibernate.dialect.Oracle10gDialect create

Student:

package com.demo.model; public class Student { private int studentId ; private String studentName ; private int age; public int getStudentId() { return studentId; } public void setStudentId(int studentId) { this.studentId = studentId; } public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }

Student.hbm.xml

Test

package com.demo; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.junit.Before; import org.junit.Test; public class StudentTest { SessionFactory sessionFactory ; @Before public void init(){ sessionFactory=new Configuration().configure().buildSessionFactory(); } @Test public void createTest(){ } }

运行mvn test ,数据库自动生成表结构
hibernate环境搭建

分类:默认分类 时间:2015-03-04 人气:2
本文关键词:
分享到:

相关文章

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.016 (s). 10 q(s)