Java 애플릿을 사용하여 데이터베이스 레코드에 파일을 작성하는 예제를 작성하려고합니다. 하지만 문제는 애플릿을 실행 한 후 파일이 생성되었지만 가비지 데이터가 있음을 확인하는 것입니다.
애플릿에 서명했습니다 (이 튜토리얼에 따라 : http://www.narendranaidu.com/2007/11/3-easy-steps-to-self-sign-applet-jar.html)
작성한 jar (SaveToFile.jar)에 mysql-connector를 넣으려고했습니다. 그러나 같은 일이 일어났습니다. 그래서 데이터베이스 연결이 실제로 일어나면 혼란 스럽습니다.mysql 결과가 Java 애플릿을 사용하여 파일에 올바르게 작성되지 않았습니다.
appletTest/
out/production/appletTest/
applet/SaveToFile.class
SaveToFile.html
SaveToFile.jar
mysql-connector-java-5.1.24-bin.jar
file-applet.jnlp
keystore
크롬, 돈을 어떤 응답을 제공하지 않는 (파이어 폭스 브라우저에 HTML 파일을 연 후 : 빌드 후
, 내 프로젝트 구조는 (여기 난 그냥 지은 부분을 보여주는거야)는 다음과 같습니다 이유를 알지 못한다!) 애플릿 실행 권한을 부여하면 data.txt 파일이이 동일한 디렉토리에 성공적으로 작성됩니다. MySQL의 테이블 드디어
<!DOCTYPE html>
<html>
<head>
<title>Applet Test</title>
</head>
<body>
<script src="http://java.com/js/deployJava.js"></script>
<script type="text/javascript">
var attributes = { code:'applet.SaveToFile', width:22, height:22} ;
var parameters = {jnlp_href: 'file-applet.jnlp'} ;
deployJava.runApplet(attributes, parameters, '1.7');
</script>
<applet
id="saveToFile"
width=22
height=22
code="applet.SaveToFile"
archive="SaveToFile.jar"
jnlp_href = 'file-applet.jnlp'
/>
</body>
</html>
된다 : 여기
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
<information>
<title>Write To File</title>
<vendor>Vendor</vendor>
</information>
<resources>
<!-- Application Resources -->
<j2se version="1.7+"
href="http://java.sun.com/products/autodl/j2se"
max-heap-size="128m"/>
<jar href="SaveToFile.jar" main="true"/>
</resources>
<applet-desc name="Test Applet"
main-class="applet.SaveToFile"
width="22"
height="22"/>
<update check="background"/>
<security>
<all-permissions/>
</security>
</jnlp>
는 HTML입니다 : 여기
package applet;
public class SaveToFile extends Applet {
public void init() {
try {
getData();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
private void getData() throws SQLException, ClassNotFoundException, IllegalAccessException, InstantiationException {
String myDriver = "com.mysql.jdbc.Driver";
String dbUrl = "jdbc:mysql://localhost/APPLET?user=root&password=root&characterSet=utf8&useUnicode=true&characterEncoding=utf-8&characterSetResults=utf8";
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(dbUrl);
Statement stmt = conn.createStatement();
try {
ResultSet rs = stmt.executeQuery("SELECT * FROM applet");
try {
String text = "";
while (rs.next()) {
text += rs.getString("title");
}
writeToFile(text);
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rs.close();
} catch (Throwable ignore) {
ignore.printStackTrace();
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
stmt.close();
} catch (Throwable ignore) {
ignore.printStackTrace();
}
}
}
public void writeToFile (String text) {
try {
DataOutputStream dataOut = new DataOutputStream(new FileOutputStream("data.txt"));
dataOut.writeUTF(text);
dataOut.close();
} catch(Exception x) {
x.printStackTrace();
}
}
}
가 JNLP입니다 : 여기
는 자바 코드
+----+--------+
| id | title |
+----+--------+
| 1 | TITLE1 |
| 2 | TITLE2 |
| 3 | TITLE3 |
| 4 | TITLE4 |
+----+--------+
,451,515,
심지어 나는 (이 다음 http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/)이 쿼리를 시도했지만 아무 것도이 시간이 일어나지 : 사람 사이에서 데이터베이스 상호 작용을 처리에 고정 무엇인가에 대한 예를 들어 줄 수 있다면 도움이 될 것 외에도
SELECT * FROM applet
INTO OUTFILE 'tmp/data.txt'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
을 자바 스크립트 및 애플릿.
고맙습니다.
실제 문제를 설명하지 않았다면 말할 수 있습니다. 당신은 심지어 data.txt 파일이 성공적으로 생성되었다고 말합니다. _ –
@MarkRotteveel : 나는 파일에 그것이 가져서는 안되는 가비지 데이터를 가지고 있다고 말했습니다. – leevi
가비지를 정의하십시오 (샘플을 보여주십시오). 마지막 질의는 클라이언트가 아닌 서버에 파일을 생성합니다. –