Java不走弯路教程(3.用户验证与文件内容查询)
3.用户验证与文件内容查询
在上一章中,我们完成了对指定文件内容的输出操作。
我们现在有如下格式的文件product.db
id,product_name,product_detail
1,notebook,mac notebook
2,fruit,apple
我们想输出此文件的内容,可以把product.db放入c:\work\001下,然后运行
java main.MyNotepad product.db
但是,这个文件为企业的机密文件,不希望所有人都能查看到。于是,首先想到的就是加入用户名密码的校验功能。
后续章节中将不再使用MyNotepad.java
我们在MyNotepad.java所在的目录下建立MyDataBase.java,内容如下:
符号//后面的内容为注释内容,便于程序的阅读,程序编译运行时将自动忽略注释内容。
其他的注释规则请大家自行查阅。
修改程序,能接受传入的代码,验证通过后再输出文件内容:
调用方法为:java main.MyDataBase product.db root 123
其中root为用户名,123为密码

if else 可以理解为如果,否则
其中if语句括号中的条件只能有两种值:真,假。即true,false
符号&&表示 并且关系,符号 ||表示 或者关系
对于String类型的比较用equals方法,基本类型的比较用两个等于号==,若相同则为true,否则为false
上述语句可以理解为
如果 (用户名等于"root" 并且 密码等于"123"){
输出文件内容;
}否则{
输出"Access Denied."
}
对于并且,或者的逻辑运算规则如下:
对于A并且B,只有在A和B都为true的时候,结果为true。否则结果为false;
对于A或者B,只要A,B有一个为true,结果就为true,否则为false;
例:
true && true == true
true && false == false
false && true == false
false && false == false
true || true == true
true || false == true
false || true == true
false || false == false
编译后运行:java main.MyDataBase product.db root 123
输出:文件内容
运行:java main.MyDataBase product.db root xxx
输出:Access Denied.


需求变更:我想在验证用户通过后,输入SQL语句来查询文件,并且输入exit来退出程序。
效果如下:
c:\work\001>java main.MyDataBase root 123
Login OK, Please intput SQL to query, or type exit to exit.
mydb>select * from product
文件内容
mydb>exit
c:\work\001>
修改程序如下:

编译运行。
我在MyUtil.java中增加了下面三个方法:
public static void print(String message); //输出传入的字符串,不换行。
public static String readln(); //读取DOS中输入的一行字符串。
public static String getFileContentBySql(String sql); //根据传入的SQL查询文件(目前只支持select xxx from xxx where xxx=xxx格式)
while为循环控制语句,满足括号内条件,则进入循环体。
其中break语句退出循环体,continue语句返回到循环体头部。
总结
本章中我们学习了if,while语句,和数组的读取。
请大家自己完成if,while的学习和switch,for等流程控制语句的用法,以及一维数组,二维数组的创建和读取。
为什么要自己学?
Java的任何单独的知识点,大家用很短的时间都可以很快自学掌握,所以这部分没有必要花时间做逐一的介绍。
Java学习的最大困难在于知识点太多,太散,不知道核心在哪,怎么用。
所以本教程的目的是解决上述问题,用一个简单的例子不断扩展,进而达到主干分明的学习目的,同时培养了大家的自学能力和对主干的深化认识。
从而达到对自己的路有个明确的把握和在主干的基础上不断的适应新环境的学习能力。
版权声明:本教程版权归java123.vip所有,禁止任何形式的转载与引用。
Java不走弯路教程(3.用户验证与文件内容查询)的更多相关文章
- 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4
以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...
- Java不走弯路教程(2.Hello,Java!)
2.Hello,Java! 欢迎来到Java的世界,在上一章,我们已经完成了DOS的基本操作学习和Java的环境搭建,在本章中我们Java来完成一个简单的DOS程序. 2.1 Hello,Java! ...
- 多Excel文件内容查询工具。
多Excel文件内容查询工具. 告别繁琐重复的体力劳动,一分钟干完一天的活. 码云 github 下载 当需要在多个Excel表格中查询需要的信息是,一个文件一个文件的去查询非常麻烦. 虽然有其他方法 ...
- Java不走弯路教程(4.Client-Server模式(1)-Server)
4.Client-Server模式(1)-Server 在上一章中,我们完成了MyDataBase.java的编写,类似于一个简单的数据库功能,提供了用户验证,查询操作. 在本章中,我们将继续扩展这个 ...
- Java不走弯路教程(1.环境搭建)
1.环境搭建在开始写第一个Java程序之前,我们需要做一些简单的准备工作. 1.1 还记得DOS吗 我们可以通过图形界面来操作我们的电脑.但作为程序员,你首先需要学会用命令行的方式来操作电脑,因为不是 ...
- Java基础教程:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)
一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...
- Java实现动态修改Jar包内文件内容
import java.io.*; import java.util.Enumeration; import java.util.LinkedList; import java.util.List; ...
- Java不走弯路教程(5.Client-Server模式(2)-Client)
5.Client-Server模式(2)-Client 在上一章,我们完成一个简单的数据库服务器,并在客户端用telnet方式成功进行通信. 本章将用Java实现客户端程序,来代替telnet. 先看 ...
随机推荐
- EOJ3536 求蛇形矩阵每一行的和---找规律
题目链接: https://acm.ecnu.edu.cn/problem/3536/ 题目大意: 求蛇形矩阵的每一行的和,数据范围n<=200000. 思路: 由于n数据较大,所以感觉应该是需 ...
- SVN上传项目步骤
1.svn上传项目 首先选中父工程 ,右键选中Team的share project 2.share完再选中SVN 3.选中项目 一个一个share project 4.
- html2canvas 实现dashed虚线边框
html2canvas是一个将html元素生成canvas的库,绘制的canvas大部分样式和CSS一致.比如截止1.0.0-alpha.12,虚线边框依然绘制为实线,border-collapse依 ...
- 40叔:自学的伙伴推荐看的PHP视频和书藉
记录一下我的学习编程经历,在自学的路上,看了不少的断断续续的看了不少的视频,现在只会一点PHP增删改查. 同样迷的有没有? 要自己用原生的开发个CMS 或者BBS,ask 系统好像还差的远. 所以回头 ...
- 初始Spring MVC——练手小项目
初始Spring MVC 前几天开始了我的spring学习之旅,由于之前使用过MVC模式来做项目,所以我先下手的是 Spring MVC,做个练手项目,非常简单 项目介绍: 用户输入信息 -> ...
- [HEOI2015]兔子与樱花
Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接 ...
- bzoj 1058: [ZJOI2007]报表统计
Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工 作,作为她的生日礼物之一.经过仔细观察,小Q发现统计一张报表实际上是维护一个 ...
- [BZOJ]4162: shlw loves matrix II
Time Limit: 30 Sec Memory Limit: 128 MB Description 给定矩阵 M,请计算 M^n,并将其中每一个元素对 1000000007 取模输出. Inpu ...
- Fabrik – 在浏览器中协作构建,可视化,设计神经网络
Fabrik是一个在线协作平台,通过简单的拖放界面来构建,可视化和训练深度学习模型. 它允许研究人员使用Web GUI协同开发和调试模型,该GUI支持导入,编辑和导出广泛流行的框架(如Caffe,Ke ...
- python2.7练习小例子(一)
1)题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去掉不满足条件的 ...