mysql数据库实例
简单数据查询操作增删改查是数据表操作的重要组成部分,尤其是数据表的查询更是数据库与各类应用交互的频繁操作之一。本文课主要介绍简单数据查询语句。查询语句基本语法查询语句是实现数据查询的SQL语句,用于实...
2024.11.15操作系统:win10
Tomcat版本:8.0
Jdk以及Jre版本:1.8.0
MySQL驱动包版本:8.0.11
在自学Servlet过程中,都是通过网上的教程和自己的买的书,但是由于教程和书上的大多数的版本都比较低,所以基本上在敲完例程之后,基本上都是会报错的,因为各种版本不兼容的问题。所以将各种错误记录在这里,能让自己以后翻阅,如果可以帮到别人那当然是最好的了。
首先,先创建数据库以及表。
这里是通过命令行来创建的数据库,内容如下:
创建了 id,name,url,country 四个字段。
这里要注意的是,我建立的数据库名称为:webdb。
接下来,就是创建 servlet文件。
我是在com.test包下创建的DataBaseTest.java文件
servlet代码如下
package com.test; import java.io.PrintWriter;import java.io.IOException;import java.sql.*; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class DataBaseTest */ public class DataBaseTest extends HttpServlet {private static final long serialVersionUID = 1L; // 设置JDBC驱动名及数据库 URLstatic final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; // 如果MySQL的驱动版本太低的话,这里应该改成 com.mysql.jdbc.Driver /** * @see HttpServlet#HttpServlet() */ public DataBaseTest() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) * 重写doGet方法 */protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubConnection connection = null;Statement statement = null;// 设置响应类型内容response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();String title = "Servlet 测试 Mysql 数据库连接";String docType = "\n";out.println(docType+"\n"+""+title+"\n"+"\n"+""+title+"\n");try {// 注册 JDBC 驱动器Class.forName("com.mysql.cj.jdbc.Driver");// 打开一个数据库连接connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/webdb?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false","root","123456");// 执行 SQL 查询statement = connection.createStatement();String sql;sql = "select id,name,url,country FROM WebDB"; // ResultSet rs = statement.executeQuery(sql);// 展开结果集数据库while(rs.next()) {// 通过字段检索int id = rs.getInt("id");String name = rs.getString("name");String url = rs.getString("url");String country = rs.getString("country");// 输出数据out.println("ID:"+id);out.println("站点名称:"+name);out.println("站点URL:"+url);out.println("属于国家:"+country);out.println("");}out.println("");// 完成之后关闭操作rs.close();statement.close();connection.close();} catch (SQLException se) {// 处理JDBC的错误se.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch block// 这里是用来处理class.forName的错误的e.printStackTrace();}finally {// 最后用于关闭资源的块try {if(statement!=null)statement.close();} catch (SQLException se2) {// TODO: handle exception}try {if(connection!=null)connection.close();} catch (SQLException se) {// TODO: handle exceptionse.printStackTrace();}}} /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);} }接下来,再配置web.xml文件
DataBaseTest com.test.DataBaseTest // 需要编译成.class文件的类所在的包 DataBaseTest // 要和上面的类名相同 /TomCat/DataBaseTest // 浏览器访问的地址到这里,就创建好了一个简单的Servlet连接MySQL数据库。
这里有几个容易报错的点,需要说明一下,不然有可能会出现Tomcat运行不起来的情况。
首先,最重要的是版本号,要匹配,某一部分版本太高或者太低,可能都会导致Tomcat无法运行起来。
其次:
// 打开一个数据库连接 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/webdb?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false","root","123456");对于这一句,getConnection()方法有三个参数,第一个是数据库的链接,第二个是数据库的用户名,第三个是数据库的密码。这些都基于你自己安装的时候所创建的。
如果你的程序报错了,查看报错的内容是:
Establishing SSL connection without server‘s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn‘t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false‘. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
这是因为MySQL版本过高的情况导致的,SSL是一种加密技术,如果看到这个报错,那就需要你在数据库链接后面加上useSSL=false即可。如上面我贴出来的代码。
简单数据查询操作增删改查是数据表操作的重要组成部分,尤其是数据表的查询更是数据库与各类应用交互的频繁操作之一。本文课主要介绍简单数据查询语句。查询语句基本语法查询语句是实现数据查询的SQL语句,用于实...
2024.11.15修改MySQL数据库名称的方法如下:1.语句修改法:rename DATABASE db_name TO new_db_name这个语法在mysql 5.1.7中被添加进来,到了5.1.23又去掉了。...
2024.11.12一、将查询结果插入到其它表中1. 思考目前只有一个goods表,我们想要增加一个商品分类信息,比如:移动设备这个分类信息,只通过goods表无法完成商品分类的添加,那么如何实现添加商品分类信息的操作?...
2024.11.15如何使用Navicat连接Linux服务器中的mysql数据库是测试人员最基本的工作。有时候项目部署成功了,往往会出现Navicat访问数据库连接失败的问题。为了解决大家在部署环境过程中的一些困扰,...
2024.11.15第一:mysql服务的启动和停止net stop mysqlnet start mysql第二:登陆mysql –u用户名 [–h主机名或者IP地址] –p密码说明:用户名是你登录的用户,主机名或者I...
2024.11.15