Hibernate链接数据文件

    xiaoxiao2021-03-25  111

    //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包

    转载请注明原文地址: https://ju.6miu.com/read-20046.html

    最新回复(0)