Как получить некоторые данные из полноценного веб-сервиса и сохранить их в базе данных? - PullRequest
2 голосов
/ 10 июля 2019

Я написал некоторый код для сохранения некоторых данных в базу данных с помощью успокоительных веб-сервисов, используя SOAPUI в качестве пользовательского интерфейса.Я использую @put, чтобы сделать это.Вот шаги запуска:

1 - запустить код на сервере Tomcat 9.0.2 - используйте URL-адрес в SOAPUI, чтобы ПОСТАВИТЬ некоторые данные.

Но когда я использую PUT в SOAPUI, задаю строковые значения first и last и запускаю его, значения не добавляются в мою базу данных.Однако, файл json получил правильные значения

{
   "first": "Jon",
   "last": "Snow"
}

Вот важные части моего кода:

package tomcat.rest.eclipse.database;

public class Score {

    public static String first, last;
}

public class ScoreService {
@PUT
    @Path("/score")
    @Produces("application/json")
    public String update(@QueryParam("first") String first, 
                             @QueryParam("last") String last) {
                    Score.first = first;
                    Score.last = last;

                    final String var1 = Score.first;
                    final String var2 = Score.last;
                    database.insert(var1, var2);

                    String pattern = "{ \"first\":\"%s\", \"last\":\"%s\"}";
                    return String.format(pattern, Score.first, Score.last);
    }
}

И это мое соединение:

public class database {

public static Connection getConnection() {

            try {
                String driver = "com.mysql.jdbc.Driver";
                String url = "jdbc:mysql://localhost:3306/testdb";
                String username = "root";
                String password = "00000";
                Class.forName(driver);
                Connection conn = DriverManager.getConnection(url, username, password);
                System.out.println("Connected");
                return conn;
            } catch(Exception e) {System.out.println(e);}

            return null;    
            }

public static void insert(final String var1, final String var2) {

        try {
            Connection con = getConnection();
            PreparedStatement posted = con.prepareStatement("INSERT INTO student (first, last) VALUES ('"+var1+"', '"+var2+"')");
            posted.executeUpdate();
        } catch(Exception e) {System.out.println(e);}
        finally {
            System.out.println("Insert completed");
        }
    }
}

Вывод на консоль:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver java.lang.ClassNotFoundException: com.mysql.jdbc.Driver java.lang.NullPointerException Вставка завершена

Как правильно подключить веб-сервис к базе данных, чтобы сохранить некоторые записи в базе данных?Большое спасибо за помощь.

1 Ответ

0 голосов
/ 10 июля 2019

Просто скачайте и добавьте MySQL-коннектор jar в путь сборки вашего проекта.

Или

Добавьте файл jar в WEB-INF / libпапка.Щелкните правой кнопкой мыши свой проект в Eclipse и выберите «Путь сборки> Настроить путь сборки». Добавьте библиотеку «Библиотеки веб-приложений». Это обеспечит включение всех файлов WEB-INF / lib в путь к классам.

Или зависимость jdbc mysql maven, если вы используете maven:

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

Правка: щелкните правой кнопкой мыши на вашем проекте => Путь сборки => Настроить путь сборки => вкладку «Библиотеки» и выберитена «Добавить внешние JAR» и вы указываете на свой файл «mysql-connector-java-5.1.17-bin.jar»

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.EmptyStackException;

public class SingletonConnection   {


    private static Connection connection = null ;
    static 
    {
        try{
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection
                    ("jdbc:mysql://localhost:3306/dbnameX","root","");
        }catch(Exception ex)
        {

        }

    }
    public static Connection getConnection() throws Exception {
        return connection;
    }


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