자바 학습 노트 - JDBC 2
2800 단어 JDBCJavaSQLperformance
Executing SQL Statements
Then call the executeUpdate method of the Statement class:
stat.executeUpdate(command);
The executeUpdate method returns a count of the rows that were affected by the SQL statement, or zero for statements that do not return a row count.
The executeQuery method returns an object of type ResultSet that you use to walk through the result one row at a time.
ResultSet rs = stat.executeQuery("SELECT * FROM Books")
When inspecting an individual row, you will want to know the contents of the fields. A large number of accessor methods give you this information.
String isbn = rs.getString(1);
double price = rs.getDouble("Price");
rs.getString(1) returns the value of the first column in the current row. Using the numeric argument is a bit more efficient, but the string arguments make the code easier to read and maintain.
boolean execute(String sqlStatement)
executes the SQL statement specified by the string. Multiple result sets and update counts may be produced. Returns true if the first result is a result set, false otherwise. Call getResultSet or getUpdateCount to retrieve the first result.
Prepared Statements
PreparedStatement publisherQueryStat = conn.prepareStatement(publisherQuery);
Rather than build a separate query statement every time the user launches such a query, we can prepare a query with a host variable and use it many times, each time filling in a different string for the variable. That technique benefits performance. Whenever the database executes a query, it first computes a strategy of how to efficiently execute the query. By preparing the query and reusing it, you ensure that the planning step is done only once.
Reading and Writing LOBs
PreparedStatement stat = conn.prepareStatement("SELECT Cover FROM BookCovers WHERE ISBN=?");
stat.set(1, isbn);
ResultSet result = stat.executeQuery();
if (result.next())
{
Blob coverBlob = result.getBlob(1);
Image coverImage = ImageIO.read(coverBlob.getInputStream());
}
Blob coverBlob = connection.createBlob();
int offset = 0;
OutputStream out = coverBlob.setBinaryStream(offset);
ImageIO.write(coverImage, "PNG", out);
PreparedStatement stat = conn.prepareStatement("INSERT INTO Cover VALUES (?, ?)");
stat.set(1, isbn);
stat.set(2, coverBlob);
stat.executeUpdate();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 시각화 도구 FineReport와 AWS RedShift 연결(JDBC 방법)Amazon Redshift는 클라우드의 완전 관리형, 페타바이트 규모 데이터 웨어하우스 서비스입니다. 수백 기가바이트의 데이터로 시작하여 페타바이트 이상까지 확장할 수 있습니다. 이렇게 하면 고객의 비즈니스와 고객...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.