//User 用户的基本信息,也是USERINFO表中的3个列

package 登陆判断;

public class User {

private String name;

private String loginname;

private String loginpsw;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getLoginname() {

return loginname;

}

public void setLoginname(String loginname) {

this.loginname = loginname;

}

public String getLoginpsw() {

return loginpsw;

}

public void setLoginpsw(String loginpsw) {

this.loginpsw = loginpsw;

}

}//用于注册和登陆的小小代码块

package 登陆判断;

import java.util.Scanner;

public class In {

public static User getUser(){

User u = new User();

Scanner sc = new Scanner(System.in);

System.out.println("请输入登陆名");

u.setLoginname(sc.nextLine());

System.out.println("请输入密码");

u.setLoginpsw(sc.nextLine());

return u;

}

public static User registerUser(){

User u = new User();

Scanner sc = new Scanner(System.in);

System.out.println("请注册用户名名");

u.setName(sc.nextLine());

System.out.println("请注册登陆名");

u.setLoginname(sc.nextLine());

System.out.println("请注册密码");

u.setLoginpsw(sc.nextLine());

return u;

}

}

//登陆时的检查,判断登陆名和密码是否正确,正确则返回 用户名

package 登陆判断;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class Check {

public static void checkUser(User u)

{

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

String url = "jdbc:oracle:thin:@localhost:1521:orcl";

String user = "scott";

String password = "tiger";

Connection conn = null;

ResultSet rs = null;

PreparedStatement pst = null;

String sql = "Select name from USERINFO where loginname = ? and loginpsw = ? ";

try {

conn = DriverManager.getConnection(url, user, password);

pst = conn.prepareStatement(sql);

pst.setString(1, u.getLoginname());

pst.setString(2,u.getLoginpsw());

rs = pst.executeQuery();

while(rs.next()){

u.setName(rs.getString(1));

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

rs.close();

pst.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(u.getName() == null || u.getName().isEmpty()){

System.out.println("登陆失败");

}else{

System.out.println("欢迎"+u.getName()+"登陆");

}

}

}

//注册界面,要判断 登陆名是否有重复,有重复则注册失败。有点小疑问,已用注释标出来

package 登陆判断;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class Register {

public static void registUser(User u){

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

String url = "jdbc:oracle:thin:@localhost:1521:orcl";

String user = "scott";

String password = "tiger";

Connection conn = null;

String sql = "Insert Into USERINFO values(?,?,?)";

PreparedStatement pst = null;

//判断登陆名是否已经存在

Statement s = null;

ResultSet rs = null;

String sql_ck = "Select LOGINNAME FROM USERINFO";

try {

conn = DriverManager.getConnection(url, user, password);

pst = conn.prepareStatement(sql);

pst.setString(1, u.getName());

pst.setString(2, u.getLoginname());

pst.setString(3, u.getLoginpsw());

//判断登陆名是否已经存在

s = conn.createStatement();

rs = s.executeQuery(sql_ck);

while(rs.next()){//为什么用 rs.getString(2)会提示 无效的索引呢

if( rs.getString("LOGINNAME").equals(u.getLoginname()) ){

System.out.println("登陆名已经存在,注册失败");

break;

}else{

pst.executeUpdate();

System.out.println("注册成功");

break;

}

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

rs.close();

pst.close();

s.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

//main界面//

//数据库中表的结构式这样

//name(用户名,用于显示),

//loginname(登录名,即登陆时输入的ID)

//loginpsw(登陆时输入的密码)

package 登陆判断;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

int chos = 0;

Scanner sc = new Scanner(System.in);

System.out.println("\t\t登陆请按1\t\t注册请按2");

chos = sc.nextInt();

switch(chos){

case 1: Check.checkUser(In.getUser());break;

case 2: Register.registUser(In.registerUser());break;

default: System.out.println("请输入正确的选择");break;

}

}

}

怎么实现java和数据库的链接_JAVA简单链接Oracle数据库,实现注册和登陆的功能相关推荐

  1. 如何将excel表导入oracle数据库,如何将EXCEL表导入ORACLE数据库中?【转】

    来源:https://zhidao.baidu.com/question/383828330.html?qbl=relate_question_2&word=excel%20%B1%ED%CA ...

  2. oracle数据库索引介绍,SQL Server和Oracle数据库索引介绍

    SQL Server和Oracle数据库索引介绍 SQL Server 和 Oracle 数据库索引介绍1 SQL Server 中的索引 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行 ...

  3. oracle如何导入excel数据库文件,如何将excel导入oracle数据库的教程

    在Excel中录入好数据以后就需要导入到oracle数据库,或许有些朋友不知道该如何做.下面是学习啦小编带来的关于如何将excel导入oracle数据库的教程,欢迎阅读! 如何将excel导入orac ...

  4. java oracle数据备份_Java备份还原Oracle数据库

    Java备份还原Oracle数据库,不知道还有没好点的方法 希望有的也能提供下方法或者代码. Java备份还原Oracle数据库,,不知道还有没好点的方法 希望有的也能提供下方法或者代码. packa ...

  5. java操作oracle数据_Java jdbc操作oracle数据库的两种方式

    本文由广州疯狂软件java培训分享: 第一种应该是比较古老的方法了. Windows下采用JDBC-ODBC Bridge连接oracle数据库 1. 安装oracle客户端程序,在tnsnames. ...

  6. java和连接数据库的驱动_java中连接各数据库的驱动类和连接方式

    1.JAVA连接ACCESS数据库 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odb ...

  7. java通讯社备份_Java备份还原Oracle数据库

    Java备份还原Oracle数据库,不知道还有没好点的方法 希望有的也能提供下方法或者代码. package com.servlet.util; import java.io.File; import ...

  8. java汽车4S店管理系统myeclipse定制开发oracle数据库网页模式java编程jdbc

    一.源码特点  java汽车4S店管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助 oracle数据库,系统具有完整的源代码和数据库,系统主要采用B/S模式开发. jav ...

  9. java监控表变化_关于实时监控oracle数据库表数据变化的设计与实现

    近期接受项目需求,需要实时处理oracle数据库中表的数据变化,首先想到的是在程序中创建定时器,轮询表.鉴于程序冗余考虑,百度知:oracle数据库java存储过程.Oracle数据库有执行简单jav ...

最新文章

  1. Requirejs加载超时问题的一个解决方法:设置waitSeconds=0
  2. “三农”谋定金融 中国农民丰收节交易会金融服务研讨会
  3. linux 中断奶乱码,科学断奶经历:早中晚三次母乳,一个月内循序渐进自然断奶...
  4. function函数嵌套 matlab_matlab – 当没有使用“end”时,一个.m文件中的多个函数是嵌套的还是本地的...
  5. 出现类似于 ”IDD_DLG_WAIT 未声明的标识符“ 这样的错误怎么办
  6. 746.使用最小花费爬楼梯
  7. html中引入另一个html
  8. 计算机网络工具软件包括,计算机网络常用工具软件
  9. Java+MySQL+swing学生管理系统
  10. Excel学习笔记:P18-COUNTIFS函数与SUMIFS函数
  11. python 降序排列
  12. 当我们谈论Virtual DOM时,我们在说什么——etch源码解读
  13. Zabbix - 微信报警
  14. 中兴笔试题目总结(四)软件工程部分
  15. SQL Server 数据库中数据库表导出为Excel表格
  16. 8家公司笔面试经历-百度-联发科-瑞晟
  17. Walle多渠道打包
  18. 计算机书在书架A上的英语,书架用英语怎么说
  19. 笼统的前端:知识图谱、各分支领域技术要点和推荐工具
  20. 学术造假导致导师自杀,后将这段学术丑闻经历出书贩卖,一年收入上百万......

热门文章

  1. Android官方开发文档Training系列课程中文版:创建自定义View之View的交互
  2. SSM:Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束的解决
  3. Linux下的Tomcat服务器修改server.xml中的8080端口号后出现不能访问首页
  4. 知识图谱最新权威综述论文解读:知识图谱补全部分
  5. Vue项目开发1-项目的创建
  6. Docker日志收集最佳实践
  7. Linq的优点以及注意事项
  8. 分享三个非常适合新手的网站
  9. Fibonacci(求前四位数)
  10. 《深入浅出WPF》学习笔记之深入浅出话属性