Java 查询oracle数据库入门教程 数据在控制台输出

说明:从控制台输入用户名和密码,然后从数据库中查询该用户是否存在,如果存在,
将数据信息保存在User类的对象中,返回该类的对象控制台输出欢迎登录,如果不存在,控制台输出登录失败
前提:已建好一张数据库表,如下图所示:
package com.lanou3g.
import java.sql.D
public class User {
private int
public User() {
public User(int id, String name, String password, String email, Date birthday) {
this.name =
this.password =
this.email =
this.birthday =
public int getId() {
public void setId(int id) {
public String getName() {
public void setName(String name) {
this.name =
public String getPassword() {
public void setPassword(String password) {
this.password =
public String getEmail() {
public void setEmail(String email) {
this.email =
public Date getBirthday() {
public void setBirthday(Date birthday) {
this.birthday =
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password + ", email=" + email + ", birthday="
+ birthday + "]";
package com.lanou3g.jdbc
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
public class Demo07 {
Class.forName("com.mysql.jdbc.Driver")
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
throw new RuntimeException("驱动加载失败")
public static User getUser(String name1,String password1) {
User user = null
String url = "jdbc:mysql://localhost:3306/myjdbc"
Connection connection = DriverManager.getConnection(url,"root","123456")
Statement statement = connection.createStatement()
String sql = "select * from users where name = '"+name1+"' "
+ "and password = '"+password1+"'"
ResultSet resultSet = statement.executeQuery(sql)
if(resultSet.next()) {
user = new User()
user.setId(resultSet.getInt("id"))
user.setName(resultSet.getString("name"))
user.setPassword(resultSet.getString("password"))
user.setEmail(resultSet.getString("email"))
user.setBirthday(resultSet.getDate("birthday"))
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace()
return user
测试登录类
package com.lanou3g.jdbc
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException
import java.sql.Statement
import java.util.Scanner
public class Test {
public static void main(String[] args) {
System.out.println("请输入用户名")
Scanner scanner = new Scanner(System.in)
String name = scanner.nextLine()
System.out.println("请输入密码")
Scanner scanner2 = new Scanner(System.in)
String password = scanner.nextLine()
User user = Demo07.getUser(name, password)
if(user == null) {
System.out.println("登录失败")
System.out.println("欢迎登录")
测试结果截图
当密码输入为test'or'1'='1时,无论输入什么用户名,都会成功登录进去
原因:打印sql语句 如下图所示
select * from users where name = 'test' and password = 'test'or'1'='1'
and 优先级高于 or ,无论前面是真是假, '1'='1'永远为真
即select语句返回的是真,所有查询返回的是真,虽然密码错误,任然可以登录进去
用PreparedStatement类来代替Statement类,同时采用占位符?
可以将缺陷完美解决
加强后的代码 其余代码不变
package com.lanou3g.
import java.io.C
import java.sql.C
import java.sql.DriverM
import java.sql.ResultS
import java.sql.SQLE
import java.sql.S
import com.mysql.jdbc.PreparedS
public class Demo07 {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new RuntimeException("驱动加载失败");
static Connection connection = null;
static java.sql.PreparedStatement statement = null;
public static User getUser(String name1,String password1) {
User user = null;
String url = "jdbc:mysql://localhost:3306/myjdbc";
connection = DriverManager.getConnection(url,"root","123456");
String sql = "select * from users where name=? and password=?";
statement = connection.prepareStatement(sql);
statement.setString(1, name1);
statement.setString(2, password1);
System.out.println(sql);
ResultSet resultSet = statement.executeQuery();
if(resultSet.next()) {
user = new User();
user.setId(resultSet.getInt("id"));
user.setName(resultSet.getString("name"));
user.setPassword(resultSet.getString("password"));
user.setEmail(resultSet.getString("email"));
user.setBirthday(resultSet.getDate("birthday"));
} catch (SQLException e) {
e.printStackTrace();
}finally {
if(connection != null) {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
if(statement != null) {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
表中设置ID为主键,且为自增类型的,实现控制台输入数据,插入到数据库中
public class Demo02 {
public static int test1(String name,String password,String email,String birthday) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/myjdbc";
Connection connection = DriverManager.getConnection(url,"root","123456");
String sql = "insert into users (name,password,email,birthday) values (?,?,?,?)";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, "zhangsna");
statement.setString(2,"123");
statement.setString(3, "");
statement.setString(4, "");
int row = statement.executeUpdate();
public class Demo01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = scanner.nextLine();
System.out.println("请输入密码:");
String password = scanner.nextLine();
System.out.println("请输入email:");
String email = scanner.nextLine();
System.out.println("请输入birthday:");
String birthday = scanner.nextLine();
int test1 = Demo02.test1(name, password, email, birthday);
if(test1 & 0) {
System.out.println("注册成功");
System.out.println("注册失败");
Java从控制台输入数据
Java中控制台输入数据主要使用java.util.Scanner类
Scanner介绍:1)从JDK5.0开始,java.util包中增加了Scanner类,
它是一个可以使用正则表达式来解析基...
小白Java求学之路之一:控制台实现用户注册、登录
兜兜转转又回到了重学java的路上,也算是迷途知返吧/(ㄒoㄒ)/~~。
很简单的通过控制执行流程,实现控制台选择用户的注册或者登录。
来,让我们上代码:
import java.util....
Java实现--登录和注册案例(把用户信息存进集合)
登录和注册案例的分析:
我们在完成一个需求时,需要面向对象,我们必须找到能完成某个功能的类,接着调用里面的方法来完成它。而这些类我们要进行分包,在不同包下实现,Java中的分包:
com.edu....
实现用户登录并且在数据库中查找匹配的账号密码
实现一个用户登录,并且在数据库中查找有没有与用户输入的找好密码相同,如果相同的话,
就进入登录成功的页面,如果没有的话,那就说明用户登录的账号不合法,或没有注册.
首先我们要设计一个数据库,包含三...
Java基础学习之集合框架分析和和控制台输入登录注册
一、控制台扫描操作
Scanner:扫描器,用于从控制台扫面数据到内容,属于java.util包下的
需求:实现一个加法操作的函数,加数和被加数必须要键盘动态输入,而不是在代码中直接写p...
Java怎么实现从控制台输入
用整形数组读取字符串:Scanner s = new Scanner(System.in);
int arr[]= new int[10];
for(int i=0;i...
java 从控制台输入密码
如果想从控制台读取用户输入,我们一般用Scanner 类留可以了,但是其输入是可见的,所以Scanner类不适用于从控制台读取密码。Java SE 6 引入了Console类实现这个目的。Java.l...
使用JDBC连接MySQL数据库--典型案例分析(五)----用户名密码验证功能
前几次有网友转载我的博客也声称原创,我实在对这种人很无语耶,我转载其他人的博客从来都是很尊重的,该是转载的就写明了转载,虽然这里没有人去要求,但是这是对只是的一种尊重,对他人的尊重。人与人之间应如此,...
没有更多推荐了,一、使用标准输入串System.in&&//System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字&&//System.in.read()返回一个整数&&//必须初始化&&//int read = 0;&&char read = '0';&&System.out.println("输入数据:");&&try {&&&//read = System.in.read();&&&read = (char) System.in.read();&&}catch(Exception e){&&&e.printStackTrace();&&}&&System.out.println("输入数据:"+read);
二、使用Scanner取得一个字符串或一组数字&&System.out.print("输入");&&Scanner scan = new Scanner(System.in);&&String read = scan.nextLine();&&System.out.println("输入数据:"+read);&
/*在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。*/
三、使用BufferedReader取得含空格的输入
//Scanner取得的输入以space, tab, enter 键为结束符,&&//要想取得包含space在内的输入,可以用java.io.BufferedReader类来实现&&//使用BufferedReader的readLine( )方法&&//必须要处理java.io.IOException异常&&BufferedReader br = new BufferedReader(new InputStreamReader(System.in ));&&//java.io.InputStreamReader继承了Reader类&&String read =&&System.out.print("输入数据:");&&try {&&&read = br.readLine();&&} catch (IOException e) {&&&e.printStackTrace();&&}&&System.out.println("输入数据:"+read);&
阅读(...) 评论()怎么把控制台的输出信息写到文件里 - ITeye问答
现在需求是这样的。
比如从数据库里面读出了一段信息,如username,可以通过System.out.println(username)输出这个username。我现在想把这个username存到文件里面,比如D:/test.txt里面。要怎么做啊?
采纳的答案
首先 日志 log 可以保存文件
然后如果你需要单独保存到一个文件的 话 也可以实现!
就是先生成 一个文件 然后 写入! 典型的 文件读写问题! 需要原代码?
已解决问题
未解决问题(新开发者)
(新开发者)
(新开发者)
(新开发者)
(新开发者)
第三方登录:java 怎么获取控制台的数据并且输出到GUI上_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:726,750贴子:
java 怎么获取控制台的数据并且输出到GUI上收藏
例如,界面上有个查询按钮,点击查询后,在新的界面的文本域中显示查询结果
51CTO学院12年行业品牌,1600万用户选择,中国专业IT技能学习平台,java.java资深大牛授课,0基础从入门到精通,java报名与培训中心.
以前做过,给个参考。为防止格式错乱,以下代码用base64解码一下得到格式良好的代码。aW1wb3J0IG9yZy5qdW5pdC5UZXN0OwoKaW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuTGlzdDsKCi8qKgogKiDlkb3ku6TooYzovoXliqnlt6XlhbcKICogQGF1dGhvciBqemh1bmcKICovCnB1YmxpYyBjbGFzcyBDb21tYW5kZXIgewoKICAgIEBUZXN0CiAgICBwdWJsaWMgdm9pZCB0ZXN0KCkgewogICAgICAgIExpc3Q8U3RyaW5nPiBjbWRzID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7CiAgICAgICAgY21kcy5hZGQoInBpbmcgMTI3LjAuMC4xIik7CiAgICAgICAgY21kcy5hZGQoImlwY29uZmlnIC9hbGwiKTsKICAgICAgICBjbWRzLmFkZCgiYWRiIGRldmljZXMiKTsKICAgICAgICAvKmNtZHMuYWRkKCJhZGIgc2hlbGwgbHMgL3N5c3RlbSIpOwogICAgICAgIGNtZHMuYWRkKCJhZGIgc2hlbGwgcG0gbGlzdCBwYWNrYWdlcyIpOyovCgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY21kcy5zaXplKCk7IGkrKykgewogICAgICAgICAgICAgICAgZXhlY3V0ZShjbWRzLmdldChpKSk7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CiAgICAgICAgICAgIH0KCiAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewogICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgZXhlY3V0ZShTdHJpbmcgY21kKSB0aHJvd3MgSU9FeGNlcHRpb24gewogICAgICAgIFByb2Nlc3MgcHJvY2VzcyA9IFJ1bnRpbWUuZ2V0UnVudGltZSgpLmV4ZWMoY21kKTsKICAgICAgICBJbnB1dFN0cmVhbSBpblN0cmVhbSA9IHByb2Nlc3MuZ2V0SW5wdXRTdHJlYW0oKTsKICAgICAgICBJbnB1dFN0cmVhbSBlcnJTdHJlYW0gPSBwcm9jZXNzLmdldEVycm9yU3RyZWFtKCk7CiAgICAgICAgU2VxdWVuY2VJbnB1dFN0cmVhbSBzZXF1ZW5jZUlzID0gbmV3IFNlcXVlbmNlSW5wdXRTdHJlYW0oaW5TdHJlYW0sIGVyclN0cmVhbSk7CiAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBidWZTdHJlYW0gPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShzZXF1ZW5jZUlzKTsKICAgICAgICBSZWFkZXIgcmVhZGVyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGJ1ZlN0cmVhbSwgZ2V0RGVmYXVsdEVuY29kaW5nKCkpOwogICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJ1ZlJlYWRlciA9IG5ldyBCdWZmZXJlZFJlYWRlcihyZWFkZXIpOwogICAgICAgIFN0cmluZyBsaW5lOwogICAgICAgIHdoaWxlICgobGluZSA9IGJ1ZlJlYWRlci5yZWFkTGluZSgpKSAhPSBudWxsKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsaW5lKTsKICAgICAgICB9CiAgICAgICAgaW5TdHJlYW0uY2xvc2UoKTsKICAgICAgICBlcnJTdHJlYW0uY2xvc2UoKTsKICAgICAgICBwcm9jZXNzLmRlc3Ryb3koKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREZWZhdWx0RW5jb2RpbmcoKSB7CiAgICAgICAgaWYgKGdldE9TKCkudHJpbSgpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgid2luIikpIHsKICAgICAgICAgICAgcmV0dXJuICJHQksiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAiVVRGLTgiOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRPUygpIHsKICAgICAgICBTdHJpbmcgb3MgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoIm9zLm5hbWUiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ob3MpOwogICAgICAgIHJldHVybiBvczsKICAgIH0KfQ==
登录百度帐号

我要回帖

更多关于 oracle数据库基本语句 的文章

 

随机推荐