1. 程式人生 > >利用maven建立hibernate專案,實現類生成表的2種方式+集合對映

利用maven建立hibernate專案,實現類生成表的2種方式+集合對映

1,利用配置檔案類生成表

1)先建一個類,get和set方法

@Data
public class Salary {
    private Integer workcode;
    private String uname;
    private String dept;
    private BigInteger baseSalary;
    private Long extract;
    private Long leav;
    private Long sick;
    private Long pk;


    @Override
public String toString() {
        return 
"Salary{" + "workcode='" + workcode + '\'' + ", uname='" + uname + '\'' + ", dept='" + dept + '\'' + ", baseSalary=" + baseSalary + ", extract=" + extract + ", leav=" + leav + ", sick=" + sick
+ ", pk=" + pk + '}'; }

3)配置檔案

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/Hibernate Configuration DTD//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory
> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.url">jdbc:mysql://localhost:3306/salary</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.username">root</property> <property name="connection.password">12345678</property> <property name="hbm2ddl.auto">update</property>
    <mapping resource="com/oracle/bean/Salary.hbm.xml"/>
    <!-- DB schema will be updated if needed -->




  </session-factory>
</hibernate-configuration>
<property name="hbm2ddl.auto">update</property>沒有表就建立表,沒有欄位就建立欄位,只能新增不能修改和刪除

create是建立一個表,

validate只能校驗

2)配置Salary.hbm.xml

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

    <class name="com.oracle.bean.Salary" table="salary" schema="salary">
        <id name="workcode" column="workcode">
         <generator class="uuid"></generator>主鍵生成策略如uuid是String型別

        </id>
        <property name="uname" column="uname"></property>
        <property name="dept" column="dept"></property>
        <property name="baseSalary" column="base_salary"></property>
        <property name="extract" column="extract"></property>
        <property name="leav" column="leav"></property>
        <property name="sick" column="sick"></property>
        <property name="pk" column="pk"></property>
    </class>
</hibernate-mapping>

二,用程式碼生成表

 public static void main(String[] args) {
      createby3610();
    }

//5.1.0版本
public void  createby510()
    {
        Configuration config = new Configuration().configure();
        StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
                .configure().build();
        Metadata metadata = new MetadataSources(serviceRegistry)
                .buildMetadata();
        SchemaExport schemaExport = new SchemaExport();
        schemaExport.create(EnumSet.of(TargetType.DATABASE), metadata);
    }

    //3.6.0版本
public static void createby3610()
    {
//        Configuration cfg=new Configuration();
//        cfg.configure();
//        SchemaExport export=new SchemaExport(cfg);
//        //script 表示是否打印出指令碼
//        //export 表是否執行生成資料表
//        export.create(true,true);
}

}

三,集合對映

一個人有多個別名

@Data
public class User {
    private  String usid;
    private String usname;
     private List<String> otherNames;



}
User.hbm.xml把檔案對映到Hibernate.cfg.xml中
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.oracle.bean">

    <class name="User" table="user" >
        <id name="usid" >
            <generator class="uuid"></generator>

        </id>
        <property name="usname" ></property>
        <list name="otherNames" table="othername" >
            <key column="nameid"></key><!--主表和子表之間關聯的欄位-->
<list-index column="nameindex"></list-index><!--排序的欄位-->
<element column="othername" type="java.lang.String"></element><!--真正存放資料的欄位-->
</list>
    </class>
</hibernate-mapping>
package com.oracle.core;

import com.oracle.bean.User;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class CreateListData {
    private Session session;
    private SessionFactory sessionFactory;

@Before
public void begin(){
    Configuration cfg=new Configuration();
    cfg.configure();
    SessionFactory sessionFactory = cfg.buildSessionFactory();
    session=  sessionFactory.openSession();
    session.beginTransaction();

}

@Test
public void main() {
    //新增別名
List<String> namesList=new ArrayList<String>();
        namesList.add("333");
        namesList.add("444");
        namesList.add("555");
        User user=new User();
        user.setOtherNames(namesList);
        user.setUsname("aaa");
       session.save(user);
    }


    @Test
public void edit(){
    //在原有的基礎上再新增幾個別名用update,先查詢再新增
User user=session.get(User.class,"8a8aac94635ea6c801635ea6d3160000");
   List<String> nameList=new ArrayList<>();
   nameList.add("123");
        nameList.add("12345");
        nameList.add("123456");
        user.setOtherNames(nameList);
        session.update(user);

    }

    @After
public void end(){
    session.getTransaction().commit();
    session.close();
    sessionFactory.close();


    }


}

相關推薦

利用maven建立hibernate專案實現生成2方式+集合對映

1,利用配置檔案類生成表1)先建一個類,get和set方法@Data public class Salary { private Integer workcode; private St

IntelliJ IDEA下 Maven 建立 Scala 專案執行hello world

建立Maven Scala專案 https://blog.csdn.net/qq_1290259791/article/details/79052584 IntelliJ IDEA 中 右鍵新建(new)時,選項沒有scala(java) class的解決方法和具體解釋 https://

Eclipse下用maven構建Struts專案實現簡單的登入及驗證。

點選File->new->Maven Project. 右鍵所建立的專案->點選Properties->點選Java Build Path將JDK改成所需要的版本 然後點選Project Facets先改Java,再改Dynamic Web Mod

hibernate學習之在intellij idea下使用maven建立hibernate專案(詳細圖文教程)

在上次學習hibernate基礎瞭解之後,這裡再次進行intellij idea IDE使用maven進行hibernate的安裝,並跑通一個HelloWord。 環境 windows 7 64位 intellij idea maven hibernat

IDEA建立web專案無法自動生成web.xml

我們在用IDEA 2017.3.2新建Java web專案時,會發現如下圖所示的情況,發現無法建立web.xml而網上教程在新建Web Application時,是可以建立並選擇web.xml的解決方案:在新建Web Application時,選擇一下Java EE的版本,這

iOS 不支援多繼承實現多繼承的4方式

classA 實現了methodA  方法  classB 實現了 methodB 方法   classC 要同時實現methodA和methodB方法 在C++ 中用多繼承就能實現,但是Objective c 不支援多重繼承,那如何實現。 方法1. 組合方式,用Class

Android自定義View初體驗實現圓形TextView的三方式

自定義view對我來說一直是比較恐懼的,但是萬事開頭難,今天總結一下自己實現圓形TextView的三種方式。 首先來說一下自定義view的三種方式: 一,自繪控制元件: 自繪控制元件就是說介面展示的內容就是我們在ondraw()方法中繪製出來的,繼承Vie

java實現登出登入的2方式區別

1、servletHttpServletRequest request HttpSession session=request.getSession(); session.removeAttribu

利用Maven建立Javaweb工程時webapp資料夾在專案根目錄下沒有顯示怎麼辦?

作為一個初學者,相信很多人會遇到跟我相同的問題,解決辦法其實很簡單。在建立好所需的Maven專案之後,右鍵單擊專案名,在根目錄下新建一個名為src/main/webdapp的資原始檔夾(Source Folder)即可。

使用maven建立ssm專案出現dataSurce的bean建立不了的問題

啟動專案時,專案啟動不了,直接報錯,並說是資料來源的問題,但是沒有實際的錯誤提示,說datasource建立失敗,後面還加上一些找不到類的錯誤 18-Oct-2018 17:03:20.952 嚴重 [RMI TCP Connection(3)-127.0.0.1] org.spring

Intellij IDEA使用註解建立Hibernate專案中的OR對映

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

使用Idea建立ssm專案SpringMVC+Spring+MyBatis+Maven整合

                        1.建立基本專案

【坑】關於使用 maven 建立 web 專案以後el 表示式不被識別的解決方法

問題描述: 在學習 Ajax 的時候,使用資源路徑,博主本著不要硬編碼,局使用 el 表示式進行讀取專案名,然後發現 el 表示式沒有被識別,而是當做字串 ${pageContext.request.contextPath} 直接輸出了,很是鬱悶啊; 突然想起來沒加 jar

利用Maven建立一個javaweb專案

通過Eclipse我們可以直接建立一個webproject,但此時建立的webproject往往需要我們後面加入各種jar包。可以需要加入幾十個,甚至幾百個jar包,過多的jar包就會引起jar的版本衝突問題。而通過Maven來管理我們的webproject就可以很好的起到管

整理不易且整且珍惜 2.開發環境的搭建 3.Eclipse的相關配置 4.使用maven建立web專案 5.Spring+Mybatis+SpringMVC整合 6.mybatis自動生成程式碼 7.spring與mybatis整合中Junit的測試 8.maven專案的啟動 9.Restful

整理不易,且整且珍惜 2.開發環境的搭建 3.Eclipse的相關配置 4.使用maven建立web專案 5.Spring+Mybatis+SpringMVC整合 6.mybatis自動生成程式碼

java專案利用maven打war包其pom配置

<properties> <jdk.version>1.8</jdk.version> <spring.version>4.1.6.RELEASE</spring.version> <

Maven 建立web專案出現src/main/java, src/test/java已存在但是Missing

專案右鍵->buildPath configure Build Path->點選選項卡Libraries->選中JRE System Library-> 點選edit->選中Alternate JRE->選擇jdk 點選finish,點選ok,自動出現sr

MyEclipse建立Maven多模組專案webapp專案

本文中建立maven專案,不使用命令,完全用myeclipse實現,個人感覺這樣新手更容易接受! 開發環境:myeclipse 8.6+maven(myeclipse自帶外掛)可參考:http://blog.csdn.net/qq964166471/article/deta

Maven整合SpringMVC+Spring+Hibernate 框架實現簡單的插入資料庫資料功能

一、搭建開始前的準備 1、我用的MyEclipse2014版,大家也可以用IDEA。 2、下載Tomcat(免安裝解壓包)、MySQL(zip包下載地址 免安裝解壓包,好處就是雙擊啟動,最後我會把bat的啟動發給大家)、用的Navicat for MySQL的MySQL的圖

MyEclipse 中build path選中不了maven專案無法編譯maven建立專案無法釋出到tomcat

1:開啟專案中的.projects檔案,在natures 標籤中檢視是否有以下些nature標籤 <nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature><n