當前位置:首頁 » 編程語言 » mybatis通過sql修改數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mybatis通過sql修改數據

發布時間: 2022-11-02 12:53:05

㈠ mybatis sql配置支持修改表結構的語句嗎

MyBatis詳解 與配置MyBatis+Spring+MySql
MyBatis 是一個可以自定義SQL、存儲過程和高級映射的持久層框架。MyBatis 摒除了大部分的JDBC代碼、手工設置參數和結果集重獲。MyBatis 只使用簡單的XML 和註解來配置和映射基本數據類型、Map 介面和POJO 到資料庫記錄。相對Hibernate和Apache OJB等「一站式」ORM解決方案而言,Mybatis 是一種「半自動化」的ORM實現。
需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包)。mybatis-spring-1.0.0.jar(與Spring結合包)。
MyBatis簡介
MyBatis 是一個可以自定義SQL、存儲過程和高級映射的持久層框架。MyBatis 摒除了大部分的JDBC代碼、手工設置參數和結果集重獲。MyBatis 只使用簡單的XML 和註解來配置和映射基本數據類型、Map 介面和POJO 到資料庫記錄。相對Hibernate和Apache OJB等「一站式」ORM解決方案而言,Mybatis 是一種「半自動化」的ORM實現。
需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包)。mybatis-spring-1.0.0.jar(與Spring結合包)。

㈡ mybatis逆向生成代碼修改資料庫怎麼辦

mybatis的一個主要的特點就是需要程序員自己編寫sql,那麼如果表太多的話,難免會很麻煩,所以mybatis官方提供了一個逆向工程,可以針對單表自動生成mybatis執行所需要的代碼(包括mapper.xml、mapper.java、po..)。一般在開發中,常用的逆向工程方式是通過資料庫的表生成代碼。

㈢ MyBatis之SQL語句映射文件增刪改查和Java參數如何對應

對應方式很多,最簡單明了,在寫mapper.class的介面的時候,在參數前加上@Param("name"),如:public void testMapper(@Param("id")int id, @Param("name")String name);在mapper.xml對應方法的標簽中,就可以直接#{id}, #{name}使用了

㈣ mybatis 怎麼獲取數據並修改數據

MyBatis 是支持普通 SQL 查詢,存儲過程和高級映射的優秀持久層框架。 MyBatis 消除了幾乎所有的 JDBC 代碼和參數的手工設置以及對結果集的檢索。MyBatis 可以使用簡單的XML 或註解用於配置和原始映射,將介面和 Java 的 POJO(Plain Old Java Objects,普通的Java對象)映射成資料庫中的記錄。

㈤ 如何通過MyBatis動態SQL實現增刪改查

你可以把defaultExecutorType值改了。 有三個值: SIMPLE 普通返回。 REUSE 重復。 BATCH 批量更新。 MyBatis發現更新和插入返回值一直為"-2147482646"的錯誤是由defaultExecutorType設置引起的,如果設置為batch,更新返回值就會丟失。

㈥ Mybatis 常用sql之批量添加和修改

Dao層

int updateByList(List list);

Mappe層

批量修改

<update id="updateByList" parameterType="java.util.List">

<foreach collection="list" item="item" index="index" separator=";">

update jt_fin_repayment_plan

<set >

erestTotal != null" >

ORG_INTEREST_TOTAL = #{item.orgInterestTotal},

</if>

<if test="item.delFlag != null" >

DEL_FLAG = #{item.delFlag},

</if>

<if test="item.state != null" >

STATE = #{item.state},

</if>

<if test="item.createBy != null" >

CREATE_BY = #{item.createBy},

</if>

<if test="item.createTime != null" >

CREATE_TIME = #{item.createTime},

</if>

<if test="item.updateBy != null" >

UPDATE_BY = #{item.updateBy},

</if>

UPDATE_TIME = #{NOW(),

</set>

where REPAYMENT_ID = #{item.repaymentId}

</foreach>

</update>

----------------------------------------------------------------------------------------------------------



//批量添加

int addList(List list);

Map層

批量添加

<insert id="addList" parameterType="java.util.List">

insert into jt_fin_adjust_rates_project_history (

ID,ADJUST_RATES_ID,PROJECT_ID,START_WHOLE,

END_WHOLE,START_WITHOUT,END_WITHOUT,PROJECT_DATE,

KEEP,AUDIT_FLAG,STATUS,REMARK,DEL_FLAG,

CREATE_BY,CREATE_TIME,UPDATE_TIME,UPDATE_BY

)

values

<foreach collection="list" separator="," item="item" index="index">

((select UUID()), #{item.adjustRatesId},#{item.projectId},#{item.startWhole},

#{item.endWhole},#{item.startWithout},#{item.endWithout},#{item.projectDate},

#{item.keep},#{item.auditFlag},#{item.status},#{item.remark},#{item.delFlag},

#{item.createBy},sysdate(), #{item.updateTime}, #{item.updateBy})

</foreach>

</insert>

注意:我的id VARCHAR類型 主鍵 不能遞增 在這里我用的是UUID生成的

原本,想寫一個批量添加,回顯id但是沒實現就不寫了,有大佬可以補充一下

㈦ 使用mybatis 執行sql刪除數據的存儲過程xml里應該怎麼寫

Java mysql mybatis批量更新資料庫,採用以下寫法即可執行,但是資料庫連接必須配置:&allowMultiQueries=true

例如:jdbc:mysql://192.168.1.236:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
<update id="batchUpdate" parameterType="java.util.List">

<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update test
<set>
test=${item.test}+1
</set>
where id = ${item.id}
</foreach>

</update>

MyBatis是支持普通SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或註解用於配置和原始映射,將介面和Java的POJOs(Plan Old Java Objects,普通的Java對象)映射成資料庫中的記錄.

㈧ mybatis 怎麼寫sql語句

mybatis的sql和你在資料庫客戶端執行的sql是一樣的,但是在mybatis中調用的sql一般都是動態的,所以用到了參數傳遞。這個mybatis有對應的標簽以及相應的變數來實現。你可以搜索下mybatis標簽。同時給你一個參考的你看看,這個是一個查詢用戶的
<select
id="queryUsers"
parameterType="map"
resultType="xx.xx.xx.bean.UserBean">
<![CDATA[
select
ID,
LOGIN_NAME
AS
loginName,
PASSWORD,
REAL_NAME
AS
realName,
POSITION,
(SELECT
D.POSITION_NAME
FROM
UNIT_POSITION
D
WHERE
D.POSITION_CODE=T.POSITION)
POSITIONNAME,
USER_TYPE
AS
userType,
SEX,
PID,
TO_CHAR(T.BIRTHDAY,'YYYY-MM-DD')
BIRTHDAY,
EMAIL,
CONTACT_TEL
AS
contactTel,
CONTACT_MOBILE
AS
contactMobile,
CONTACT_FAX
AS
contactFax,
CONTACT_ZIP
AS
contactZip,
CONTACT_ADDR
AS
contactAddr,
STATUS,
EDUCATION,
(SELECT
D.EDUCATION_NAME
FROM
UNIT_EDUCATION
D
WHERE
D.EDUCATION_CODE=T.EDUCATION
AND
D.STATUS=0)
EDUCATIONNAME,
NATION,
POLITICAL,
REMARK,
TO_CHAR(T.CREATE_DATE,'YYYY-MM-DD
HH24:MI:SS')
createDate,
(SELECT
D.REAL_NAME
FROM
UNIT_USER
D
WHERE
D.ID=
T.CREATE_USER_ID)
createUserId,
TO_CHAR(T.UPDATE_DATE,'YYYY-MM-DD
HH24:MI:SS')
updateDate,
(SELECT
D.REAL_NAME
FROM
UNIT_USER
D
WHERE
D.ID=
T.UPDATE_USER_ID)
updateUserId
from
UNIT_USER
T
]]>
<where>
T.STATUS='1'
<if
test="realName
!=null
and
realName
!=''">
and
T.REAL_NAME
like
'%${realName}%'
</if>
<if
test="nexusDpartment
!=null">
AND
T.ID
IN
(SELECT
DISTINCT
D.USER_ID
FROM
UNIT_USER_DEPT
D
WHERE
D.DEPT_CODE
IN
(${nexusDpartment}))
</if>
<if
test="deptCode
!=null
and
deptCode
!=''">
AND
T.ID
IN
(SELECT
DISTINCT
D.USER_ID
FROM
UNIT_USER_DEPT
D
WHERE
D.DEPT_CODE
=
#{deptCode})
</if>
</where>
<if
test="sort
!=
null
and
sort
!=
''">
order
by
${sort}
<if
test="direction
!=
null
and
direction
!=
''">
${direction}
</if>
</if>
</select>

㈨ mybatis sql如何修改表結構

可以的。
<update id="exchangePartition" parameterType="java.util.Map">
alter table ${tableName} add zzz varchar2(50);
exchange partition ${destinationPartitionName}
with table ${sourceTableName}
including indexes
with validation
</update>

㈩ MyBatis高級篇 - 動態SQL

MyBatis提供了一套動態SQL標簽,協助我們完成 SQL 語句的拼接工作。我們在日常工作中經常需要對 SQL 進行拼接:入參循環遍歷, where 條件拼接時的分隔符處理等等。
本文介紹以下幾個較常用的動態SQL標簽:

我們經常會遇到 where 條件中需要根據是否傳入參數來確定是否添加條件。

為了解決上面所遇到的問題,MyBatis 為我們提供了 <where> 標簽。

<foreach> 用於遍歷輸入參數中集合對象。

我們的 Mapper 文件,在 select 或者是 where 經常會出現重復內容,我們可以把重復的內容抽取為一個 <sql> 片段,需要使用的地方,使用 <include> 標簽就可以引入進來。