Mysql Connection - проверьте руководство, соответствующее вашей версии сервера MySQL - PullRequest
0 голосов
/ 20 сентября 2019

package 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();
        }
    }
}

Основная проблема в том, что я хочу попробовать прочитать и вставить свой файл журнала в базу данных, и я получил эту ошибку.Может кто-нибудь помочь мне разобраться с этой проблемой?Сначала программа работала как положено, но внезапно прекратилась.Я хочу вставить свой элемент файла журнала в БД.

Это ошибка

Исключение в потоке "main" java.sql.SQLSyntaxErrorException: у вас естьошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '2c9dc30c6ac6b815016b0452ce6341f0', ipAddress = '202.184.57.105', loginDate = 2019-05 'в строке 1 в com.mysql.cj.jdbc.exceptions.Qr..createSQLException (SQLError.java:120) по адресу com.mysql.cj.jdbc.exceptions.SQLError.createSQLException (SQLError.java:97) по адресу com.mysql.cj.jdbc.exceptions.SQLExceptionsMaception.ace.Sec.) по адресу com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal (ClientPreparedStatement.java:953) по адресу com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal (ClientPreparedStatement.jredyslt.jp.tjp_t_p0)executeUpdateInternal (ClientPreparedStatement.java:1040) по адресу com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate (ClientPreparedStatement.java:1340) по адресу com.mysql.cj.jdbc.ClientPreredatete.dev1.controller.ReadLg.main (ReadLg.java:42)

Ссылка ниже - моя структура базы данных https://i.stack.imgur.com/fhWQH.png

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

, поскольку в вашем журнале есть такой текст, как ipAddress = '202.184.57.105', я думаю, что эта проблема связана с этим типом строки.Вы можете написать sql следующим образом: String sql = "INSERT INTO t_weblogic_test (RawData) значения (\" "+ line +" \ ")";

, чтобы повторить попытку

0 голосов
/ 20 сентября 2019

Кажется, у вас есть проблема с синтаксисом SQL.Может быть, вы можете отладить, чтобы увидеть значение sql.

Кстати, предоставление имени пользователя и пароля для вашей базы данных может быть плохой идеей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...