利用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 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
【坑】關於使用 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