【问题标题】:Mysql connection- check manual that correspond to your mysql server versionmysql连接-检查与您的mysql服务器版本相对应的手册
【发布时间】:2019-09-20 03:44:44
【问题描述】:

包 com.example.dev1.controller;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
/*import java.sql.ResultSet;*/
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JApplet;

public class ReadLg extends JApplet {

    private static final long serialVersionUID = 1L;

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        String[] lev_param = {"DEBUG", "WARN", "INFO", "ERROR"};

        PreparedStatement ps = null;
        Connection con = null;
        /* ResultSet rs = null; */

        try {
            BufferedReader br = new BufferedReader(new FileReader("All.log"));
            String username = "*****";
            String pwd = "*****";
            String connurl = "jdbc:mysql://ipaddress:3306/d_accesslog?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";

            con = DriverManager.getConnection(connurl, username, pwd);

            String line = null;
            while ((line = br.readLine()) != null) {

                System.out.println(line + "\t");
                String sql = "INSERT INTO t_weblogic_test (RawData) values ('"+line+"')";

                ps = con.prepareStatement(sql);
                ps.executeUpdate();
            }

            br.close();
            con.close();
            ps.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

主要问题是我想尝试读取日志文件并将其插入数据库,但出现此错误。有人可以帮我解决这个问题吗?起初,程序按预期工作,但突然停止。我想将我的日志文件项插入 DB。

这是错误

线程“main”中的异常 java.sql.SQLSyntaxErrorException: 你有 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,以便在附近使用正确的语法 '2c9dc30c6ac6b815016b0452ce6341f0', ipAddress='202.184.57.1​​05', loginDate=2019-05' 在第 1 行 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) 在 com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) 在 com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) 在 com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1092) 在 com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1040) 在 com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1340) 在 com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1025) 在 com.example.dev1.controller.ReadLg.main(ReadLg.java:42)

下面的链接是我的数据库结构 https://i.stack.imgur.com/fhWQH.png

【问题讨论】:

  • 您的图片未加载。

标签: java mysql logging sql-update


【解决方案1】:

因为您的日志中有一些类似 ipAddress='202.184.57.1​​05' 的文本,我认为这个问题是由于这种类型的字符串造成的。你可以这样写sql String sql = "INSERT INTO t_weblogic_test (RawData) 值 (\""+line+"\")";

再试一次

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 2014-03-14
    • 1970-01-01
    相关资源
    最近更新 更多