現在、Javaを使い、簡単な社員名簿を作っています。
使用しているのはEclipse、MariaDB、mariadb-java-client-2.7.3.jarです。
package db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class test1 { public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { Class.forName("org.mariadb.jdbc.Driver"); System.out.print("Connecting to DB..."); conn = DriverManager.getConnection( "jdbc:mariadb://localhost:3306/mysql", "root", ""); System.out.println(" done."); stmt = conn.createStatement(); String sql = "SELECT user,host FROM mysql.user"; ResultSet hrs = stmt.executeQuery(sql); while (hrs.next()) { String user = hrs.getString(1); String host = hrs.getString(2); System.out.println("User: " + user + "@'" + host + "'"); } } catch (SQLException se) { //Handle errors for JDBC se.printStackTrace(); } catch (Exception e) { //Handle errors for Class.forName e.printStackTrace(); } finally { //finally block used to close resources try { if (stmt != null) { conn.close(); } } catch (SQLException se) {} // do nothing try { if (conn != null) { conn.close(); } } catch (SQLException se) { se.printStackTrace(); } //end finally try } //end try System.out.println("\nGoodbye!"); } }
上記のコードで接続は確認しました。
しかしサーブレットで下記のように組むとエラーコードが出てしまいます。
package sample; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class formrequest extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/HTML; charset=UTF-8"); PrintWriter out=response.getWriter(); out.println("<DOCTYPE HTML>"); out.println("<html>"); out.println("<head>"); out.println("<meta charset=\"UTF-8\">"); out.println("<title>result</title>"); out.println("</head>"); out.println("<body>"); request.setCharacterEncoding("UTF-8"); String sei= request.getParameter("sei"); String mei= request.getParameter("mei"); String sei_f=request.getParameter("sei_f"); String mei_f=request.getParameter("mei_f"); String gender=request.getParameter("gender"); String year= request.getParameter("year"); String month= request.getParameter("month"); String day= request.getParameter("day"); String post= request.getParameter("post"); String address=request.getParameter("address"); String tell=request.getParameter("tell"); String mail=request.getParameter("mail"); String bikou=request.getParameter("bikou"); String str= new String(); Connection conn = null; Statement stmt = null; String url="jdbc:mariadb://localhost:3306/mysql"; String user="root"; String pw=""; try { Class.forName("org.mariadb.jdbc.Driver"); conn = DriverManager.getConnection("url", "user", "pw"); stmt = conn.createStatement(); String sql = "insert into test(sei,mei,sei_f,mei_f,gender,year,month,day,post,address,tell,mail,bikou) values(sei,mei,sei_f,mei_f,gender,year,month,day,post,address,tell,mail,bikou)"; int num= stmt.executeUpdate(sql); stmt.close(); }catch (ClassNotFoundException e){ out.println("ClassNotFoundException:" + e.getMessage()); }catch (SQLException e){ out.println("SQLException:" + e.getMessage()); }catch (Exception e){ out.println("Exception:" + e.getMessage()); }finally{ try{ if (conn != null){ conn.close(); } }catch (SQLException e){ out.println("SQLException:" + e.getMessage()); } } out.println("<body>"); out.println("<html>"); } }
エラーコードの内容はjava.lang.UnsupportedClassVersionError: org/mariadb/jdbc/Driver : Unsupported major.minor version 52.0 (unable to load class org.mariadb.jdbc.Driver)
と表示されます。
自分なりに探り、JavaとJavacのバージョンを確認してみましたが、どちらも16で同じでした。
上記のエラーコードは解決しました。
SQLException:No suitable driver found for url
というエラーコードが出てしまいます。
自分なりに調べた結果、Tomcatに暮らすパスが通ってないとのことでした。
よって、ビルドパスとWebINF直下libのJDBCを外し、Tomcatのlibに入れましたが、同じコードが出てしまいます。
どのようにしたら、接続できるようになるでしょうか。
また初心者につき、
質問内容の不備、誤っている場所や改善できる場所なども見つけられたらご教授お願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/10 08:03
2021/06/10 08:11
2021/06/11 02:47