如何用idea数据库编写快递e站
作者:今晚不想睡沙发 发布时间:2024-01-23 08:43:56
标签:idea,数据库,快递e站
目录
一、IDEA如何连接数据库
第一种方法:直接在方法体中增加连接信息
方法二:
二、方法代码的实现
1.快递员增加快递
2.快递员删除快递
用数据库编写快递e站(本文只写了idea方面的代码)
随着快递业的不断发展,快递e站也越来越多,我们来编写一个简单的快递e站小程序,本文就介绍了如何用数据库知识编写快递e站。
##成品如下:
一、IDEA如何连接数据库
第一种方法:直接在方法体中增加连接信息
优点:如果仅使用一次数据库操作可选择
缺点:多次数据库操作每次都需要写,麻烦
public void select() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.定义sql
String sql = "select * from kuaidi";
//3.获取conn
conn = DriverManager.getConnection("jdbc:mysql:///kuaidi", "root", "123");
//4.获取执行sql对象Statement
stmt = conn.createStatement();
//5.执行sql
rs = stmt.executeQuery(sql);
//6处理结果
while (rs.next()) {
int danhao = rs.getInt(1);
int qujianma = rs.getInt(2);
String gongsi = rs.getString("gongsi");
String guizi = rs.getString(4);
System.out.println("单号为:" + danhao + " " + "取件码为:" + qujianma + " " + "公司是:" + gongsi + " " + "柜子在第" + guizi + "个");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
方法二:
建立一个JDBCHelper和一个存储数据库账号密码的Properties,来帮助快速加载驱动以及释放内存
优点:只需要写一次,用的时候调用即可
缺点:一次要写很多
释放内存的时候可能传入两个或者三个参数需要释放,所以用重载形式来解决
private static String url;
private static String user;
private static String password;
private static String driver;
/**
* 文件的读取,只需要读取一次即可
*/
static {
//读取资源文件,并获取值
try {
//1.创建properties集合类
Properties pro = new Properties();
//2.加载文件
//获取src路径下的文件的方式--->ClassLoader类加载器
ClassLoader classLoader = JDBCHelper.class.getClassLoader();
URL res = classLoader.getResource("jdbc.properties");
String path = res.getPath();
//pro.load(new FileReader("src/jdbc.properties"));
pro.load(new FileReader(path));
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取连接
*
* @return连接对象
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
/**
* 释放资源
*
* @param stmt
* @param conn
*/
public static void close(Statement stmt, Connection conn) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
//释放内存
public static void close(ResultSet rs, Statement stmt, Connection conn) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
二、方法代码的实现
1.快递员增加快递
代码如下:
public class Add {
Connection conn = null;
Statement stmt = null;
Random r= new Random();
public void addq(int danhao,String gongsi){
try {
conn = JDBCHelper.getConnection();
int qujianma = r.nextInt((999999)+1);
String guizi = Integer.toString(r.nextInt(100)+1);
String sql = "insert into kuaidi values(" + danhao + "," + qujianma+",'"+gongsi+"','"+guizi+"')";
stmt = conn.createStatement();
int a = stmt.executeUpdate(sql);
System.out.println("取件码为:"+qujianma);
if(a>0){
System.out.println("添加成功");
}
else {
System.out.println("添加失败");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
2.快递员删除快递
代码如下:
public class Delete {
Connection conn = null;
Statement stmt = null;
public void delete(int danhao) {
try {
conn = JDBCHelper.getConnection();
String sql = "delete from kuaidi where danhao = "+danhao;
stmt = conn.createStatement();
int a = stmt.executeUpdate(sql);
if(a>0){
System.out.println("删除成功");
}
else {
System.out.println("删除失败");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
finally {
JDBCHelper.close(stmt,conn);
}
}
主要内容代码:
public class Imp {
public static void main(String[] args) {
kuaidi();
}
public static void kuaidi() {
System.out.println("====欢迎使用新职课快递柜====");
Scanner sc = new Scanner(System.in);
Random r = new Random();
while (true) {
System.out.println("请输入你的身份:1-快递员,2-用户");
try {
int a = sc.nextInt();
if (a < 1 || a > 2) {
System.out.println("输入有误,请重新输入");
} else if (a == 1) {
System.out.println("====欢迎使用新职课快递柜====");
System.out.println("请选择操作:1-存快递 2-删除快递 3-修改快递信息 4-查看所有快递");
int b = sc.nextInt();
switch (b) {
case 1: {
System.out.println("====欢迎使用新职课快递柜====");
System.out.println("请输入快递单号:");
int danhao = sc.nextInt();
System.out.println("请输入公司名称:");
String gongsi = sc.next();
Add add = new Add();
add.addq(danhao, gongsi);
break;
}
case 2: {
System.out.println("====欢迎使用新职课快递柜====");
System.out.print("请输入要删除的订单号:");
int dingdan = sc.nextInt();
Delete delete = new Delete();
delete.delete(dingdan);
break;
}
case 3: {
System.out.println("====欢迎使用新职课快递柜====");
System.out.print("请输入要修改的订单号:");
int danhao = sc.nextInt();
Alter al = new Alter();
boolean q = al.select(danhao);
if (q = true) {
System.out.println("请输入更改后的单号");
int afdanhao = sc.nextInt();
al.alter(afdanhao, danhao);
} else {
System.out.println("请核实订单号");
}
break;
}
case 4: {
System.out.println("====欢迎使用新职课快递柜====");
SelectAll s = new SelectAll();
s.select();
}
}
} else if (a == 2) {
System.out.println("====欢迎使用新职课快递柜====");
System.out.println("请输入取件码");
int qujianma = sc.nextInt();
Take t = new Take();
t.take(qujianma);
}
} catch (InputMismatchException e) {
System.out.println();
System.out.println("请输入数字序号!!!!!!!!");
System.out.println();
kuaidi();
}
}
}
}
别的几个代码块都大同小异,只需要修改sql语句即可
如有需要全部代码,或者有疑问的同学私信我就可以了
来源:https://blog.csdn.net/weixin_48305172/article/details/112304491


猜你喜欢
- python在mysql中插入null空值sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (
- 1、hook背景Hook被成为钩子机制,这不是pytorch的首创,在Windows的编程中已经被普遍采用,包括进程内钩子和全局钩子。按照自
- 和朋友讨论时,我提到过一个观点,所有框架层设计中,最核心的是导航设计。最近更看到有国外同行提出“80%的可用性是导航!”因为良好的导航可以保
- 在定向爬虫的制作过程中,使用分布式爬取技术可以显著提高爬取效率。而 Redis 配合 Scrapy 是实现分布式爬取的基础。Redis 是一
- Tensorflow是目前最流行的深度学习框架,我们可以用它来搭建自己的卷积神经网络并训练自己的分类器,本文介绍怎样使用Tensorflow
- 一 下载安装驱动官方文档https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo下载地址ht
- 谷歌内部的 python 代码规范熟悉 python 一般都会努力遵循 pep8 规范,也会有一些公司制定内部的代码规范。大公司制定规范的目
- Server对象主要是给编程人员提供一些方便的对象和属性。(1)ScriptTimeout属性:<%Server.ScriptTime
- 说到关于请求方法的分支,让我们来看一下可以用什么好的方法来实现它。 考虑这个 URLconf/view 设计:# urls.pyfrom d
- Python——re模块 简介定义:re模块称为正则表达式;作用:创建一个"规则表达式",用于验证和查找符合规
- 一、torch.utils.data.DataLoader 简介作用:torch.utils.data.DataLoader 主要是对数据进
- 这个是用python实现的基本的增删改查的学生管理系统吧,其中主要是对输入的数据进行合法性检测的问题,这次又对函数进行了练习!掌握函数更加熟
- 简介在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找
- json的作用JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式json.dumps(): 对数
- 随着公司开发人员的增加,以及多需求的并行开发,功能上线就会碍手碍脚;害怕自己没写完的代码被别人部署到线上,害怕别人代码没写完被自己部署到线上
- 目录一.定义二.命名方法2.1小驼峰命名法2.2大驼峰命名法2.3下划线命名法三.命名规则3.1标识符3.2关键字四.使用方法4.1单变量赋
- 以下内容给大家介绍了MYSQL通过Adjacency List (邻接表)来存储树形结构的过程介绍和解决办法,并把存储后的图例做了分析。今天
- 想要使用多个CPU核心来进行测试,可以使用 -n 参数( 或者 --numprocesses)(使用8个核心来跑测试用例)pytest -n
- 需求:取文件1中的一行,和文件2中所有的数据进行比较,有相同的保存起来,否则删除。#!/usr/bin/perl#use strict;op
- 搭建MySQL主从后,很多时候不知道从的状态是否ok,有时候出现异常不能及时知道,这里通过shell脚本结合zabbix实现监控并告警一般情