当前位置: 首页 > 知识库问答 >
问题:

试图通过JAVA 500删除数据库行时出错

长孙阳嘉
2023-03-14

我正在尝试删除从数据库中单击的某些行。每一行都显示出来,并有一个删除按钮来删除某一行。Onclick我从行中获取ID,所有这些都起作用了。就在我查看网络时,它返回一个500的错误。这是我的密码

         $("body").on('click', '#delete', function(){
         var trid = $(this).closest('tr').attr('id');
         console.log(trid);
         $.ajax({
             url: '/firstapp/restservices/countries/delete/' + trid,
             type: 'DELETE',
             success: function(response) {
                 console.log(response);
             }
         });
     });
    @Path("countries")
    public class WorldResource {
    private CountryPostgresDaoImpl CountryPostgresDao = new 
    CountryPostgresDaoImpl();

    @Path("delete/{code}")
    @DELETE
    @Produces("application/json")
    public Response deleteCountry(@PathParam("code") String code) throws SQLException {
         Country country = ServiceProvider.getWorldService().getCountryByCode(code);
        if(!CountryPostgresDao.Delete(country)) {
            return Response.status(404).build();
        }
        return Response.ok().build();

    }
Request URL: http://localhost:8888/firstapp/restservices/countries/delete/AF
Request Method: DELETE
Status Code: 500 
Remote Address: [::1]:8888
Referrer Policy: no-referrer-when-downgrade
public Country getCountryByCode(String code) throws SQLException {
    return CountryPostgresDao.findByCode(code);
}
    public Country findByCode(String cd) throws SQLException {
    return findCountries("SELECT code, iso3, name, continent, region, surfacearea, population, latitude, longitude, capital, governmentform FROM country WHERE code = " + cd).get(0);
}

使用findCountrys方法

    public List<Country> findCountries(String query) throws SQLException{
    List<Country> results = new ArrayList<Country>();

    try (Connection con = super.getConnection()) {
        Statement stmt = con.createStatement();
        ResultSet dbResultSet = stmt.executeQuery(query);

        while (dbResultSet.next()) {
            String code  = dbResultSet.getString("code");
            String iso3 = dbResultSet.getString("iso3");
            String name = dbResultSet.getString("name");
            String capital = dbResultSet.getString("capital");
            String continent = dbResultSet.getString("continent");
            String region = dbResultSet.getString("region");
            Double surfacearea = dbResultSet.getDouble("surfacearea");
            int population = dbResultSet.getInt("population");
            Double latitude = dbResultSet.getDouble("latitude");
            Double longitude = dbResultSet.getDouble("longitude");
            String governmentform = dbResultSet.getString("governmentform");

            results.add(new Country(code,iso3,name,capital,continent,region,surfacearea,population,governmentform,latitude,longitude));
        }
    } catch (SQLException sqle) {
        sqle.printStackTrace();
    }

    return results;


}

删除DAO

    public boolean Delete(Country country) throws SQLException {
    boolean result = false;
    boolean countryExists = findByCode(country.getCode()) != null;

    if (countryExists) {
        String query = "DELETE FROM country WHERE code = " + country.getCode(); 

        try (Connection con = super.getConnection()) {

            Statement stmt = con.createStatement();
            if (stmt.executeUpdate(query) == 1) { // 1 row updated!
                result = true;
            }
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        }
    }

    return result;
}

共有1个答案

公孙新觉
2023-03-14

将此findByCode代码更改为如下所示

public Country findByCode(String cd) throws SQLException {
List<Country> countries= findCountries("SELECT code, iso3, name, 
continent, region, surfacearea, population, 
latitude, longitude, capital, governmentform FROM country WHERE code = 
'" + code + "'");
}
if(!countries.isEmpty()) {
return countries.get(0);
}
return null;
}

并且查询错误,应该是

"SELECT code, iso3, name, continent, region, surfacearea, population, 
latitude, longitude, capital, governmentform FROM country WHERE code = 
'" + code + "'"
 类似资料:
  • 这是我得到的错误堆栈跟踪... 无法连接到mydb。创建到mydb的SQL模型连接连接时出错。(错误:oracle.jdbc.OracleDRiver)oracle.jdbc.OracleDRiver创建到mydb的JDBC连接时出错。(错误:oracle.jdbc.OracleDRiver)oracle.jdbc.OracleDRiver。 我正在使用oracle瘦驱动程序连接到数据库。。 SI

  • 我在编码方面是新手,所以我复制粘贴了一些教程的代码,但是当我试图删除“睡眠”列中的所有数据时,出现了这个错误。 Android数据库sqlite。SQLiteException:在“20170128”附近:编译时出现语法错误(代码1)::在android上从20170128删除。数据库sqlite。SQLiteConnection。android上的nativePrepareStatement(本

  • 本文向大家介绍通过数据库对Django进行删除字段和删除模型的操作,包括了通过数据库对Django进行删除字段和删除模型的操作的使用技巧和注意事项,需要的朋友参考一下 删除字段 从Model中删除一个字段要比添加容易得多。 删除字段,仅仅只要以下几个步骤:     删除字段,然后重新启动你的web服务器。     用以下命令从数据库中删除字段: 请保证操作的顺序正确。 如果你先从数据库中删除字段,

  • 问题内容: 我使用塔和sqlalchemy。我不断更新架构文件,并删除并重新创建数据库,以便可以制作新的架构。 每次我通过打开MySql查询浏览器并登录并删除数据库/架构来执行此操作。 如何在Ubuntu Linux中删除完整的linux shell命令中的MySQL db / schema? 问题答案: 尝试以下命令:

  • 本文向大家介绍删除SAP HANA数据库视图,包括了删除SAP HANA数据库视图的使用技巧和注意事项,需要的朋友参考一下 您可以使用Drop命令删除视图,就像我们删除表一样。您可以在数据库视图上的表上执行所有操作。

  • 我正试图从数据库中删除一行,但得到以下错误