JDBC连接数据库演示
今天重新学习了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连接数据库演示的更多相关文章
- JDBC连接数据库演示案例
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
- JDBC连接数据库(PreparedStatement)
PreparedStatement是在数据库端防止SQL注入漏洞的SQL方法这里演示了一些基本使用方法同样使用Oracle数据库,之前已经手动建立了一张t_account表数据库代码参见上一篇< ...
- Java中JDBC连接数据库代码和步骤详解总结
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Jav ...
- JDBC连接数据库概述
直接介绍JDBC连接数据库的流程及其原理 创建一个以JDBC连接数据库的程序,包含7个步骤 1.加载JDBC数据库驱动 在连接数据库之前,首先要加载想要连接的数据库的驱动,就是数据库厂商提供的jar包 ...
- JDBC连接数据库经验技巧(转)
Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成.JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序.然而各个开 ...
- Eclipse通过jdbc连接数据库制作简单登陆界面
一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...
- 🈲Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】
一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...
- 转 JDBC连接数据库(二)——连接池
https://www.cnblogs.com/xiaotiaosi/p/6398371.html 数据库保持长连接,不过一直都是idle,除非有用户激活连接,这样后果是无法删除用户,但是不影响数据库 ...
- 【Mybatis源码解析】- JDBC连接数据库的原理和操作
JDBC连接数据库的原理和操作 JDBC即Java DataBase Connectivity,java数据库连接:JDBC 提供的API可以让JAVA通过API方式访问关系型数据库,执行SQL语句, ...
随机推荐
- 【图像处理】【SEED-VPM】2.接口
—————————————————————————————————————————————————————————————— 对比 ①最好是HDMI: ②分量也是高清的范围,得是比点对点的HDMI低一 ...
- Mybatis中#{}和${}传参的区别
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111&qu ...
- OC基础--对象做参数在方法间传递
剧情描述: 美国大兵抗把汉阳造 拿着5个弹夹(每个弹夹5发子弹) 带着弟兄们干架 子弹打完了就求救 类: 士兵: 属性: 姓名(_name) 身高(_height) 体重(_weight) 行为: 开 ...
- 关于ZendFramework环境的配置
在运用PHP进行网站建设的时候,使用框架能够很好的提高编程效率,PHP语言的框架很多,现在普遍使用的是由Zend公司开发的ZendFramework框架,本篇文章是关于ZendFramework的运行 ...
- 在docker容器中安装和使用,linux版的powershell
powershell 传教士 原创文章.始于 2016-09-18 ,2016-10-27修改powershell docker官网.允许转载,但必须保留名字和出处,否则追究法律责任 1 在任意版本的 ...
- android studio使用中遇到的问题
旧版和新版切换会报错(点击更正, 不影响程序使用) 2.debug正常, 打包签名程序时候报错 String index out of range: -82 java.lang.StringIndex ...
- php文件上传参考配置与大文件上传
PHP用超级全局变量数组$_FILES来记录文件上传相关信息的,在php文件上传之前,可通过调节php.ini中相关配置指令,来控制上传相关细节. 1.file_uploads=on/off ...
- css3中transition和animation的回调处理
弱鸡最近在准备面试,网上找了一些题,发现一些基础题也完全答不好(┬_┬)看来还是要再接再励啊w(゚Д゚)w 言归正传,今天的主题是CSS3中的动画回调处理,这里动画执行完毕后触发的事件是transit ...
- 界面绚丽的SharePoint仪表盘控件Nevron Gauge for SharePoint 控件详细介绍
Nevron .NET Vision 是一款用于创建独特的.强大的数据表示应用程序的最终控件,它具有超强的数据可视化性能. 整合了Nevron Chart for .NET, Nevron Diagr ...
- hightchart属性(更新中...)
legend:{ layout: 'vertical', //legend中内容垂直放置 align: 'right', //放在图表右边 verticalAlign: 'middle', // ...