MYSQL主键存在则更新,不存在则插入

版权声明:本文为博主原创文章,出处为 http://blog.csdn.net/silentwolfyh https://blog.csdn.net/silentwolfyh/article/details/83056420

需求:MYSQL主键存在则更新,不存在则插入

package com.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

/***
 *  需求:MYSQL主键存在则更新,不存在则插入
 *
 *  解决:
 *  1、主键为:PRIMARY KEY (dbName, tableName, TIMES) ,
 *  2、MYSQL主键存在则更新,不存在则插入的解决方案(ON DUPLICATE KEY UPDATE)
 */
public class MysqlTest {
    public static void main(String[] args) {

        try {
            //mysql的配置
            Connection connection = null;
            PreparedStatement preparedStatement;
            String username = "root";
            String password = "123456";
            String drivername = "com.mysql.jdbc.Driver";
            String dburl = "jdbc:mysql://localhost:3306/realtimedatawarehouse";

            //加载驱动
            Class.forName(drivername);
            connection = DriverManager.getConnection(dburl, username, password);

            //MONEY相加
//            String sql = "insert into ResultData(dbName,tableName,TIMES,MONEY)  values(?,?,?,?) on  DUPLICATE key update MONEY=MONEY+values(MONEY)";

            //MONEY最大值,GREATEST的意思是N个参数分别返回最大和最小值
//            String sql = "insert into ResultData(dbName,tableName,TIMES,MONEY)  values(?,?,?,?) on  DUPLICATE key update MONEY= GREATEST(MONEY,VALUES(MONEY));";

            //MONEY最小值,LEAST的意思是N个参数分别返回最小值
            String sql = "insert into ResultData(dbName,tableName,TIMES,MONEY)  values(?,?,?,?) on  DUPLICATE key update MONEY= LEAST(MONEY,VALUES(MONEY));";

            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1, "db");
            preparedStatement.setString(2, "table");
            preparedStatement.setString(3, "2018-09-05 13:32");
            preparedStatement.setDouble(4, 2000);

            preparedStatement.executeUpdate();
            if (preparedStatement != null) {
                preparedStatement.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

       <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.0.5</version>
        </dependency>

猜你喜欢

转载自blog.csdn.net/silentwolfyh/article/details/83056420