两种方法:

一、直接拼接到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 制作简单的登录验证的更多相关文章

  1. Web开发技术---简单的登录验证

    制作一个APP或系统最基础的是登录界面,下面通过一个简单的登录注册界面的程序,来熟练掌握Web开发的技术. 一.知识点: 1.在网页界面获取用户的输入信息 2.标签的基本应用 3.用户输入结果的错误提 ...

  2. struts-spring-mybatis实现最简单的登录验证

    1.导入项目相关的jar包 2.建立项目结构 3.配置文件的配置及代码 db.properties: jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:my ...

  3. Servlet课程0425(四) Servlet实现简单用户登录验证

    Login.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; public class ...

  4. jdbc+servlet+jsp实现登录验证

    基础知识准备:sql的增删改查. 新增:insert into 表名称(字段名.....)values(字段名....). 修改:update 表名称 set  字段名="新值" ...

  5. SSM框架完成Ajax简单用户登录验证

    一.前端JSP <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...

  6. AJAX - 实现一个简单的登录验证

    /**Ajax 编写流程 * 1.创建 XHR (XMLHttpRequest)对象 var xmlHttpReq = false; // var xmlHttpReq = ""; ...

  7. 简单的登录验证小程序_python

    一.要求 输入用户名密码,验证成功之后显示欢迎信息,输错三次后锁定. 程序: #!/usr/bin/env python# _*_ coding:utf-8 _*_#Author:chenxz #将黑 ...

  8. EditText制作简单的登录界面

    EditText与之前的TextView和Button的用法大体相同,用法案例如下: activity_edit_text.xml: <?xml version="1.0" ...

  9. DJango简单的后台定义登录验证

    第一步创建一个新的项目 APPLICATIONNAME : 表示创建子项目 第二步:找到主项目的url 进行 include 分发式url 简单的说,就是将app里边的url放在这里. 这里也可以找到 ...

随机推荐

  1. 如何在Elasticsearch中安装中文分词器(IK+pinyin)

    如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...

  2. jquery-treegrid树状表格的使用(.Net平台)

    上一篇介绍了DataTable,这一篇在DT的基础之上再使用jquery的一款插件:treegrid,官网地址:http://maxazan.github.io/jquery-treegrid/ 一. ...

  3. 热修复-Tinker

    微信开源,真是喜出望外,必须要去看看啊,比起nuwa来微信好很多,而且github上也有专门的官方文档说明,还有很多资料查询 参考地址:https://github.com/Tencent/tinke ...

  4. 通过squid 禁止访问/只允许访问指定 网址

    安装 squid yum install squid -y 备份squid.conf cp  squid.conf  squid.conf-list vi  squid.conf 输入: acl de ...

  5. git &github 快速入门

    本节内容 github介绍 安装 仓库创建& 提交代码 代码回滚 工作区和暂存区 撤销修改 删除操作 远程仓库 分支管理 多人协作 github使用 忽略特殊文件.gitignore 1.gi ...

  6. PHP 数组浅析

    PHP的数组具有如下特点:1.数组初始化时无需指定长度:2.数组中的元素无需相同类型:3.数组的长度可变4.可使用var_dump(参数)或者print_r(  参数) 函数查看数组变量.5.数组内的 ...

  7. mono for android学习过程系列教程(1)

    直接进入主题,关于mono for android的学习,首先配置好环境,如何配置环境,度娘谷歌一大堆,记得使用破解版. 我自己是百度“黑马四期”传智播客的视频,里面有破解版开发环境的软件. 今天直接 ...

  8. Mono 3.8发布:性能进一步改进,可伸缩性提升

    9月4日,Mono 3.8.0发布了.该版本的运行时带来了一些性能和可伸缩性方面的改进,同时完成了向Windows平台的移植. Mono遵循Gnome和Linux内核的版本编号策略,这意味着3.8是3 ...

  9. mysql 列名中 包含斜杠或者空格的处理方式

    今天客户那边遇到了一个比较奇葩的问题跑来问我,这个问题比较冷门,所以特别记录下. 问题描述 数据库的字段存在斜杠或者空格的时候,怎么用sql进行insert或者select操作. 问题解答 对于这种特 ...

  10. Java中isAssignableFrom的用法

    class1.isAssignableFrom(class2) 判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口.如果是则返回 tru ...