1. 程式人生 > >Java程式碼TkMyBatis通用Mapper中新增資料時同時獲取自增主鍵ID,與適用uuid 做主鍵時獲取 id

Java程式碼TkMyBatis通用Mapper中新增資料時同時獲取自增主鍵ID,與適用uuid 做主鍵時獲取 id


一 . MyBatis mapper.xml檔案中在xml

   1.   加入 這句 :useGeneratedKeys="true" keyProperty="ID"

       keyProperty="資料庫中的主鍵欄位名對應的實體類欄位名" ;【填實體類欄位名】

<insert id="insertSelective" parameterType="com.tc.lvmsm.vo.vm.Vehicle"
            useGeneratedKeys="true" keyProperty="ID">

2. 加  SELECT LAST_INSERT_ID()

<!-- 配置一個新增使用者的sql語句,並且在查詢之後得到使用者的ID -->
	<insert id="saveUser" parameterType="com.igeek.crm.pojo.User">
		<!-- selectKey 標籤實現主鍵返回 -->
		<!-- keyColumn:主鍵對應的表中的哪一列 -->
		<!-- keyProperty:主鍵對應的pojo中的哪一個屬性 -->
		<!-- order:設定在執行insert語句前執行查詢id的sql,孩紙在執行insert語句之後執行查詢id的sql -->
		<!-- resultType:設定返回的id的型別 -->
		<selectKey keyColumn="id" keyProperty="id" order="AFTER"
			resultType="int">
			SELECT LAST_INSERT_ID()
		</selectKey>
		INSERT INTO `user`
		(username,birthday,sex,address) VALUES
		(#{username},#{birthday},#{sex},#{address})
	</insert>

3.不適用自增ID ,使用UUID做主鍵  加 SELECT uuid()

	<!-- 儲存使用者 使用UUID做主鍵 -->
	<insert id="saveUser1" parameterType="com.igeek.crm.pojo.User">
		<!-- selectKey 標籤實現主鍵返回 -->
		<!-- keyColumn:主鍵對應的表中的哪一列 -->
		<!-- keyProperty:主鍵對應的pojo中的哪一個屬性 -->
		<!-- order:設定在執行insert語句前執行查詢id的sql,在執行insert語句之後執行查詢id的sql -->
		<!-- resultType:設定返回的id的型別 -->
		<selectKey keyColumn="uuid" keyProperty="uuid" order="BEFORE"
			resultType="string">
			SELECT uuid()
		</selectKey>
		INSERT INTO `user1`
		(username,birthday,sex,address,uuid) VALUES
		(#{username},#{birthday},#{sex},#{address},#{uuid})
	</insert>

二.TkMyBatis通用Mapper中 在實體類的主鍵屬性上加 註解:

     1.自增主鍵用法:      

     @Id

      @GeneratedValue(strategy=GenerationType.IDENTITY)

      private Integer id;   

     2.序列主鍵用法(適用Oracle):

   @Id

      @GeneratedValue(

        strategy = GenerationType.IDENTITY,

        Generator = "select SEQ_ID.nextval from dual"  )

       private Integer id;

相關推薦

Java程式碼TkMyBatis通用Mapper新增資料同時獲取ID適用uuid 做主獲取 id

一 . MyBatis mapper.xml檔案中在xml    1.   加入 這句 :useGeneratedKeys="true" keyProperty="ID"        keyProperty="資料庫中的主鍵欄位名對應的實體類欄位名" ;【填實體類欄位

JDBC插入表一個數據返回其

Connection connection = JDBCUtils.getConnection(); //獲取一個連結 String sql ="insert into book values (null ,?)"; //資料庫book表中只有一個id自增跟書名欄位 PreparedSta

SSM】之MyBatis插入資料獲取

        很多時候,我們都需要在插入一條資料後回過頭來獲取到這條資料在資料表中的自增主鍵,便於後續操作。針對這個問題,有兩種解決方案: (1)先插入,後查詢。我們可以先插入一條資料,然後根據插入的資料的各個欄位值,再次訪問資料庫,從資料庫中將剛剛插入的資料查詢出來。當

【Mybatis】資料插入資料庫獲取

在mybatis的XML檔案時,配置useGeneratedKeys和KeyProperty屬性,且這兩個屬性不能省略。 useGeneratedKeys屬性,要求資料庫本身具備主鍵自動增長的功能。

在jsp頁面嵌入java程式碼並用request方式接受post資料

<%@ page language="java" contentType="text/html; charset=GBK"    pageEncoding="GBK"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN

java實現實時監控表資料如果有新新增資料就通知外部伺服器查詢這條新增資料

使用java的定時器吧 首先建立一個Servlet監聽器,(伺服器一啟動監聽器就執行的) 在監聽器中建立一個定時器(這才是最重要的) 建立一條簡訊傳送執行緒(主要用來發送簡訊) 定時器每5秒查一次資料庫(這個時間可以自己定義,當然也可以直接用執行緒+死迴圈

mysql新增資料,報錯(incorrect string value:'\xf0\x9f ) 字元轉換不正確

原因是UTF-8編碼有可能是兩個、三個、四個位元組。Emoji表情或者某些特殊字元是4個位元組,而Mysql的utf8編碼最多3個位元組,所以資料插不進去。 在網上搜了一下解決問題的方案,我選了一個方案解決了。 1.在mysql的安裝目錄下找到my.ini,作如下修改: [mys

Mybatis的mapper.xml檔案插入資料返回

使用MyBatis往MySQL資料庫中插入一條記錄後,返回該條記錄的自增主鍵值。Mapper檔案應該怎麼寫呢? Mybatis的Mapper的標籤中有一個屬性,我們一起來看看: useGenerateKeys這個屬性,意思就是使用自增。我們需要將這個欄位設定為 true 。 同時,還需

『PHP學習筆記』系列八:向MySQL資料庫新增資料

資料表結構: 資料表原有資料: 向MySQL資料庫寫入資料:  INSERT INTO 語句通常用於向 MySQL 表新增新的記錄: INSERT INTO table_name (column1, column2, column3,...) VALUES

Java向word文件填充資料

前言: 對於中大型OA系統來說,線上開啟word文件已經是一個常用需求。既然有線上操作word文件的需求,那就不可避免要有開啟文件時動態填充資料的需求。這篇文章就讓小編來介紹一箇中間件技術-pageoffice。 pageoffice對於word的功能做到了80%以上的封裝,而且api比較簡單容

向陣列新增資料但length列印為0?

最近寫專案時, 遇到了一個問題, 我明明 向陣列中push了資料, 但是列印的時候為[]陣列,但是空數組裡面有一條資料,length為1, 但是打印出來length發現長度為0 看程式碼 先來看這種情況 很正常對吧, 往陣列中push一組資料, 長度為1 往下看

Mybitse-新增資料新增資料ID

 <!-- 新增活動資訊 返回ID 用於獎項的新增--> <insert id="addInteractActivity" parameterType="com.wmall.framework.db.model.InteractActivity

python 向 mysql 新增 資料

python 向 mysql 中新增資料 import pymysql import json #第一步:連線到mysql資料庫(ishop1資料庫) conn = pymysql.connect(h

java的api從hbase資料

package hbase.com.cn.hbase; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.Lis

JAVA程式碼 通過Socket讀取返回的資料

                 package net.java2000.net;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.InetAdd

JAVA小練習-刪除arraylist資料

首先初始化一個Hero集合,裡面放100個Hero物件,名稱分別是從 hero 0 hero 1 hero 2 … hero 99 通過遍歷的手段,刪除掉名字編號是8的倍數的物件 package collection; import java.util.Ar

Java實現在文字檔案寫入資料和讀取資料

Java實現在文字檔案中寫入資料和讀取資料 寫資料到文字檔案中去: 程式碼如下所示: import java.io.File; import java.io.FileWriter; import java.io.IOException; public class

SQL Server基礎(一) VS2015 建立資料表:建表、修改表名字、往表新增資料、查詢表最後是資料庫檔案的屬性

VS2015 建立資料表流程 1、右擊表,建立資料表——設定主鍵 2、修改資料的名字為Inventory 3、新增資料 4、右擊資料庫庫——新建查詢,輸入SQL語法,就可以查詢表的資料了 往表中新增一行,重新查詢。你會發現,表名字不區分大小。

springboot通過java bean整合通用mapper的兩種方式

前言:公司開發的框架基於springboot深度封裝,只能使用java bean的方式進行專案配置。第一種:1.引入POM座標,需要同時引入通用mapper和jpa<dependency> <groupId>tk.mybatis</gro

Java--在Netbeans的專案新增JDBC驅動程式

想要使用Java連線MySQL資料庫,必須在環境中加入配置JDBC驅動程式 Netbeans中新增JDBC的過程是: 1.首先需要下載JDBC 在百度中搜索“mysqljdbc驅動下載”,找到官網 2.接著開啟Netbeans找到需要新增JDBC驅動程式的專