代码之家  ›  专栏  ›  技术社区  ›  Hasitha Jayawardana

如何使用Java、AJAX和Rest Web服务从MySQL数据库中检索数据并将其放入HTML表单

  •  1
  • Hasitha Jayawardana  · 技术社区  · 6 年前

    我正在尝试从MySQL数据库中检索用户数据,并将它们放在HTML表单中。我正在使用AJAX调用Java中的web服务。但它不起作用。它没有给出任何错误。但数据不会出现。当我尝试使用POSTMAN时,它工作得很好,详细信息以JSON显示。但是使用AJAX是行不通的。有人能帮我吗?提前谢谢。 Users.java 包含getter和setter。

    详细的代码。jsp

    <form>
    Enter Username:<br>
    <input type="text" id="usernameSe" name="username"><br>
    <h3>Details Will Appear Here</h3><br>
    Username:<br>
    <input type="text" id="username" name="username"><br>
    Email:<br>
    <input type="text" id="email" name="email"><br><br>
    Password:<br>
    <input type="text" id="password" name="password"><br>
    
    <button id="btnGet">Save</button>
    </form>
    
    
    
    <script type="text/javascript">
    $(document).ready(function()
    {
        $("#btnGet").click(function(event)
        {
            event.preventDefault();
            var searchDetails;
    
            $.ajax(
            {
                type: 'GET',
                url:  "http://localhost:8080/WebService/webresources/users/get/"+$('#usernameSe').val(),
                dataType: "json",
                success: function(data)
                {
                    searchDetails = data;
                    renderDetails(searchDetails);
                },
                error: function(jqXHR, textStatus, errorThrown) 
                {
                    alert('Error: ' + textStatus);
                }
            });
        });
    });
    
    function renderDetails(user)
    {
        $('#username').val(user.username);
        $('#email').val(user.email);
        $('#password').val(user.password);
    };
    </script>
    

    使用中的代码

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("get/{username}")
    public String getUsersByName(@PathParam("username")String username) throws ClassNotFoundException, SQLException
    {
        Gson g = new Gson();
        UsersDAO dao = new UsersDAO();
        List<Users> users = dao.getUsersByName(username);
    
        return g.toJson(users);
    }
    

    UserDAO中的代码。Java语言

    public List<Users> getUsersByName(String username) throws ClassNotFoundException, SQLException
    {
        List<Users> user = new ArrayList<>();
        Users u = null;
        sql = "SELECT * FROM users WHERE username = ?";
        con = DbConnection.getConnection();
        pst = con.prepareStatement(sql);
        pst.setString(1, username);
        rs = pst.executeQuery();
        while(rs.next())
        {
            u = new Users();
            u.setUsername(rs.getString("username"));
            u.setEmail(rs.getString("email"));
            u.setPassword(rs.getString("password"));
    
            user.add(u);
        }
        DbConnection.db();
        return user;
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   H Athukorala    6 年前

    您的REST服务正在返回一个数组,所以您所要做的就是,

    更改此

    searchDetails = data;
    

    进入这个

    searchDetails = data[0];