我一直在嘗試創建一個使用Velocity的HTML頁面,它顯示了存儲在名爲users的SQL表中的名稱。當我運行我的程序,它打印以下堆棧跟蹤:速度與MySQL DB連接不起作用
java.sql.SQLException
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5528)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5448)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5488)
at com.sarvika.velocity.HelloWorld.CfNMHTMLParser.main(CfNMHTMLParser.java:41)
我相信,我沒有導入所有需要的庫,併爲MySQL連接驅動程序。我正在使用mysql-connector-java-5.1.6。我的代碼是:
package com.sarvika.velocity.dbtovelocity;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.velocity.*;
import org.apache.velocity.app.VelocityEngine;
public class CfNMHTMLParser {
private final static String URL = "jdbc:mysql://localhost/coffeenet";
private final static String USER = "root";
private final static String PASS = "root";
private static final String BOOL_EXC = "exception";
private static final String EXC = "exc";
private static final String USER_LIST = "usersArray";
public static void main (String [] args)
throws IOException {
VelocityEngine engine = new VelocityEngine();
Template template = engine.getTemplate("HTMLTemplate.vm");
VelocityContext context = new VelocityContext();
CfNMHTMLParser parser = new CfNMHTMLParser();
String [] data = null ;
try {
Connection conn = DriverManager.getConnection(URL, USER, PASS);
Statement stmt = conn.createStatement();
String query = "SELECT count(*) FROM users ;";
ResultSet rs = stmt.executeQuery(query);
int count = Integer.parseInt(rs.getString("count(*)"));
data = new String[count];
query = "SELECT AuthID FROM users ;";
rs = stmt.executeQuery(query);
for (int i = 0 ; i < count ; i++) {
rs.next();
data[i] = rs.getString("AuthID");
}
// data = new String [] {
// "developers",
// "developers",
// "developers",
// "developers"
// };
} catch (SQLException ex) {
ex.printStackTrace();
context.put(BOOL_EXC, true);
context.put(EXC, ex.getMessage());
}
context.put(USER_LIST, data);
StringWriter templateData = new StringWriter();
template.merge(context, templateData);
File htmlFile = new File("page.html");
FileWriter fileWriter = new FileWriter(htmlFile);
BufferedWriter writer = new BufferedWriter(fileWriter);
writer.write(templateData.toString());
writer.close();
}
}
文件HTMLTemplate.vm
#macro(makeUserTable $userListObjArray)
#foreach($user in $userListObjArray)
<font size="7" color="ffccaa">
$user
</font>
<BR>
#end
#end
<html>
<title>CoffeeNet Messenger Users</title>
#if ($exception == true)
<font size="48">Exception : $exc </font>
#else
#makeUserTable($usersArray)
#end
</html>
請告訴我在哪裏,我在做的錯誤...
沒有人。你錯了 –