使用java jdbc驱动连接数据库
今天做一个jsp注册的小demo,突然就想连接数据库,做一个真正的demo,所以就有了诸多的事情
jsp连接mysql数据库需要使用jdbc驱动,jdbc驱动的下载地址是https://dev.mysql.com/downloads/connector/j/,在下面选择platform independent,然后下载第一个或者第二个都是可以的,之后解压压缩包,得到里面的一个** mysql-connector-java-8.0.11.jar ** 文件,这个文件就是我们主要的驱动文件。
准备工作
emmm 假如你出现找不到package的错误,你可以采取下面几个措施(可能有效,滑稽):
1. 把mysql-connector-java-8.0.11.jar放到tomcat的lib目录下面 2. 右键工程名,找到properties,找到Java Build Path,在右侧 add External JARS,添加mysql-connector-java-8.0.11.jar
3. 添加mysql-connector-java-8.0.11.jar到系统环境变量CLASS_PATH中去
一个简单的demo
** 注意 ** 国内的有的博客推荐使用这样的demo来测试驱动 <%@page import="com.mysql.cj.jdbc.Driver">
我在官方的文档demo中发现这种方式不仅不推荐,而且明确标出可能出现问题,而且事实上也确实出现了很大的问题
首先导入要使用的包: java.sql.DriverManager,java.sql.Connection,java.sql.SQLException,java.sql.Statement,java.sql.ResultSet
然后使用Class.forName("com.mysql.cj.jdbc.Driver").newInstance();注册驱动,然后创建一个驱动实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>a simple demo for using jdbc</title> </head> <body> <%@page import="java.sql.DriverManager,java.sql.Connection,java.sql.SQLException,java.sql.Statement" %> <%@page import="java.sql.ResultSet" %> <% //1. 注册驱动,创建驱动实例 Class.forName("com.mysql.cj.jdbc.Driver").newInstance(); Connection conn=null; try { //2. 使用驱动连接mysql 服务器 conn = DriverManager.getConnection("jdbc:mysql://localhost/pentest?" + "user=root&password=root&serverTimezone=GMT%2B8");//必须加上serverTimezone字段,否则失败,貌似是jdbc的一个bug Statement stml=null; ResultSet rs=null; // 3. 创建语句 stml=conn.createStatement(); // 4. 执行增删改的语句 stml.executeUpdate("insert into news values (33,\"test\",\"just a little test\")");//增删改使用executeUpdate // 5. 执行查询语句 rs=stml.executeQuery("select * from news");//查使用executeQuery // Do something with the Connection //System.out.println(rs.toString()); // 6. 处理查询结果 while(rs.next())//rs结果集中还有下一行 { out.print(rs.getString(1)+" | ");//输出rs结果的第一列 out.print(rs.getString(2)+" | ");//输出rs结果的第二列 out.println(rs.getString(3)+"<br>");//输出rs结果的第三列 } //... } catch (SQLException ex) {//错误处理 // handle any errors System.out.println("SQLException: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("VendorError: " + ex.getErrorCode()); } %> </body> </html>
|
参考链接: https://www.cnblogs.com/justlove/p/6946032.html