resultSet.getBlob (column_name) выдает сообщение "com. mysql .cj.jdb c. Blob@8df45dc" - PullRequest
1 голос
/ 30 апреля 2020

Я отображаю данные на странице jsp из атрибута "resultset.getString (" column_name ")", которая отлично работает для моих столбцов.

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.io.*"%>
 <%@ page import="java.sql.*"%>

 <%@ page import="java.util.*"%>
  <%@ page import="java.text.*"%>
 <%@ page import="javax.servlet.*"%>
 <%@ page import="javax.servlet.http.*"%>
 <%@ page import="javax.servlet.http.HttpSession"%>
 <%@ page language="java"%>
 <%@ page session="true"%>
 <%@ page import="java.sql.*"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="javax.servlet.ServletOutputStream"%>

<style>


th, td {
  padding: 15px;
}
</style>
<%
    String id = request.getParameter("name");
    String driverName = "com.mysql.jdbc.Driver";
    String connectionUrl = "jdbc:mysql://localhost:3306/";
    String dbName = "employee";
    String userId = "root";
    String password = "root";

    try {
        Class.forName(driverName);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

   String iurl1=null;
    Blob employee_dp=null;
    Connection connection = null;
    Statement statement = null;
    ResultSet resultSet = null;
%>
<h2 align="center"><font><strong>Retrieve data from database in jsp</strong></font></h2>



    <%
        try {
            connection = DriverManager.getConnection(connectionUrl + dbName, userId, password);
            statement = connection.createStatement();
            String sql = "SELECT * FROM employee_details where ID='" + session.getAttribute("ID") + "'";

            resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
    %>



    <table border="0" class="display" >

        <tbody>
            <tr>
                <td>ID : </td>
                <td><%=resultSet.getString("ID")%></td>
            </tr>
            <tr>
                <td>First Name : </td>
                <td><%=resultSet.getString("name")%></td>
            </tr>
            <tr>
                <td>Last Name : </td>
                <td><%=resultSet.getString("Last_Name")%></td>
            </tr>
            <tr>
                <td>D.O.B. : </td>
                <td><%=resultSet.getString("DOB")%></td>

            </tr>

            <tr>
                <td>image : </td>
                  <td><img alt="Smiley face" src="<%=resultSet.getString("employee_dp") %>" width="500" height="500"/></td>

            </tr>


               <tr>
                <td>Attach address proof </td>
                <td>  <input type="file" name="txtfile"> </td>

            </tr>

        </tbody>
    </table>





<%}}
catch (Exception e) {
out.println("DB problem"); 
return;
}
finally {
try {
resultSet.close();
statement.close();
connection.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
%>

Вот код для моего jsp отображение страницы. Код драйвера для этого - базовая страница входа c, которая перенаправляет на мою страницу jsp. Я немного изменил код и настроил его, чтобы увидеть, доступно ли мое изображение или нет. Я попытался просто указать прямое назначение под тегом "sr c", это сработало, но когда я получаю его через resultSet.getString (column_name), оно показывает биты символов. Если я использую .getBlob, я получаю пустое поле с изображением

Если я использую .getString, я получаю много символов

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