当前位置:首页 » 编程语言 » 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> 标签就可以引入进来。