idea Oracle hibernate5 DML操作

簡單的Hibernate示例DML操作

項目目錄結構:
在這裏插入圖片描述hibernate.cfg.xml配置文件

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>

    <!--    連接Oracle數據庫的四個串-->
    <property name="connection.url">jdbc:oracle:thin:@localhost:1521:ORCL</property>
    <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="connection.username">scott</property>
    <property name="connection.password">tiger</property>

    <!--    顯示執行的SQL語句、format格式-->
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <!--    數據庫方言-->
    <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>

    <!--    讀取映射文件-->
    <mapping resource="org/aptech/hdax/pojo/Depttwo.hbm.xml"/>
    <mapping resource="org/aptech/hdax/pojo/Emptwo.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

Emptwo 實體類
實體類使用的lombok插件簡化getter\setter方法,提供getter、setter方法

package org.aptech.hdax.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 員工實體類
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emptwo implements Serializable {
    private Long empno;
    private String ename;
    private String job;
    private Long mgr;
    private Date hiredate;
    private Long sal;
    private Long comm;
    private Long deptno;

}

Depttwo 實體類

package org.aptech.hdax.pojo;

import lombok.Data;

import java.io.Serializable;

/**
 * 部門實體類
 */
@Data
public class Depttwo implements Serializable {
    private Long deptno;
    private String dname;
    private String loc;

}

Emptwo.hbm.xml 員工映射文件

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

    <class name="org.aptech.hdax.pojo.Emptwo" table="EMPTWO" schema="SCOTT">
        <id name="empno" column="EMPNO"/>
        <property name="ename" column="ENAME"/>
        <property name="job" column="JOB"/>
        <property name="mgr" column="MGR"/>
        <property name="hiredate" column="HIREDATE"/>
        <property name="sal" column="SAL"/>
        <property name="comm" column="COMM"/>
        <property name="deptno" column="DEPTNO"/>
    </class>
</hibernate-mapping>

Depttwo.hbm.xml 部門映射文件

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

    <class name="org.aptech.hdax.pojo.Depttwo" table="DEPTTWO" schema="SCOTT">
        <id name="deptno" column="DEPTNO">
        	<!-- 這裏使用Oracle sequence序列 主鍵自增  -->
            <generator class="sequence">
                <param name="sequence">seq_dept</param>
            </generator>
        </id>
        <property name="dname" column="DNAME"/>
        <property name="loc" column="LOC"/>
    </class>
</hibernate-mapping>

TestDML 測試類

package org.aptech.hdax.test;

import org.aptech.hdax.pojo.Depttwo;
import org.aptech.hdax.pojo.Emptwo;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

public class TestDML {
    //查詢
    @Test
    public void testqueryby(){
        //1、讀取配置文件
        Configuration config = new Configuration().configure();
        //2、構建session工廠
        SessionFactory sessionFactory = config.buildSessionFactory();
        //3、打開session
        Session session = sessionFactory.openSession();
        //4、操作事物
        Transaction tx = session.beginTransaction();

        //根據編號查詢單個員工信息
        Emptwo emptwo = session.get(Emptwo.class,7839L);
        System.out.println(emptwo.getEmpno()+"\t"+emptwo.getEname()+"\t"+emptwo.getJob()+"\t"+emptwo.getMgr()+"\t"+emptwo.getHiredate());
        System.out.println(emptwo);

        //5、提交事務
        tx.commit();
        //關閉session
        session.close();
    }

    //新增部門
    @Test
    public void testdeptadd(){
        //1、讀取配置文件
        Configuration config = new Configuration().configure();
        //2、構建session工廠
        SessionFactory sessionFactory = config.buildSessionFactory();
        //3、打開session
        Session session = sessionFactory.openSession();
        //4、操作事物
        Transaction tx = session.beginTransaction();

        //根據編號刪除單個員工信息
        Depttwo depttwo = new Depttwo();
//        depttwo.setDeptno(40L);
        //部門主鍵編號使用的是Oracle自增序列
        depttwo.setDname("牛逼事業部");
        depttwo.setLoc("磁縣白土");

        session.save(depttwo);

        //5、提交事務
        tx.commit();
        //關閉session
        session.close();
    }

    //新增員工
    @Test
    public void testadd(){
        //1、讀取配置文件
        Configuration config = new Configuration().configure();
        //2、構建session工廠
        SessionFactory sessionFactory = config.buildSessionFactory();
        //3、打開session
        Session session = sessionFactory.openSession();
        //4、操作事物
        Transaction tx = session.beginTransaction();

        //根據編號刪除單個員工信息
        Emptwo emptwo = new Emptwo();
        emptwo.setEmpno(7900L);
        emptwo.setEname("王天霸");
        emptwo.setJob("保鏢");
        emptwo.setMgr(4567L);
        emptwo.setDeptno(20L);

        session.save(emptwo);

        //5、提交事務
        tx.commit();
        //關閉session
        session.close();
    }
    //刪除
    @Test
    public void testdeleteby(){
        //1、讀取配置文件
        Configuration config = new Configuration().configure();
        //2、構建session工廠
        SessionFactory sessionFactory = config.buildSessionFactory();
        //3、打開session
        Session session = sessionFactory.openSession();
        //4、操作事物
        Transaction tx = session.beginTransaction();

        //根據編號刪除單個員工信息
        Emptwo emptwo = new Emptwo();
        emptwo.setEmpno(7900L);
        session.delete(emptwo);

        //5、提交事務
        tx.commit();
        //關閉session
        session.close();
    }

    //更新員工信息
    @Test
    public void testupdateby(){
        //1、讀取配置文件
        Configuration config = new Configuration().configure();
        //2、構建session工廠
        SessionFactory sessionFactory = config.buildSessionFactory();
        //3、打開session
        Session session = sessionFactory.openSession();
        //4、操作事物
        Transaction tx = session.beginTransaction();

        //根據編號更新員工信息
        Emptwo emptwo = new Emptwo();
        emptwo.setEmpno(7900L);
        emptwo.setEname("小武");
        emptwo.setJob("小偷");
        emptwo.setMgr(4567L);
        emptwo.setDeptno(30L);
        session.update(emptwo);

        //5、提交事務
        tx.commit();
        //關閉session
        session.close();
    }
}

pom.xml 文件:項目依賴jar

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.aptech.hdax</groupId>
    <artifactId>TestHiberDML</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- hibernate核心-->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.10.Final</version>
        </dependency>
        <!--    Oracle JDBC驅動連接    -->
        <dependency>
            <groupId>oracle</groupId>
            <artifactId>oracle6g</artifactId>
            <version>11.12</version>
        </dependency>
        <!--    junit單元測試    -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <!--        簡化getter\setter-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>


</project>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章