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>
----------------------------------------------------------------------------------------------------------
dao层
//批量添加
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但是没实现就不写了,有大佬可以补充一下
use test --修改为你的数据库名称declare tb_name cursor for select NAME,ID from sysobjects WHERE TYPE='U' --得到用户表的ID
declare @in_char varchar(20)
set @in_char='%<script>%'
---查找注入字符串
declare @tj varchar(5000)
set @tj=' where '
declare @i int
set @i=0
declare @sql varchar(200)
DECLARE @table_name varchar(50)
DECLARE @table_id varchar(50)
DECLARE @feild_name varchar(50)
DECLARE @fd_count int
open tb_name
FETCH next FROM tb_name into @table_name,@table_id
while
@@FETCH_STATUS=0
begin
set @i=0
declare fd_name cursor for SELECT NAME FROM syscolumns
where id=@table_id and type=39 group by name--得到用户表某一ID的所有字符类型字段名称
open fd_name
FETCH next FROM fd_name into @feild_name
print @fd_count
while
@@FETCH_STATUS=0
begin
set @i=@i+1
set @tj=@tj+@feild_name +' like '''+ @in_char +'''' +(case when (SELECT count(type) as fd_count FROM syscolumns
where id=@table_id and type=39)
>@i then ' or ' else ' 'end)
FETCH next FROM fd_name into @feild_name
end
-- print @tj
if @tj!=''
begin
SET @SQL='DELETE FROM '+@TABLE_NAME+@TJ
print '切记先运行代码看print 出来的SQL确认后再删除数据,即将运行的代码是 '
print '===================================================================='
print @SQL
print '===================================================================='
--切记先运行代码看print 出来的SQL确认后再删除数据
exec(@sql) --修改注释后删除数据
end
set @tj=''
CLOSE fd_name
deallocate fd_name
FETCH next FROM tb_name into @table_name,@table_id
end
close tb_name
deallocate tb_name
方法一:使用sql语句修改mysql数据库表前缀名首先我们想到的就是用sql查询语句来修改,这个方法也很方便,只需进入无忧主机控制面板——phpmyadmin登入后,在运行 SQL 查询框中输入如下语名就可以了。
ALTER TABLE 原表名 RENAME TO 新表名
如:
ALTER TABLE old_post RENAME TO new_post
Sql查询语句有一个缺点,那就是一句SQL语句只能修改一张数据库的表名,如果你要精确修改某一张表,很好用。如果数据库表很多的话,不推荐使用。有木有,批量修改多个数据库表前缀名称的方法类?有的,请看下面的介绍
方法二:php脚本批量修改mysql数据库表前缀
下面无忧主机(www.51php.com)小编收集的一个快速批量的修改数据表前缀的方法,小编已经测试,成功修改。如果你需要,请参考借鉴如下:
1、将下面的代码复制到记事本,根据自己人情况修改好数据库信息,并保存了51php.php。再上传您网站的根目录。您可以直接下载mysql数据库前缀名批量修改脚步:修改mysql数据库表前缀名。
<?php
//设置好相关信息
$dbserver='localhost'//连接的服务器一般为localhost
$dbname='y8n9nghmze_shop'//数据库名
$dbuser='y8n9nghmze_user'//数据库用户名
$dbpassword='admin'//数据库密码
$old_prefix='ecs_'//数据库的前缀
$new_prefix='51php_'//数据库的前缀修改为
if (
!is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) )
{
return false
}
if (!mysql_connect($dbserver,
$dbuser, $dbpassword)) {
print 'Could not connect to mysql'
exit
}
//取得数据库内所有的表名
$result =
mysql_list_tables($dbname)
if (!$result) {
print "DB Error, could not
list tables\n"
print 'MySQL Error: ' .
mysql_error()
exit
}
//把表名存进$data
while ($row =
mysql_fetch_row($result)) {
$data[] = $row[0]
}
//过滤要修改前缀的表名
foreach($data as $k =>$v)
{
$preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i",
$v, $v1)
if($preg)
{
$tab_name[$k] =
$v1[2]
//$tab_name[$k]
= str_replace($old_prefix, '', $v)
}
}
if($preg)
{
//echo '<pre>'
//print_r($tab_name)
//exit()
//批量重命名
foreach($tab_name as $k =>
$v)
{
$sql = 'RENAME TABLE
`'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`'
mysql_query($sql)
}
print 数据表前缀:.$old_prefix."<br>".已经修改为:.$new_prefix."<br>"
}
else
{ print 您的数据库表的前缀.$old_prefix.输入错误。请检查相关的数据库表的前缀
if ( mysql_free_result($result) ) {
return true
}
}
?>
2、 在浏览器输入访问您的网址/51php.php.数据库表的前缀就可以修改成功了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)