今天重新学习了JDBC连接数据库,使用的数据库是Oracle,在运行前已经手动建立了一张t_user表,建表信息如下:

create table t_user(
card_id number(19) primary key,
password varchar2(6),
balance number(20,3),
phone varchar2(12)
);

考虑到手机号不会参加数值运算,所以将其类型设定为varchar

Java方面主要为了将来在实际开发中可能会用到,所以尽可能写的比较完善,用户登录部分和后台插入部分基本已经写好

方法写得比较集中,实际开发中可能会把获取用户输入值的部分单独写在主方法里

查询方法和插入方法也会做成带布尔类型返回值的方法

import java.util.*;
import java.sql.*; public class User {
public static void main(String[] args) throws Exception {
// login();
add();
} public static void login() throws Exception{ //0.获取用户输入值
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
System.out.println("Please enter card id: ");
String c = input.next();
System.out.println("Please enter password: ");
String p = input.next(); String pass = new String(); //1.加载驱动
Class.forName("oracle.jdbc.OracleDriver"); //2.获得数据库连接
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
String user = "hr";
String password = "hr";
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn); //3.准备SQL语句
String insertSQL = "select * from t_accounts "
+ "where card_id = " + c;
System.out.println(insertSQL); //4.发送SQL语句
Statement stm = conn.createStatement();//获得发送SQL的对象
ResultSet rs = stm.executeQuery(insertSQL);//发送查询SQL //5.处理ResultSet结果集
while(rs.next()){
//循环的指向所有行数据
String passw = rs.getString("password");
pass = passw;
} //6.释放资源
rs.close();
stm.close();
conn.close(); System.out.println(pass); //7.判断用户输入值是否正确并作输出
if(Integer.parseInt(pass) == Integer.parseInt(p))
System.out.println("Login success");
else
System.out.println("Login fail, please try again");
} public static void add() throws Exception{ //0.获取用户输入值
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
System.out.println("Please enter card id: ");
String c = input.next();
System.out.println("Please enter password: ");
String p = input.next();
System.out.println("Please enter balance: ");
double b = input.nextDouble();
System.out.println("Please enter phone: ");
String ph = input.next(); //1.加载驱动
Class.forName("oracle.jdbc.OracleDriver");
//2.获得数据库连接
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
String user = "hr";
String password = "hr";
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
//3.准备SQL语句
String insertSQL = "insert into t_accounts(card_id, password, balance, phoe) values("+c+", '"+p+"', "+b+", '"+ph+"')";
//4.发送SQL语句
Statement stm = conn.createStatement();//获得发送SQL的对象
int i = stm.executeUpdate(insertSQL);//发送SQl(发送增删改)
System.out.println(i); //5.释放资源
stm.close();
conn.close(); //6.判断修改是否成功
if(i != 0)
System.out.println("Add success");
else
System.out.println("Add fail");
}
}

控制台输出:

Please enter card id:
100003
Please enter password:
123456
Please enter balance:
100000
Please enter phone:
13007516785
oracle.jdbc.driver.T4CConnection@6438a396
1
Add success

JDBC连接数据库演示的更多相关文章

  1. JDBC连接数据库演示案例

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  2. JDBC连接数据库(PreparedStatement)

    PreparedStatement是在数据库端防止SQL注入漏洞的SQL方法这里演示了一些基本使用方法同样使用Oracle数据库,之前已经手动建立了一张t_account表数据库代码参见上一篇< ...

  3. Java中JDBC连接数据库代码和步骤详解总结

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤:         1.加载JDBC驱动程序:         在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Jav ...

  4. JDBC连接数据库概述

    直接介绍JDBC连接数据库的流程及其原理 创建一个以JDBC连接数据库的程序,包含7个步骤 1.加载JDBC数据库驱动 在连接数据库之前,首先要加载想要连接的数据库的驱动,就是数据库厂商提供的jar包 ...

  5. JDBC连接数据库经验技巧(转)

    Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成.JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序.然而各个开 ...

  6. Eclipse通过jdbc连接数据库制作简单登陆界面

    一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...

  7. 🈲Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】

    一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...

  8. 转 JDBC连接数据库(二)——连接池

    https://www.cnblogs.com/xiaotiaosi/p/6398371.html 数据库保持长连接,不过一直都是idle,除非有用户激活连接,这样后果是无法删除用户,但是不影响数据库 ...

  9. 【Mybatis源码解析】- JDBC连接数据库的原理和操作

    JDBC连接数据库的原理和操作 JDBC即Java DataBase Connectivity,java数据库连接:JDBC 提供的API可以让JAVA通过API方式访问关系型数据库,执行SQL语句, ...

随机推荐

  1. linux 命令行启动虚拟机

    vmrun -T ws start /root/vmware/Windows\ Server\ 2012/Windows\ Server\ 2012.vmx nogui

  2. Bootstrap <基础二十八>列表组

    列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...

  3. Asp.net MVC路由机制

    C:/Windows/Microsoft.NET/Framwork/v4.0.30319/config/web.config-> httpModules-> System.Web.Rout ...

  4. 利用HttpURLConnection发送请求

    HttpURLConnection: 每个 HttpURLConnection实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络.请求后在 HttpURLConne ...

  5. 如何在ashx页面获取Session值

    [转]   在一般事务处理页面,可以轻松的得到 Request,Response对象,从而进行相应的操作,如下: HttpRequest Request = context.Request; Http ...

  6. Ubuntu的多文件编译以及c语言的数组、函数

    闲言少叙,直接切入主题. 一.Linux下的多文件编译(Ubuntu系统). 对于小程序来说,往往一个.c文件就足够了,里面包含了各种主函数和功能函数,以及函数的声明等等.但是这样的弊端主要有两点,一 ...

  7. 浅谈HTTP中Get与Post的区别(转)

    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...

  8. 例子:Background Audio Streamer Sample

    The Background Audio Streamer sample demonstrates how to create an app that uses a MediaStreamSource ...

  9. Australian troops to the fight against Islamic State militants.

    He arrived in Arnhem Land on Sunday, honouring an election promise to spend a week every year in an ...

  10. 线程的2个ID

    我们知道进程ID是操作系统调度的最小单位,有时候根据业务的需要,我们会使用到多线程技术,当创建了多个线程时,也会有一个线程ID,那这个线程ID和进程ID有什么不一样吗? 其中,线程组的线程ID是属于N ...