通过java程序实现mysql 批量一个表的子段更新另一个表的字段
本想通过sql语句实现发现不行,参考语句如下:
update mo_indexes a,mo_paf_indexmid_indexname b set a.index_name='2' where a.index_id=b.index_id and b.index_id in(106749314,106749317);
update mo_indexes set mo_indexes.index_name = (select mo_paf_indexmid_indexname.index_name from mo_paf_indexmid_indexname where mo_paf_indexmid_indexname.index_id = mo_indexes.index_id and mo_indexes.index_id in(106749314,106749317));
update mo_indexes a,mo_paf_indexmid_indexname b set a.index_name=b.index_name where a.index_id=b.index_id and b.index_id in (106749314,106749317);
update mo_indexes set mo_indexes.index_name = (select mo_paf_indexmid_indexname.index_name from mo_paf_indexmid_indexname where mo_paf_indexmid_indexname.index_id = mo_indexes.index_id and mo_indexes.index_id in(106749314,106749317));
package Test;
public class TestUpdateOneTableToAnother {
static String mysqlUrl="jdbc:mysql://30.16.9.32:3306/mario?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull";
static String mysqlUser="mario";
static String mysqlPassword="Paic!@#123";
static String mysqlDriverName="com.mysql.jdbc.Driver";
//static String mysqlUrl="jdbc:mysql://10.20.20.176:3306/mario?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull";
//static String mysqlUser="mario";
//static String mysqlPassword="mario";
//static String mysqlDriverName="com.mysql.jdbc.Driver";
public static void main(String[] args){
List<Map<String, Object>> mo_paf_indexmid_indexnameList = null;
String selectSql="select index_id,index_name from mo_paf_indexmid_indexname";
//String selectSql="select index_id,index_name from mo_indexes limit 2";
mo_paf_indexmid_indexnameList = QueryDBHelperList(mysqlUrl,mysqlDriverName,mysqlUser,mysqlPassword,selectSql);
for(int i=0;i<mo_paf_indexmid_indexnameList.size();i++){
String index_name = mo_paf_indexmid_indexnameList.get(i).get("index_name").toString();
int index_id = Integer.parseInt(mo_paf_indexmid_indexnameList.get(i).get("index_id").toString());
//String TempSql="update mo_indexes set index_name = '%s' where hash_key like 'PAF_%' and index_id = %d";
String TempSql="update mo_indexes set index_name = '"+index_name+"' where hash_key like 'PAF_%' and index_id = "+String.valueOf(index_id);
System.out.println("index_name:"+index_name);
System.out.println("index_id:"+index_id);
//String updateSql=String.format(TempSql,index_name,index_id);
String updateSql=TempSql;
System.out.println("updateSql:"+updateSql);
int count = UpdateDBHelperCount(mysqlUrl,mysqlDriverName,mysqlUser,mysqlPassword,updateSql);
System.out.println("已经更新了--------:"+count);
System.out.println("------------------------");
}
}
/**
* 操作mysql 返回 IndexJsonBean的list
*/
public static List<Map<String, Object>> QueryDBHelperList(String url,String driverName,String user,String password,String mysql) {
Connection conn = null;
PreparedStatement pst = null;
ResultSet ret = null;
// 构造泛型结果集
List<Map<String, Object>> datas = new ArrayList<Map<String, Object>>();
try {
Class.forName(driverName);//指定连接类型
conn = DriverManager.getConnection(url, user, password);//获取连接
pst = conn.prepareStatement(mysql);//准备执行语句
ret = pst.executeQuery();//执行语句,得到结果集
ResultSetMetaData rsmd = pst.getMetaData();
// 取得结果集列数
int columnCount = rsmd.getColumnCount();
Map<String, Object> data = null;
// 循环结果集
while (ret.next()) {
data = new HashMap<String, Object>();
// 每循环一条将列名和列值存入Map
for (int i = 1; i <= columnCount; i++) {
data.put(rsmd.getColumnLabel(i), ret.getObject(rsmd.getColumnLabel(i)));
}
// 将整条数据的Map存入到List中
datas.add(data);
}
} catch (Exception e) {
System.out.println("QueryDBHelperList error:");
//e.printStackTrace();
} finally{
try {
conn.close();
pst.close();
} catch (SQLException e) {
System.out.println("QueryDBHelperList error:");
//e.printStackTrace();
}
}
return datas;
}
/**
* 操作mysql 返回 IndexJsonBean的list
*/
public static int UpdateDBHelperCount(String url,String driverName,String user,String password,String mysql) {
Connection conn = null;
PreparedStatement pst = null;
int ret = 0;
try {
Class.forName(driverName);//指定连接类型
conn = DriverManager.getConnection(url, user, password);//获取连接
pst = conn.prepareStatement(mysql);//准备执行语句
ret = pst.executeUpdate(mysql);//执行语句,得到结果集
} catch (Exception e) {
System.out.println("UpdateDBHelperCount error:");
//e.printStackTrace();
} finally{
try {
conn.close();
pst.close();
} catch (SQLException e) {
System.out.println("UpdateDBHelperCount error:");
//e.printStackTrace();
}
}
return ret;
}
}
通过java程序实现mysql 批量一个表的子段更新另一个表的字段相关推荐
- oracle 中某张表备份,张表系统流程(java程序备份及恢复SQL2000中数据库中的某张表)...
java程序备份及恢复SQL2000中数据库中的某张表 你可以现在数据库里面建立一张视图,视图里面的SQL语句就是查询该数据库中的表明,这就是访问系统表的内容,只提供单独一个列,然后展示给客户,当客户 ...
- Java 程序读取Mysql数据库时间信息与真实时间相差 13、14 小时、SQLException: HOUR_OF_DAY: 2 -> 3
CST时区引起的异常: Java 程序读取Mysql数据库时间信息,与真实时间相差 13.14 小时 java.sql.SQLException: HOUR_OF_DAY: 2 -> 3 原因: ...
- Java程序向MySql数据库中插入的中文数据变成了问号
找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...
- Java程序访问Mysql Cluster
2019独角兽企业重金招聘Python工程师标准>>> 在192.168.56.10或者192.168.56.20任意一台机器上,访问数据库,命令为: 1 /bin/mysql 比如 ...
- java程序向mysql插入中文变问号
2019独角兽企业重金招聘Python工程师标准>>> 我碰到的问题是使用客户端工具插入中文是没问题的,但是用java程序就变成问号了. 遇到这种问题肯定是字符集造成的,先检查数据库 ...
- 第一个java程序释义_Java 学习之路(1)第一个Java程序
Hello World程序 在编程语言的世界里,第一个编程语言估计就是输出Hello World了吧. /** * 编写第一个Java程序,输出Hello World! * @author LJS * ...
- java程序员必学_Java入门基础学习,成为一个Java程序员的必备知识
引言 众所周知,Java是一种面向对象的编程语言.您可以在Windows操作系统上编写Java源代码,而在Linux操作系统上运行编译后的字节码,而无需修改源代码. 数据类型 Java 有 2 种数据 ...
- mysql多表查询插入更新_Mysql多表查询,多表插入和多表更新
/*************************************by garcon1986************************************************* ...
- mysql批量查询并替换或者更新某个字段
实例描述:批量替换数据 使用范围:mysql数据库 批量按照条件覆盖单字段的值 update 表名 set 字段="这里写内容" where 字段=值; 批量按照字段,替换字段内的 ...
最新文章
- 在一个3*4数组中查找最大最小值
- 【计算机网络】网络基础
- 有关DataVisualization类组件的研究——Silverlight学习笔记[43]
- [outlook]打开以后就自动进入安全模式的解决方法。Outlook start in safe mode.
- 用WinZip Pro创建Zip文件
- 【转】斐波那契数列算法分析
- 零基础,新手小白看过来!易用可视化工具推荐
- 易接SDK ios9以上无法弹出充值界面的一种情况
- 用二维码分享WiFi密码(转)
- linux怎么看本机ip,linux下查看本机IP的两种方法
- 公网Wiki站点搭建全流程攻略·小白向(含Parsoid和VisualEditor)
- GRUB4DOS(九)常用设备类型及map命令用法示例
- js image对象
- MySQL 数据库语句基础
- vue3中导出excel表格
- 技术风向标 | 云原生技术架构成熟度模型解读
- vue项目访问的时候,用localhost能访问,但是用本机ip就不能访问 的解决办法,亲测有效
- Lua--棋牌游戏开发(概念性设计一)
- 基金认购与申购的区别
- 是什么让沃尔玛发现了尿布和啤酒之间的关系呢?
热门文章
- JavaScript设计模式第一弹-创建型设计模式
- linux第五周微职位
- PostgreSQL 获取拼音首字母的函数 - 摘自互联网
- [Android自定义控件] Android Scroller工具类和GestureDetector的简单用法
- 不能从const char *转换为LPCWSTR --VS经常碰到
- RHEL6.2上使用 libvirt创建和管理KVM虚拟机
- REDHAT5.6dhcp服务器及dhcp中继代理配置
- 获取当前组策略配置的信息
- 索尼推出 PlayStation 漏洞奖励计划,最严重漏洞5万美元起步
- JavaScript总结摘要