![](/img/trans.png)
[英]what exactly does this do Class.forName(“com.mysql.jdbc.Driver”).newInstance();
[英]Class.forName(“com.mysql.jdbc.Driver”).newInstance()
我在Netbeans 7.2上遇到這個錯誤,它說ClassNotFoundexception和InstantationException。 我真的被這個問題困住了。 請幫助我。
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
String driver = "com.mysql.jdbc.Driver";
con = null;
String username = "";
String password = "";
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName", "root", "password");
Statement st = con.createStatement();
ResultSet mar = st.executeQuery("SELECT * FROM table");
Gson gson = new GsonBuilder().create();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
} catch (SQLException e) {
String message = e.getMessage();
}
這個簡單的方法怎么樣?!
java.sql.Driver d=new com.mysql.jdbc.Driver();
我也想知道你為什么用這種方式連接到數據庫?! 讓服務器管理它會更好。
首先配置context.xml
(如果你使用的是tomcat),如下所示:
<context>
<Resource name="_ds" auth="Container" type="javax.sql.DataSource"
maxActive="128" maxIdle="32" username="_admin" password="qwerty" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/dbname"/>
</context>
然后,簡單地從servlet / etc中的這個資源獲取連接,如下所示:
public void init() {
try {
_ds = (DataSource) InitialContext.lookup("java:/comp/env/_ds");
} catch (Exception ex) {
}
}
private javax.sql.DataSource _ds;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try {
/*String driver = "com.mysql.jdbc.Driver";
con = null;
String username = "";
String password = "";
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbName", "root", "password");*/
Connection con=_ds.getConnection();
Statement st = con.createStatement();
ResultSet mar = st.executeQuery("SELECT * FROM table");
Gson gson = new GsonBuilder().create();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
con.close();
} catch (SQLException e) {
String message = e.getMessage();
}
順便說一下,不要忘記在<CATALINA_BASE>/lib
文件夾中編寫MySQL JDBC驅動程序jar文件。
你只需要Class.forName("com.mysql.jdbc.Driver")
這類似於類加載器並為您加載驅動程序類。 為此,您需要添加相應的jar文件(具有驅動程序實現)。 因此,在類路徑中下載並添加mysql-connector.jar
。
注意:如果您使用的是Java 7,則無需添加Class.forName("com.mysql.jdbc.Driver")
語句。在JDBC 4.1中添加了自動資源管理(ARM),默認情況下在Java中添加7。
您可能想要解決更大的問題。 您不應該直接在servlet中輸入數據庫連接信息等配置數據。
你在用Tomcat嗎? 你可以簡單地使用JNDI。 您將能夠更改數據庫詳細信息和驅動程序,而無需重新編譯您的servlet。
以下是Tomcat 7.0 JNDI數據源HOW-TO以各種方式顯示Connection
到數據庫的方法。
在該頁面上,您有一個代碼示例,說明如何獲取Connection
(Oracle 8i,9i和10g - >第3部分),以及如何編寫MySQL特定配置 。
確保下載一個正確的MySQL jar並將其放在Tomcat的lib/
目錄中(或者你的WAR的WEB-INF/lib
)。
您需要在此處找到mysqlconnector.jar
文件:( http://dev.mysql.com/downloads/connector/j/ )到項目的lib文件夾中。 將其包含在您的項目中,然后您就可以訪問與數據庫的連接。
將該jar添加到構建路徑中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.