简单的MySQL数据库连接例子

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

1、在项目中加入MySQL对应的JDBC的驱动jar包

LoginWeb/WebRoot/WEB-INF/lib/mysql-connector-java-3.2.0-alpha-bin.jar

 

 

配置文件

 

 
  1. 代码  
  2.  
  3. <?xml version="1.0" encoding="UTF-8"?> 
  4. <web-app version="2.5"   
  5.     xmlns="http://java.sun.com/xml/ns/javaee"   
  6.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  7.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  8.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
  9.   <servlet> 
  10.     <description>This is the description of my J2EE component</description> 
  11.     <display-name>This is the display name of my J2EE component</display-name> 
  12.     <servlet-name>LoginSvlt</servlet-name> 
  13.     <servlet-class>com.qdu.sun.LoginSvlt</servlet-class> 
  14.   </servlet> 
  15.  
  16.   <servlet-mapping> 
  17.     <servlet-name>LoginSvlt</servlet-name> 
  18.     <url-pattern>/LoginSvlt</url-pattern> 
  19.   </servlet-mapping> 
  20.   <filter> 
  21.   <filter-name>FormFilter</filter-name> 
  22.   <filter-class>com.qdu.sun.FormFilter</filter-class> 
  23.   </filter> 
  24. <filter-mapping> 
  25. <filter-name>FormFilter</filter-name> 
  26. <url-pattern>/*</url-pattern> 
  27. </filter-mapping> 
  28.   <welcome-file-list> 
  29.     <welcome-file>index.jsp</welcome-file> 
  30.   </welcome-file-list> 
  31. </web-app> 

2、前台页面login.html

 

 
  1. 代码  
  2.  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
  4. <html> 
  5.     <head> 
  6.         <title>登录</title> 
  7.         <meta http-equiv="content-type" content="text/html; charset=GBK"> 
  8.     </head> 
  9.     <script type="text/javascript"> 
  10. // 验证输入不为空的脚本代码  
  11. function checkForm(form) {  
  12. if(form.username.value == "") {  
  13. alert("用户名不能为空!");  
  14. form.username.focus();  
  15. return false;  
  16. }  
  17. if(form.password.value == "") {  
  18. alert("密码不能为空!");  
  19. form.password.focus();  
  20. return false;  
  21. }  
  22. return true;  
  23. }  
  24. </script> 
  25.     <body> 
  26.         请登录  
  27.         <br> 
  28.         <form action="LoginSvlt" method="post" 
  29.             onsubmit="return checkForm(this);"> 
  30.             用户名:  
  31.             <input type="text" name="username"> 
  32.             <br> 
  33.             密码:  
  34.             <input type="password" name="password"> 
  35.             <br> 
  36.             <input type="submit" value="登录" name="submit1"> 
  37.             <input type="reset" value="重置" name="reset1"> 
  38.         </form> 
  39.     </body> 
  40. </html> 

3、后台处理LoginSvlt.java登录处理

 

 
  1. 代码  
  2.  
  3. package com.qdu.sun;  
  4.  
  5. import java.io.IOException;  
  6. import java.io.PrintWriter;  
  7.  
  8. import javax.servlet.ServletException;  
  9. import javax.servlet.http.HttpServlet;  
  10. import javax.servlet.http.HttpServletRequest;  
  11. import javax.servlet.http.HttpServletResponse;  
  12. import javax.servlet.http.HttpSession;  
  13. import java.sql.*;  
  14.  
  15. public class LoginSvlt extends HttpServlet {  
  16.  
  17.       
  18.     private String username;  
  19.     private String password;  
  20.     public LoginSvlt() {  
  21.         super();  
  22.     }  
  23.  
  24.      
  25.        
  26.     public void destroy() {  
  27.         super.destroy(); // Just puts "destroy" string in log  
  28.         // Put your code here  
  29.     }  
  30.  
  31.     /**  
  32.      * The doGet method of the servlet. <br> 
  33.      *  
  34.      * This method is called when a form has its tag value method equals to get.  
  35.      *   
  36.      * @param request the request send by the client to the server  
  37.      * @param response the response send by the server to the client  
  38.      * @throws ServletException if an error occurred  
  39.      * @throws IOException if an error occurred  
  40.      */  
  41.       
  42.  
  43.     /**  
  44.      * The doPost method of the servlet. <br> 
  45.      *  
  46.      * This method is called when a form has its tag value method equals to post.  
  47.      *   
  48.      * @param request the request send by the client to the server  
  49.      * @param response the response send by the server to the client  
  50.      * @throws ServletException if an error occurred  
  51.      * @throws IOException if an error occurred  
  52.      */  
  53.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  54.             throws ServletException, IOException {  
  55.              username=request.getParameter("username");  
  56.              password=request.getParameter("password");  
  57.              //先定义变量,后使用和关闭  
  58.              Connection conn = null;//声明数据库连接对象  
  59.              Statement stmt = null; //声明数据库表达式对象  
  60.              ResultSet rs = null;//声明结果集对象  
  61.              try {  
  62.                  // 载入Mysql的驱动字符串  
  63.                  Class.forName("com.mysql.jdbc.Driver");  
  64.                 // 获取数据库的连接  
  65.                  conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "123456");   
  66.                 // 获取表达式对象实例  
  67.                  stmt = conn.createStatement();  
  68.                  rs=stmt.executeQuery("select * from user where username='"+username+"'and password='"+password+"'");  
  69.               
  70.         if(rs.next())  
  71.             {  
  72.             HttpSession session=request.getSession(true);  
  73.             session.setAttribute("username", username);  
  74.             response.sendRedirect("welcome.jsp");  
  75.             }  
  76.         else  
  77.         {  
  78.             response.sendRedirect("error.jsp");  
  79.         }  
  80.              } catch (Exception e) {  
  81.                    
  82.                  e.printStackTrace();  
  83.                  }  
  84.     }  
  85.  
  86.     /**  
  87.      * Initialization of the servlet. <br> 
  88.      *  
  89.      * @throws ServletException if an error occurs  
  90.      */  
  91.     public void init() throws ServletException {  
  92.         // Put your code here  
  93.     }  
  94.  

FormFilter.java中文处理

 

 
  1. 代码  
  2.  
  3. package com.qdu.sun;  
  4.  
  5. import java.io.IOException;  
  6. import javax.servlet.Filter;  
  7. import javax.servlet.FilterChain;  
  8. import javax.servlet.FilterConfig;  
  9. import javax.servlet.ServletException;  
  10. import javax.servlet.ServletRequest;  
  11. import javax.servlet.ServletResponse;  
  12. import javax.servlet.http.HttpServletRequest;  
  13. import javax.servlet.http.HttpServletRequestWrapper;  
  14.  
  15. public class FormFilter implements Filter {  
  16.     /**  
  17.      * Request.java 对 HttpServletRequestWrapper 进行扩充, 不影响原来的功能并能提供所 有的  
  18.      * HttpServletRequest 接口中的功能. 它可以统一的对 Tomcat 默认设置下的中文问题进行解决而只 需要用新的 Request  
  19.      * 对象替换页面中的 request 对象即可.  
  20.      */  
  21.     class Request extends HttpServletRequestWrapper {  
  22.         public Request(HttpServletRequest request) {  
  23.             super(request);  
  24.         }  
  25.  
  26.         /**  
  27.          * 转换由表单读取的数据的内码. 从 ISO 字符转到 GBK.  
  28.          */  
  29.         public String toChi(String input) {  
  30.             try {  
  31.                 byte[] bytes = input.getBytes("ISO8859-1");  
  32.                 return new String(bytes, "GBK");  
  33.             } catch (Exception ex) {  
  34.             }  
  35.             return null;  
  36.         }  
  37.  
  38.         /**  
  39.          * Return the HttpServletRequest holded by this object.  
  40.          */  
  41.         private HttpServletRequest getHttpServletRequest() {  
  42.             return (HttpServletRequest) super.getRequest();  
  43.         }  
  44.  
  45.         /**  
  46.          * 读取参数 -- 修正了中文问题.  
  47.          */  
  48.         public String getParameter(String name) {  
  49.             return toChi(getHttpServletRequest().getParameter(name));  
  50.         }  
  51.  
  52.         /**  
  53.          * 读取参数列表 - 修正了中文问题.  
  54.          */  
  55.         public String[] getParameterValues(String name) {  
  56.             String values[] = getHttpServletRequest().getParameterValues(name);  
  57.             if (values != null) {  
  58.                 for (int i = 0; i < values.length; i++) {  
  59.                     values[i] = toChi(values[i]);  
  60.                 }  
  61.             }  
  62.             return values;  
  63.         }  
  64.     }  
  65.  
  66.     public void destroy() {  
  67.     }  
  68.  
  69.     public void doFilter(ServletRequest request, ServletResponse response,  
  70.             FilterChain chain) throws IOException, ServletException {  
  71.         HttpServletRequest httpreq = (HttpServletRequest) request;  
  72.         if (httpreq.getMethod().equals("POST")) {  
  73.             request.setCharacterEncoding("GBK");  
  74.         } else {  
  75.             request = new Request(httpreq);  
  76.         }  
  77.         chain.doFilter(request, response);  
  78.     }  
  79.  
  80.     public void init(FilterConfig filterConfig) throws ServletException {  
  81.     }  

4、成功页面

 

 
  1. 代码  
  2.  
  3. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> 
  4. <%  
  5. String path = request.getContextPath();  
  6. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  7. %> 
  8.  
  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
  10. <html> 
  11.   <head> 
  12.     <base href="<%=basePath%>"> 
  13.       
  14.     <title>My JSP 'MyJsp.jsp' starting page</title> 
  15.       
  16.     <meta http-equiv="pragma" content="no-cache"> 
  17.     <meta http-equiv="cache-control" content="no-cache"> 
  18.     <meta http-equiv="expires" content="0">      
  19.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
  20.     <meta http-equiv="description" content="This is my page"> 
  21.     <!--  
  22.     <link rel="stylesheet" type="text/css" href="styles.css">  
  23.     --> 
  24.  
  25.   </head> 
  26.     
  27.   <body> 
  28.     欢迎用户:${sessionScope.username}<br> 
  29.   </body> 
  30. </html> 

 

本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1080838


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
132 68
|
26天前
|
关系型数据库 MySQL 网络安全
DBeaver连接MySQL提示Access denied for user ‘‘@‘ip‘ (using password: YES)
“Access denied for user ''@'ip' (using password: YES)”错误通常与MySQL用户权限配置或网络设置有关。通过检查并正确配置用户名和密码、用户权限、MySQL配置文件及防火墙设置,可以有效解决此问题。希望本文能帮助您成功连接MySQL数据库。
41 4
|
29天前
|
数据库 C# 开发者
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
|
28天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
1月前
|
安全 关系型数据库 MySQL
【赵渝强老师】MySQL的连接方式
本文介绍了MySQL数据库服务器启动后的三种连接方式:本地连接、远程连接和安全连接。详细步骤包括使用root用户登录、修改密码、创建新用户、授权及配置SSL等。并附有视频讲解,帮助读者更好地理解和操作。
165 1
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
55 3
|
27天前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
2月前
|
关系型数据库 MySQL 数据库连接
DBeaver如何连接一个数据库
【10月更文挑战第27天】DBeaver 是一款功能强大的通用数据库管理工具,支持多种主流数据库。本文介绍了使用 DBeaver 连接数据库的基本步骤,包括下载安装、创建新连接、选择数据库类型、配置连接参数、测试连接以及最终连接到数据库。详细的操作指南帮助用户轻松管理和操作数据库。
412 9
|
28天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
28天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。