//hibernate 配置文件
//放在src 文件夹下的 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> <!-- 配置oracle驱动 --> <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <!-- 连接的url --> <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property> <!-- 用户名 --> <property name="hibernate.connection.username">scott</property> <!-- 密码 --> <property name="hibernate.connection.password">123456</property> <!-- 方言 --> <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property> <!-- 是否输出打印sql语句 --> <property name="hibernate.show_sql">true</property> <!-- 输出打印sql语句 的格式化--> <property name="hibernate.format_sql">true</property> <!-- 是否创建表--> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 注册实体的映射文件 --> <mapping resource="com/yh/po/User.hbm.xml"/> </session-factory></hibernate-configuration>
实体配置文件 User.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated 2017-3-10 9:40:53 by Hibernate Tools 3.4.0.CR1 --> <hibernate-mapping> <!-- table :表的名称 oracle table名称不能起名为user(user在oracle内是个关键字) --> <class name="com.yh.po.User" table="hibernate_user"> <id name="id" type="int"> <column name="ID" /> <!-- <generator class="sequence" /> hibernate取调用名字默认叫hibernate_sequence的序列,需要取数据库创建该名字的序列 --> <generator class="sequence"> <param name="sequence">seq_user</param> <!-- 指定序列 --> </generator> <!-- <generator class="assigned"></generator> 应用指定id --> </id> <!-- property name:实体的属性名称 --> <property name="userName" type="java.lang.String"> <column name="user_name" /> </property> <property name="password" type="java.lang.String"> <column name="pwd" /> </property> </class> </hibernate-mapping>
实体类文件
package com.yh.po; public class User{ private int id; private String userName; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } 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; } }
//数据库链接文件
package com.yh.db; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class DatabaseConnection { private static Configuration configuration=null; private static SessionFactory sessionFactory=null; static{ //1.创建一个解析配置文件的Configuration对象 configure() 默认会去src下找一个叫hibernate.cfg.xml的配置文件 configuration=new Configuration().configure(); //2.创建数据源代理 sessionFactory=configuration.buildSessionFactory(); } public static Session getSession(){ return sessionFactory.openSession(); } } package com.yh.test; import static org.junit.Assert.*; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; import com.yh.po.User; public class TestUser { @Test public void test() { //1.创建一个解析配置文件的Configuration对象 configure() 默认会去src下找一个叫hibernate.cfg.xml的配置文件 Configuration configuration=new Configuration().configure(); //2.创建数据源代理 SessionFactory sessionFactory=configuration.buildSessionFactory(); //3.得到一个session对象 sessionFactory 的openSession() Session session=sessionFactory.openSession(); //4.开启事务 session.beginTransaction() Transaction tx=session.beginTransaction(); try{ User user=new User(); user.setUserName("yunhe_user"); user.setPassword("123456"); //插入数据 session.save(user); //5.提交事务 tx.commit(); }catch(Exception e){ //6.事务回滚 tx.rollback(); }finally{ if(session!=null){ //7.关闭session session.close(); } } } } //package com.yh.test; import static org.junit.Assert.*; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Before; import org.junit.Test; import com.yh.db.DatabaseConnection; import com.yh.po.User; public class TestUser2 { @Test public void test() { query(); add(); } public void add(){ Session session=null; Transaction tx=null; try{ session=DatabaseConnection.getSession(); //开启事务(save,update,delete操作,必须开启事务) tx=session.beginTransaction(); User user=new User(); user.setUserName("test002"); user.setPassword("8888"); session.save(user); tx.commit(); }catch(Exception e){ tx.rollback(); } /*finally{ session.close(); }*/ } public void update(){ } public void delete(){ } public void query(){ Session session=DatabaseConnection.getSession(); //get()或load() /* * get():当查询到id不存在时,返回null,不会发生异常信息 load():当查询到id不存在时,报异常信息 */ User user= (User) session.get(User.class, 5793); System.out.println(user); } } jar包
