JDBC 制作简单的登录验证
两种方法:
一、直接拼接到SQL语句
public static void main(String[] args) throws Exception{
//输入账号密码
Scanner sc = new Scanner(System.in);
System.out.println("账号:");
String zh = sc.next();
System.out.println("密码:");
String mm = sc.next();
//连接到数据库
zh = zh.replace('\'', '\"');//防止有注入错误
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb","root","");
Statement sta = conn.createStatement();
String sql = "select * from xs where zhanghao='"+zh+"' and mima='"+mm+"'";//拼接进去但是会有注入错误
ResultSet rs = sta.executeQuery(sql); //查询语句
//输出
if(rs.next()){ //sr.next==true 账号密码输入的符合时
System.out.println(rs.getString(3)+"登入成功");
}
else{ //输入的不符合时
System.out.println("账号或者密码输入不正确");
}
conn.close();
}


二、使用prepareStatement语句,输入特殊符号不会有问题,可以防止有注入的问题
public static void main(String[] args) throws Exception {
//输入账号密码
Scanner sc = new Scanner(System.in);
System.out.println("账号:");
String zh = sc.next();
System.out.println("密码:");
String mm = sc.next();
//数据库查询账号密码是否正确
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb", "root", "");
String sql = "select * from xs where zhanghao=? and mima=?;";
PreparedStatement sta = conn.prepareStatement(sql);//直接用prepareStatement语句,sql语句可以写在里面;
sta.setString(1, zh);//第一个?的内容
sta.setString(2, mm);//第二个?的内容
ResultSet rs = sta.executeQuery();//查询语句上面写过sql语句,这里不能写。
//输出
if(rs.next()){ //sr.next==true 账号密码输入的符合时
System.out.println(rs.getString(3)+"登入成功");
}
else{ //输入的不符合时
System.out.println("账号或者密码输入不正确");
}
conn.close();
}
最后的结果也都是一样的


注册
使用prepareStatement语句,往数据库里添加。好处是不受特殊字符的影响。
public static void main2(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
System.out.println("账号:");
String zh = sc.nextLine();
System.out.println("密码:");
String mm = sc.nextLine();
System.out.println("名称:");
String xm = sc.nextLine();
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK","root","");
String sql = "insert into xs values(?,?,?)";
PreparedStatement pre = conn.prepareStatement(sql);
pre.setString(1, zh);
pre.setString(2, mm);
pre.setString(3, xm);
pre.executeUpdate();
conn.close();
}
执行:

添加进数据库里了

JDBC 制作简单的登录验证的更多相关文章
- Web开发技术---简单的登录验证
制作一个APP或系统最基础的是登录界面,下面通过一个简单的登录注册界面的程序,来熟练掌握Web开发的技术. 一.知识点: 1.在网页界面获取用户的输入信息 2.标签的基本应用 3.用户输入结果的错误提 ...
- struts-spring-mybatis实现最简单的登录验证
1.导入项目相关的jar包 2.建立项目结构 3.配置文件的配置及代码 db.properties: jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:my ...
- Servlet课程0425(四) Servlet实现简单用户登录验证
Login.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; public class ...
- jdbc+servlet+jsp实现登录验证
基础知识准备:sql的增删改查. 新增:insert into 表名称(字段名.....)values(字段名....). 修改:update 表名称 set 字段名="新值" ...
- SSM框架完成Ajax简单用户登录验证
一.前端JSP <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...
- AJAX - 实现一个简单的登录验证
/**Ajax 编写流程 * 1.创建 XHR (XMLHttpRequest)对象 var xmlHttpReq = false; // var xmlHttpReq = ""; ...
- 简单的登录验证小程序_python
一.要求 输入用户名密码,验证成功之后显示欢迎信息,输错三次后锁定. 程序: #!/usr/bin/env python# _*_ coding:utf-8 _*_#Author:chenxz #将黑 ...
- EditText制作简单的登录界面
EditText与之前的TextView和Button的用法大体相同,用法案例如下: activity_edit_text.xml: <?xml version="1.0" ...
- DJango简单的后台定义登录验证
第一步创建一个新的项目 APPLICATIONNAME : 表示创建子项目 第二步:找到主项目的url 进行 include 分发式url 简单的说,就是将app里边的url放在这里. 这里也可以找到 ...
随机推荐
- Windos环境用Nginx配置反向代理和负载均衡
Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...
- BPM嵌入式流程解决方案分享
一.需求分析由于企业业务的独特性或者企业高层独特的管理思想,很多客户选择了自行开发业务系统的方式来实现独有的竞争力. 这类信息系统通常经过了多年的开发,伴随着企业的发展一直在不断优化,与企业的业务非常 ...
- Android Weekly Notes Issue #237
Android Weekly Issue #237 December 25th, 2016 Android Weekly Issue #237 这是本年的最后一篇issue, 感谢大家. 本期内容包括 ...
- Atitit.研发团队与公司绩效管理的原理概论的attilax总结
Atitit.研发团队与公司绩效管理的原理概论的attilax总结 1. 四个理念 1 1.1. 绩效管理的三个目的.四个环节.五个关键2 1.2. 绩效目标smart2 2. 考核对象2 3. 绩效 ...
- 使用apache自带日志分割模块rotatelogs,分割日志
rotatelogs 是 Apache 2.2 中自带的管道日志程序,参数如下(参见:http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/rotat ...
- VisualStudio 2015 开启IIS Express可以调试X64项目
现在项目开发时总有时需要在X64下开发,这样我们就需要IIS Express中调试.不要总是放在IIS中,在Attach这样好慢. 如果不设置直接调试X64的程序,我们有可能会受到以下类似的错误 ...
- ASP.NET Web API Model-ValueProvider
ASP.NET Web API Model-ValueProvider 前言 前面一篇讲解了Model元数据,Model元数据是在Model绑定中很重要的一部分,只是Model绑定中涉及的知识点比较多 ...
- JS设计模式(二)
5.迭代器模式 先实现一个简单的迭代器,类似于JQ里的$.each方法. var each = function (arr, callback) { for (var i = 0, l = arr.l ...
- Java命名规范
驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写. 每个单词的第一个字母都大写,来得到大驼峰式命名. 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名. 为避免歧 ...
- EF Core 数据库迁移(Migration)
工具与环境介绍 1.开发环境为vs 2015 2.mysql EF Core支持采用 Pomelo.EntityFrameworkCore.MySql 源代码地址(https://github. ...