JDBC 练习
建立两个表,一个水果表一个用户表。
1.要求输入账号和密码,登陆成功显示欢迎界面,失败提示错误
2.显示选择界面,输入不同的数字,显示不同的内容,,并实现不同的功能,并返回界面
import java.awt.image.Raster;
import java.sql.*;
import java.util.*; public class ZuoYe {
public static String zh; public static void main(String [] args) throws Exception {
Scanner sc=new Scanner(System.in);
System.out.println("请输入账号");
zh=sc.nextLine();
System.out.println("请输入密码");
String mm=sc.nextLine(); Class.forName("com.mysql.jdbc.Driver"); String jdbc="jdbc:mysql://127.0.0.1:3306/mydb";
Connection conn=DriverManager.getConnection(jdbc, "root", "");
String sql="select * from login where UserName=? and Password=? ";
PreparedStatement state= conn.prepareStatement(sql);
state.setString(1, zh);
state.setString(2, mm);
ResultSet re=state.executeQuery(); if(re.next()){
System.out.println("登陆成功!"+re.getString(2)+",欢迎你!");
jm();
}
else{
System.out.println("账号或密码输入错误");
} conn.close();
} public static void jm() throws Exception{
Scanner sc=new Scanner(System.in);
System.out.println("************请选择服务项目***************");
System.out.println("1.显示所有商品");
System.out.println("2.添加商品");
System.out.println("3.购买商品");
System.out.println("4.退出");
String xz=sc.nextLine();
if(xz.equals("1")){
xianshi();
jm();
}
else if(xz.equals("2")){
tianjia();
xianshi();
jm();
}
else if(xz.equals("3")){
goumai();
xianshi();
}
else if(xz.equals("4")){
return;
}
else{
System.out.println("输入有误");
}
} public static void xianshi() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
String jdbc="jdbc:mysql://127.0.0.1:3306/mydb";
Connection conn=DriverManager.getConnection(jdbc, "root", "");
String sql="select * from fruit";
PreparedStatement state=conn.prepareStatement(sql);
ResultSet re=state.executeQuery();
System.out.println("*********************************************");
System.out.println("商品编号"+"\t"+"商品名称"+"\t"+"单价"+"\t"+"原产地"+"\t"+"剩余商品数量");
while(re.next()){
System.out.println(re.getString(1)+"\t"+re.getString(2)+"\t"+re.getDouble(3)+"\t"+re.getString(4)+"\t"+re.getInt(5));
}
System.out.println("*********************************************");
conn.close();
} public static void tianjia() throws Exception{
Scanner sc=new Scanner(System.in);
System.out.println("请输入商品属性:商品编号-商品名称-单价-原产地-添加数量,属性之间用-隔开");
String sp=sc.nextLine();
String [] str=sp.split("-");
double qz=Double.parseDouble(str[2]) ;
int sl=Integer.parseInt(str[4]);
Class.forName("com.mysql.jdbc.Driver");
String jdbc="jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK";
Connection conn=DriverManager.getConnection(jdbc, "root", "");
String sql="insert into fruit values(?,?,?,?,?,NULL)";
PreparedStatement state=conn.prepareStatement(sql);
state.setString(1, str[0]);
state.setString(2, str[1]);
state.setDouble(3, qz);
state.setString(4, str[3]);
state.setInt(5, sl);
state.executeUpdate();
System.out.println("添加成功!!!"); conn.close();
} public static void goumai() throws Exception{
Scanner sc=new Scanner(System.in);
System.out.println("请输入购买的水果种类或代号");
String mz=sc.nextLine();
System.out.println("请输入购买数量");
int sl=Integer.parseInt(sc.nextLine()); Class.forName("com.mysql.jdbc.Driver");
String jdbc="jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK";
Connection conn=DriverManager.getConnection(jdbc,"root","");
conn.setAutoCommit(false); //查询苹果单价
String sql2="select * from fruit where Name=? or Ids=?";
PreparedStatement state=conn.prepareStatement(sql2);
state.setString(1, mz);
state.setString(2, mz);
ResultSet re=state.executeQuery();
re.next();
double zj=re.getDouble(3)*sl;//总价格 //修改商品数量
String sl_sql="update fruit set Numbers=? where Name=? or Ids=?";
PreparedStatement state_sl=conn.prepareStatement(sl_sql);
state_sl.setInt(1, (re.getInt(5)-sl));
state_sl.setString(2, mz);
state_sl.setString(3, mz);
state_sl.executeUpdate(); //修改用户剩余钱数
String sy="update login set Account=Account-? where UserName=?";
PreparedStatement dstate=conn.prepareStatement(sy);
dstate.setDouble(1, zj);
dstate.setString(2, zh);
dstate.executeUpdate(); //最后查询剩余钱数
String zhye="select * from login where UserName=?";
PreparedStatement state_ye=conn.prepareStatement(zhye);
state_ye.setString(1, zh);
ResultSet re1 =state_ye.executeQuery();
re1.next();
System.out.println("购买成功!!!您当前账户余额为"+re1.getDouble(4)+"元");
conn.commit();
conn.close();
} }



JDBC 练习的更多相关文章
- Java数据库连接技术——JDBC
大家好,今天我们学习了Java如何连接数据库.之前学过.net语言的数据库操作,感觉就是一通百通,大同小异. JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力. JDBC API ...
- 玩转spring boot——结合AngularJs和JDBC
参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...
- [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...
- JDBC MySQL 多表关联查询查询
public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver&q ...
- JDBC增加删除修改
一.配置程序--让我们程序能找到数据库的驱动jar包 1.把.jar文件复制到项目中去,整合的时候方便. 2.在eclipse项目右击"构建路径"--"配置构建路径&qu ...
- JDBC简介
jdbc连接数据库的四个对象 DriverManager 驱动类 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 ...
- JDBC Tutorials: Commit or Rollback transaction in finally block
http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...
- FineReport如何用JDBC连接阿里云ADS数据库
在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我们只需要手动将连接ads数据库需要使用到的jar放置到%F ...
- JDBC基础
今天看了看JDBC(Java DataBase Connectivity)总结一下 关于JDBC 加载JDBC驱动 建立数据库连接 创建一个Statement或者PreparedStatement 获 ...
- Spring学习记录(十四)---JDBC基本操作
先看一些定义: 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1.core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJ ...
随机推荐
- 安装angular-cli
最近在学习angular2,并尝试用这个框架来做公司的一个新项目. 终于要开始开发了,等了1个多月. 因为第一次用这个新框架做项目,不太熟悉,就找了angular-cli这个脚手架来搭建项目. 安装了 ...
- Spring配置文件标签报错:The prefix "XXX" for element "XXX:XXX" is not bound. .
例如:The prefix "context" for element "context:annotation-config" is not bound. 这种 ...
- JQuery实现表格的增加行和删除行
利用JQuery实现datatables插件的增加和删除行操作 在学习过程中遇到了这个利用JQuery对表格行的增加和删除,特记录下来以供初学者参考. 下面是主要的代码: <meta http- ...
- 听H3絮叨:何以让天下没有难用的流程
最近朋友圈.网站新闻铺天盖地是"让天下没有难用的流程",有人就要问了,H3 BPM何德何能,为BPM站台,让天下没有难用的流程? 这是一个关于"办公室空想"的故 ...
- xamarin绑定原生库的一些坑
最近一个项目涉及到较多的第三方库的绑定技术,中间遇到了几个坑,记录下来与大家分享 绑定Jar库 monoandroid对原生库的调用都通过Android.Runtime.JNIEnv进行调入(http ...
- Xamarin.Android快速入门
一.准备工作 1.创建一个空的解决方案,并命名为Phoneword 2.右击解决方案 新建->新建项目 并命名为Phoneword_Droid 二.界面 1.打开Resources文件夹-> ...
- ASP.NET MVC 视图(四)
ASP.NET MVC 视图(四) 前言 上篇对于利用IoC框架对视图的实现进行依赖注入,最后还简单的介绍一下自定义的视图辅助器是怎么定义和使用的,对于Razor语法的细节和辅助器的使用下篇会说讲到, ...
- 使用xUnit,EF,Effort和ABP进行单元测试(C#)
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 介绍 创建测试项目 准备测试基类 创建第一个测试 测试异常 在测试中使用仓储 测试异步方法 小结 介绍 在这篇博客中,我 ...
- ABP源码分析三十八: ABP.Web.Api.OData
如果对OData不熟悉的话可参考OData的初步认识一文以获取OData的一些初步知识. API.Odata 模块唯一用处就是提供了一个泛型版本的ODataController,实现了Controll ...
- 使用nwjs开发桌面应用之Hello,World!
今天发现原来JavaScript也可以用来开发桌面应用程序,顿时有一种很牛逼的感觉,于是马上就开始了Hello,World!,感受一下JavaScript的强大. 可以用来开发桌面应用的js框架有三种 ...