使用hibernate框架
1、导包
所需要的jar包总共有如下:
2、配置hibernate.cfg.xml文件(此文件在src目录下)
<?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>
<!--oracle数据库驱动 -->
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<!--连接oracle数据库的url-->
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:orcl
</property>
<!--数据库用户名和密码-->
<property name="connection.username">scott</property>
<property name="connection.password">scott</property>
<!--数据库方言,不同的数据库版本,在sql语法上是有区别的-->
<!--相当于告诉hibernate框架,使用的是什么数据库-->//这个是不会变化的
<property name="dialect">
org.hibernate.dialect.OracleDialect
</property>
<!--在控制台打印执行的SQL语句-->
<property name="show_sql">true</property>
<!--格式化SQL语句-->
<property name="format_sql">true</property>
<!--针对实体类的映射文件,这样hibernate框架才能找到相应的类-->
<!--项目有几个实体类,将有会有几个mapping标签,其resource指向实体类的映射文件-->
<mapping resource="com/jxd/entity/Employee.hbm.xml" />
</session-factory>
</hibernate-configuration>
3、配置Employee.hbm.xml文件,此文件在entity文件夹下,与实体类相对应
<?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">
<hibernate-mapping>
<!--实体类Employee和数据库表Employee的映射-->
<class name="com.jxd.entity.Employee" table="EMPLOYEE" schema="SCOTT">
<!--id标签用来映射主键,name是实体类中对应主键的属性,column为表的主键-->
<id name="empno" column="empno">
<!--主键的生成方式采用的序列sequence-->
<generator class="sequence">
<!--主键参数为此表对应的序列名-->
<param name="sequence">empno_seq</param>
</generator>
</id>
<!--property标签用来映射普通的字段,name为实体类中的属性名,type为类中的数据类型-->
<property name="name" column="name" />
<!--column为表中的字段,name为字段名,长度为定义时的长度-->
<property name="sex" column="sex" />
<property name="birthday" column="birthday" />
<property name="deptno" column="deptno" />
</class>
</hibernate-mapping>
所需要的配置文件基本结束
接下来就是使用,常用方法有:
首先应该加载配置文件,创建会话
//加载配置文件
Configuration cf = new Configuration().configure();
//创建sessionFactory
SessionFactory sf = cf.buildSessionFactory();
//得到与数据库的会话session
Session se = sf.openSession();
创建事务对象,因为只有提交事务之后才能够真正实现增删改
Transaction ts = se.beginTransaction();
// //调用session的save方法保存数据,把员工信息插入到数据库中
//提交事务
// ts.commit();
1)、查
session.CreateQuery();
二者的作用是一样的
2)、删
删除数据首先应该得到数据(get()和load()方法)
session.get()
session.load()
session.delete()
3)、增
session.save()
4)、改
session.update()