#菜鸟新手EclipseJavaEE&MySQL&Tomcat#关于一个Eclipse中登陆界面通过连接MySQL数据库进行验证的小体验(感谢qq群友引燃的解答让我解决这个小问题)
来源:互联网 发布:网络空间安全 研讨会 编辑:程序博客网 时间:2024/05/29 18:17
源代码:
package com.atguigu.javaweb;import java.io.IOException;import java.io.PrintWriter;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.sql.Connection; //大神解答!!!public class LoginServlet3 extends HttpServlet { /** * */ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub String username = req.getParameter("username"); String password = req.getParameter("password"); Connection connection = null; PreparedStatement statement = null; ResultSet resultSet = null; PrintWriter out = resp.getWriter(); try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/atguigu?setUnicode=true&characterEncoding=utf8";//重点!!! String user = "root"; String password2 = ""; connection = DriverManager.getConnection(url,user,password2); String sql = "SELECT count(id) FROM tableData WHERE username = ? " + "AND password = ?";//tableData是表名!!!url中的atguigu是数据库名!!!! statement = ((java.sql.Connection) connection).prepareStatement(sql); statement.setString(1, username); statement.setString(2, password); resultSet = statement.executeQuery(); if(resultSet.next()) { int count = resultSet.getInt(1); if(count > 0) { out.println("Hello: " + username); }else{ out.println("Sorry: " + username); } } } catch (Exception e) { e.printStackTrace(); }finally{ try { if(resultSet != null) { resultSet.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { if(statement != null) { statement.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { if(connection != null) { connection.close(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}
这是经过改正后的代码: String url="jdbc:mysql://localhost:3306/atguigu?setUnicode=true&characterEncoding=utf8";//重点!!!
改正前代码如下:
String url="jdbc:mysql://IP:3306/atguigu?user=root&password=&useUnicode="true";
其中IP忘记设置,没有设置密码的代码也不该如此。故而存在问题。
2. 我的引入包也存在问题,并且在这之前存在一个强制转换。我的这段代码:
connection = DriverManager.getConnection(url,user,password2);
import java.sql.Connection; //大神解答!!!
改正前是connection = (Connection)DriverManager.getConnection(url,user,password2);
import com.sun.corba.se.pept.transport.Connection;
导致了相当严重的失误。完全无法连接到数据库。
3. 另外在连接到的相应数据库的表时,也存在一些库名及表名不对称的问题。
这些代码:
String sql = "SELECT count(id) FROM tableData WHERE username = ? " + "AND password = ?"; //tableData是表名!!!url中的atguigu是数据库名!!!!
改正前是这样的:
String sql = "SELECT count(id) FROM users WHERE username = ? " + "AND password = ?";
很显然,问题出在了sql语句中的FROM后面的users。这个是完全错误的!!!
***************在解决完以上的问题后,经过web.xml配置后就可以正常通过对比数据库表中的username和password与登录界面的输入数据是否一致进而做出相应的响应了。***************************BINGO!!!
- #菜鸟新手EclipseJavaEE&MySQL&Tomcat#关于一个Eclipse中登陆界面通过连接MySQL数据库进行验证的小体验(感谢qq群友引燃的解答让我解决这个小问题)
- Eclipse与Mysql连接中遇到的一个问题,让我苦恼好久....(记录自己的菜鸟经历)
- 一个关于mysql小问题的记录
- 解决了一个关于mysql登陆的问题.
- 一个MYSQL的小问题
- 解决了一个Mysql安装的一个小问题
- 一个小问题的解答
- mysql无法连接到本地数据库的小问题及解决
- 解决Mysql中只能通过localhost登陆不能通过ip登陆的问题
- 关于mysql与eclipse进行连接的一些问题
- VS2012 连接MySQl数据库 小测试出的问题
- 关于MySQL远程连接的一些小问题
- Eclipse中出现的一个小问题的解决
- 感谢小白!>QQ群的-小白
- 一个jdbc连接mysql的小例子
- 关于mysql 隐式转换的一个小问题
- 关于用junit进行单元测试的一点小问题!新手
- 关于登陆验证中字符串的比较的小阴沟
- 【VMware】将单个vmdk文件分割成多个2GB大小的vmdk文件
- fedora 22 kde desktop & input method(Chinese) & 英文环境Konsole输入中文
- OC 学习历程回顾
- bzoj1990 NOIP2007 树网的核 树的直径&单调队列维护最小值
- error:Error parsing XML:unbound prefix
- #菜鸟新手EclipseJavaEE&MySQL&Tomcat#关于一个Eclipse中登陆界面通过连接MySQL数据库进行验证的小体验(感谢qq群友引燃的解答让我解决这个小问题)
- Mahout机器学习平台之聚类算法详细剖析(含实例分析)
- Windows系统和Linux系统中的静态链接库与动态链接库(三)
- 数据挖掘-聚类-K-means算法Java实现
- 【oracle】使用oracle常见错误汇总
- 内存映射文件(专门读写大文件)
- cocos2dx 集成google 插屏广告 出现的bug
- TCP长连接与短连接的区别
- toString 和String.valueOf