Java 数据库字符串中的。为什么?当应用程序扩展时,数据库服务器常常成为性能瓶颈。如果你给它们加载图像,它们将成为更大的瓶颈。

Java 数据库字符串中的。为什么?当应用程序扩展时,数据库服务器常常成为性能瓶颈。如果你给它们加载图像,它们将成为更大的瓶颈。,java,html,mysql,graphicimage,Java,Html,Mysql,Graphicimage,你的标签 下面是一些关于如何做到这一点的建议。基本上,您必须将BLOB中的二进制数据编码为Base64,并预处理数据:image/jpeg到它 Pro-tip许多web应用程序设计者不将图像存储在数据库blob中,而是将其存储在文件系统中,并将其URL存储在数据库字符串中。为什么?当应用程序扩展时,数据库服务器常常成为性能瓶颈。如果您用图像加载它们,它们将成为更大的瓶颈。或者您有一个单独的jsp页面,根据get参数将blob的内容作为图像提供,因此您不必将其内容保存到文件系统。或者您有一个单独的

你的标签

下面是一些关于如何做到这一点的建议。基本上,您必须将BLOB中的二进制数据编码为Base64,并预处理
数据:image/jpeg到它


Pro-tip许多web应用程序设计者不将图像存储在数据库blob中,而是将其存储在文件系统中,并将其URL存储在数据库字符串中。为什么?当应用程序扩展时,数据库服务器常常成为性能瓶颈。如果您用图像加载它们,它们将成为更大的瓶颈。

或者您有一个单独的jsp页面,根据get参数将blob的内容作为图像提供,因此您不必将其内容保存到文件系统。或者您有一个单独的jsp页面,根据get参数将blob的内容作为图像提供,因此,您不必将其内容保存到文件系统中。
    public class MbBrowse implements Serializable {

    private static final long serialVersionUID = 1L;

    final String SQL_SELECT = "select Vorname, Nachname, Geburtsdatum,Email, Telefon, Krankenkasse, Versicherungskarte, Einlieferung, Entlassung, Station,Diagnose, Therapie, Medikamente from stammdaten";
    final String SQL_SELECT2 = "select Vorname, Nachname, Diagnose, Therapie, Medikamente from stammdaten";

    private boolean connected = false;
    private boolean prevButtonDisabled = true;
    private boolean nextButtonDisabled = true;


    private Util util = new Util();

    private Connection con = null;
    private Statement stm = null;
    private ResultSet rs = null;
    

    private int telefon = 0;
    private String nachname = "";
    private String vorname = "";
    private Date geburtsdatum = new Date(0L);
    private String krankenkasse = "";
    private Blob versicherungskarte;
    private String email = "";

public int getTelefon() {
        return telefon;
    }

    public void setTelefon(int n) {
        telefon = n;
    }

    public String getNachname() {
        return nachname;
    }

    public void setNachname(String s) {
        nachname = s;
    }

    public String getVorname() {
        return vorname;
    }

    public void setVorname(String s) {
        vorname = s;
    }

    public String getKrankenkasse() {
        return krankenkasse;
    }

    public void setKrankenkasse(String s) {
        krankenkasse = s;

    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String s) {
        email = s;

    }

    public java.util.Date getGeburtstag() {
        return geburtsdatum;
    }

    public void setGeburtstag(java.util.Date dt) {
        if (dt != null)
            geburtsdatum = new Date(dt.getTime());
        else
            geburtsdatum = new Date(0L);
    }

    public Blob getVersicherungskarte() {
        return versicherungskarte;
    }

    public void setVersicherungskarte(Blob karte) {
        karte = versicherungskarte;
    }


    public boolean getPrevButtonDisabled() {
        return prevButtonDisabled;
    }

    public boolean getNextButtonDisabled() {
        return nextButtonDisabled;
    }

    public boolean getConnected() {
        return connected;
    }

    public void setConnected(boolean b) {
        connected = b;
    }

    /*--------------------------------------------------------------------------*/

    private void showData() throws SQLException {

        setTelefon(rs.getInt("Telefon"));
        setNachname(rs.getString("Nachname"));
        setVorname(rs.getString("Vorname"));
        setGeburtstag(rs.getDate("Geburtsdatum"));
        setKrankenkasse(rs.getString("Krankenkasse"));
        setVersicherungskarte(rs.getBlob("Versicherungskarte"));
        setEmail(rs.getString("Email"));

    }

    /*--------------------------------------------------------------------------*/

    /**
     * Verbindung zur Datenbank herstellen und disconnect button und browse buttons
     * freigeben
     * 
     * @param ae ActionEvent
     */
    public void connect(ActionEvent ae) {

        // out.println( "connect()..." );

        if (util != null)
            con = util.getCon();
        if (con != null) {
            try {
                stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
                rs = stm.executeQuery(SQL_SELECT);
                if (rs.first())
                    showData();
                connected = true;
                prevButtonDisabled = false;
                nextButtonDisabled = false;
            } catch (Exception ex) {
                FacesContext.getCurrentInstance().addMessage(null,
                        new FacesMessage(FacesMessage.SEVERITY_ERROR, "SQLException", ex.getLocalizedMessage()));
                out.println("Error: " + ex);
                ex.printStackTrace();
            }
        } else {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Exception", "Keine Verbindung zur Datenbank (Treiber nicht gefunden?)"));
            out.println("Keine Verbingung zur Datenbank");
        }
    }









<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:p="http://primefaces.org/ui">

<h:head>
    <center>

        <h:head>
            <h:outputStylesheet library="css" name="myCss.css" />
            <title>Patientenverwaltung</title>
            <meta charset="utf-8" />
        </h:head>

    </center>
</h:head>

<h:body style="background-color:#D5D8DC;">


    <h:form>

        <center>


            <h:graphicImage library="img" name="logo.png" />

            <p></p>
            <font face="Verdana" size="5">Stammdaten und Behandlungsdaten</font><br />
            <p></p>

            <h:panelGrid id="panel" columns="4" border="0" cellpadding="10"
                cellspacing="1" styleClass="text">

 
     Vorname
    <h:inputText label="Vorname" 
                    value="#{mbBrowse.vorname}" maxlength="45" />   

   
     Name 
     <h:inputText label="Name" value="#{mbBrowse.nachname}"
                    maxlength="45" /> 
                

            
     Geburtstag
    <h:inputText id="id_geburtstag" label="Geburtstag" maxlength="10"
                    value="#{mbBrowse.geburtstag}">
                    <f:convertDateTime locale="de_DE" pattern="dd.MM.yyyy" type="date"
                        dateStyle="short" timeZone="MET" />
                </h:inputText>
            
                     
    Telefon 
    <h:inputText label="Telefon" maxlength="10"
                    value="#{mbBrowse.telefon}" />
                
            
     Krankenkasse 
    <h:inputText label="Krankenkasse" maxlength="60"
                    value="#{mbBrowse.krankenkasse}" /> 
                
                            
     Email 
    <h:inputText label="Email" maxlength="60" value="#{mbBrowse.email}" /> 
                

                    
    Versicherungskarte 
     <h:graphicImage value="#{mbBrowse.versicherungskarte}"
                    style="height:100px;width:200px" />
                    
    
</h:panelGrid>

        </center>

        <h:panelGroup>
            <center>



                <p></p>
                <h:commandButton value="&lt;&lt;"
                    disabled="#{mbBrowse.prevButtonDisabled}" title="Zurück blättern"
                    style="font-size: 130%;" actionListener="#{mbBrowse.prev}" />
                &#160;&#160;

                <h:commandButton value="&gt;&gt;"
                    disabled="#{mbBrowse.nextButtonDisabled}" title="Vorwärts blättern"
                    style="font-size: 130%;" actionListener="#{mbBrowse.next}" />
                &#160;&#160;

                <h:commandButton value="Connect" disabled="#{mbBrowse.connected}"
                    actionListener="#{mbBrowse.connect}" style="font-size: 130%;" />
                &#160;&#160;

            </center>
        </h:panelGroup>

    </h:form>
    
</h:body>
</html>
<h:graphicImage value="#{mbBrowse.versicherungskarte}" style="height:100px;width:200px"/>
<img src="theContentOfYourBLOB" style="height:100px;width:200px"/>
<img src="https://some.example.com/whatever/image.jpg" style="height:100px;width:200px" />
 data:image/jpeg;base64;R0lGODblahblahblahblah