㈠ 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> 標簽就可以引入進來。