
servletでのmariaDB接続でエラーになりました。
Eclipseを使用しおります。
エラーの内容からjdbcが見つからないのかなと思いました。
javaアプリケーションでは接続できたので、db部分のコードに問題はないかと思います。
javaアプリケーションの場合は、jdbcファイル"mariadb-java-client-2.1.1.jar"を外部jarとして読み込みました。
servletの場合は、tomcat9.0 -> libにjdbcファイルを配置しています。
プロジェクトの構成に表示されているので読み込まれていると判断しました。
これで問題ないかと思ったのですが、見落としている点があればご指摘いただけないでしょうか。
-- エラーコード
text
1java.sql.SQLException: No suitable driver found for jdbc:mariadb://localhost:3307/sample
-- サンプルコード
java
1package servlet; 2 3import java.io.IOException; 4import java.sql.Connection; 5import java.sql.DriverManager; 6import java.sql.SQLException; 7 8import javax.servlet.annotation.WebServlet; 9import javax.servlet.http.HttpServlet; 10import javax.servlet.http.HttpServletRequest; 11import javax.servlet.http.HttpServletResponse; 12 13 14////////////////////////////////////////////////////////// 15// 16// サーブレット 17// 18////////////////////////////////////////////////////////// 19@WebServlet(urlPatterns={"/urlDbConnect"}) 20public class SvDbConnect extends HttpServlet { 21 22 private static final long serialVersionUID = 1L; 23 24 ////////////////////////////////////////////////////////// 25 // 26 // DB接続 27 // 28 ////////////////////////////////////////////////////////// 29 @Override 30 public void doGet (HttpServletRequest req, HttpServletResponse res) 31 throws IOException { 32 33 //DBパラメータ 34 String ip = "localhost"; 35 String port = "3307"; 36 String db = "sample"; 37 String user = "root"; 38 String pass = "root"; 39 40 //接続先 41 String url = "jdbc:mariadb://" + ip + ":" + port + "/" + db; 42 43 //コネクションオブジェクト 44 try { 45 Class.forName("org.mariadb.jdbc.Driver"); // <- 修正 46 Connection con = DriverManager.getConnection(url, user, pass); 47 } catch (SQLException e) { 48 e.printStackTrace(); 49 } 50 51 } 52 53} 54
-- プロジェクトの構成(jdbcは表示されている)
追記
--eclipseのtomcat設定(プロジェクトファイルのサーバと同じフォルダです)
何か勘違いがあるのだと思います。
追記2
tomcatの設定ファイルにmariadbを登録する必要がある様でした。
https://community.jaspersoft.com/wiki/how-add-new-jndi-connection-tomcat
追記3
tomcatの設定は、必要ありませんでした。
変更点
"com.mariadb.jdbc.Driver" -> "org.mariadb.jdbc.Driver"
"com" -> "org"の初歩的なミスでした。
"com.mysql.jdbc.Driver"のごっちゃになっていました。





回答1件
あなたの回答
tips
プレビュー