双表查询java代码_多表增删改查

[java]代码库package com.ww.service;

import java.lang.reflect.Array;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import com.mysql.jdbc.PreparedStatement;

import com.ww.db.DBHelper;

import com.ww.entity.Score;

import com.ww.entity.Student;

public class SysService {

DBHelper dbHelper=new DBHelper();

//查询所有学生的编号,姓名和分数,并返回

public ArrayList getAllInfo(){

String sql="select * from stu s,sco sc where s.stu_id=sc.stu_id";

Connection connection=dbHelper.getConnection();

ArrayList scores=new ArrayList();

try {

PreparedStatement psd=(PreparedStatement)connection.prepareStatement(sql);

ResultSet resultSet=psd.executeQuery();

while (resultSet.next()) {

Student student=new Student();

Score score=new Score();

student.setId(resultSet.getInt("stu_id"));

student.setName(resultSet.getString("stu_name"));

score.setId(resultSet.getInt("sco_id"));

score.setScos(resultSet.getInt("emg_sco"));

score.setStudent(student);

scores.add(score);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return scores;

}

//添加

public boolean addInfo(String name,int a){

String sql1="insert into stu VALUES(null,?)";

String sql2="insert into sco VALUES(null,(select MAX(stu_id) from stu),?)";

Connection connection=dbHelper.getConnection();

try {

//执行向主表添加数据

PreparedStatement psd1=(PreparedStatement)connection.prepareStatement(sql1);

//执行向从表中添加数据

PreparedStatement psd2=(PreparedStatement)connection.prepareStatement(sql2);

psd1.setString(1, name);

int b=psd1.executeUpdate();

if (b>0) {

//向主表中完成添加

psd2.setInt(1, a);

int s=psd2.executeUpdate();

if (s>0) {

return true;

}

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return false;

}

//修改

public boolean update(int id,String name,int sc) {

String sql="update stu s,sco sc set s.stu_name=?,sc.emg_sco=? where s.stu_id=sc.stu_id and s.stu_id=?";

Connection connection=dbHelper.getConnection();

try {

PreparedStatement psd=(PreparedStatement)connection.prepareStatement(sql);

psd.setString(1, name);

psd.setInt(2, sc);

psd.setInt(3, id);

if(psd.executeUpdate()>=2){

return true;

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return false;

}

//删除

public boolean deleteInfo(int id){

String sql="delete from sco where stu_id=?";

Connection connection=dbHelper.getConnection();

try {

PreparedStatement psd=(PreparedStatement)connection.prepareStatement(sql);

psd.setInt(1, id);

if(psd.executeUpdate()>0){

return true;

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return false;

}

}

[源代码打包下载]

多表增删改查.zip(50积分)[15 次下载]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器项目前端调用摄像头失败,浏览器调用摄像头失败:NotSupportedError Only secure origins are allowed...

通过浏览器调用摄像头失败:NotSupportedError Only secure origins are allowed错误报告NotSupportedError Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).[Deprecation] getUserMedia() no longer works on insecure origins. To use this featur…

greenplum 存储过程_揭秘!Greenplum并行执行引擎到底是如何工作的?

《深入浅出Greenplum内核》系列直播以每月一场的速度持续推出中。在第一场《架构解读》直播里,我们了解了Greenplum的整体架构、存储管理、索引、查询执行、事务与日志等内容。今天(5月22日),第二场《Greenplum内核揭秘之执行引擎》也顺利播出啦&#xf…

倩女幽魂服务器维护时间,9月5日在线维护公告

亲爱的玩家:《倩女幽魂》手游将于本周四上午进行在线更新,更新期间无需停服,玩家可照常进行游戏。欢迎您届时体验本周放出的全新内容,祝全体玩家游戏愉快!本周四在线更新内容如下:系统1.跨服队伍和团队功能…

区块链是什么通俗解释_区块链是什么?如何用一句话通俗解释区块链

站长之家(Chinaz.com)注:很多人可能跟小编一样,为了搞懂区块链的概念,看了无数篇文章,但是很多说的都是大概念。虽然每个字都看得懂,但是连在一起就看不懂了。那么,区块链到底是什么东西呢?如何用一句话通…

和push的区别_还没有理解let 和 const的用法和区别吗,几百字让你立马搞懂

本文主要讲解ES6中变量的相关操作,变量的命名, 讲解 var、 let 、 const 三者的区别正文ES6中的 let 和 const 都是用来声明变量的, 他们与 var 有所区别let 命令我们都知道在for循环中,我们命名的变量 i 一般都只是为了在这个循环…

深度学习分类类别不平衡_「图像分类」 关于图像分类中类别不平衡那些事

作者&编辑 | 郭冰洋1 简介小伙伴们在利用公共数据集动手搭建图像分类模型时,有没有注意到这样一个问题呢——每个数据集不同类别的样本数目几乎都是一样的。这是因为不同类别的样例数目差异较小,对分类器的性能影响不大,可以在避免其他因…

vue设置多选框默认勾选_Vue实现全选和反选即Vue复选框增加全选功能

导语:Vue中单选下拉框开发起来非常简单,直接select包裹一个带v-for的option即可但是当我们想做个带多选的下拉框该怎么办呢?最简方法是什么?比如下面这个图:如果网上搜的话,搜的是一堆带children的 ,那种是遍历tree的思想,和多选下拉框不是一回事,而且写起来复杂看不懂源码再…

pyqt5 下拉 多页 点击_PyQt5实战——自定义翻页控件实现

分页控件效果图一、环境要求python解释器:python3.7.4依赖:PyQt5、sys模块二、思路分析1、布局:”上一页“、”下一页“等button、edit及label控件采用水平布局,使用该布局填充主控件QWidget2、类继承关系:主界面继承自…

三种平摊分析的方法分别为_干货|电工必须学会的三极管电路分析方法

三极管有静态和动态两种工作状态。未加信号时三极管的直流工作状态称为静态,此时各极电流称为静态电流,给三极管加入交流信号之后的工作电流称为动态工作电流,这时三极管是交流工作状态,即动态。一个完整的三极管电路分析有四步&a…

休眠后gpio状态_浅谈Digi XBee模块的休眠模式

浅谈Digi XBee模块的休眠模式2020-3-25Digi XBee S2C模块,如果仅连接电源线可以测得,在待机情况下,大约是10.5mA左右的电流,在休眠时的功耗可以低到0.5uA。可以知道,休眠几乎不耗电。在Spec上标的待机功耗会比实测只接…

xodo上的笔记不见了_一起来“终极笔记名场面批发市场”进货吗

俗话说得好,谁都逃不过“真香定律”,三天不见小笔记,想他。不对,不应该叫小笔记,应该叫粉丝起的名字——“【瓶邪黑花】《终极笔记》(原著风/连载)”下面请接受来自粉丝的疯狂打call~自上周《终极笔记》播出&#xff0…

python3学习笔记 雨痕_Python 3 学习笔记:数字和布尔

数字基本类型整数在 Python 编程中,整数就是数学意义上的整数,包括正整数、负整数和零,且它的位数是任意的。根据表示方法的不同,可以分为:二进制整数八进制整数十进制整数十六进制整数浮点数浮点数,即数学…

不越狱换壁纸_那些不舍得换的手机插画壁纸,你还差几张?

酷爱收藏美作的微课菌可以大展拳脚了!分享3位自己收藏的画师作品,绝对每一张都让你舍不得换,手机可以扔,壁纸得先拷贝存起来!开始吧!!多图预警!NO.1:Atey Ghailan&#x…

程序员绩效总结_年终总结怎么写?

每年这时候,都有必要写一下一年的个人工作总结。年终总结或工作总结是个挺重要的事。写好的话,有助于说明自己的工作绩效,绩效好可以多拿年终奖,还有机会争取晋升。另外,一年下来的个人生活也需要总结,这一…

线程停止继续_线程不是你想中断就能中断

这是我2021年的第2篇原创文章,原汁原味的技术之路尽在Jerrycodes为什么不强制停止如何用 interrupt 停止线程sleep 期间能否感受到中断停止线程的方式有几种总结启动线程需要调用 Thread 类的 start() 方法,并在 run() 方法中定义需要执行的任务。启动一…

倒序查10条数据_10 | 怎么给字符串字段加索引?

现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的:mysql> create table SUser( ID bigin…

保留小数点后三位_【Meta分析】Stata制作森林图时,如何保留三位小数?

系统评价/Meta分析指全面收集所有相关研究并逐个进行严格评价和分析,再用定性或定量合成的方法对资料进行处理得出综合结论的研究方法。在指导学员的过程中发现初学者在学习过程中常常会碰到许多共性问题,本公众号特此开设专栏解答,希望能够和…

android自动计步_Android计步模块实例代码(类似微信运动)

最近在项目中研究计步模块,每天0点开始记录当天的步数,类似微信运动。碰到了不少坑今天有时间整理出来给大家看看。做之前在google、baidu、github上搜了个遍没找到好的,大多数都是需要在后台存活,需要后台Service。对于现在的各大…

python井字棋ai_实现AI下井字棋的alpha-beta剪枝算法(python实现)

代码参考自中国大学mooc上人工智能与信息社会陈斌老师的算法,我在原来的基础上增加了玩家输入的异常捕获 AlphaBeta剪枝算法是对Minimax方法的优化,能够极大提高搜索树的效率,如果对这个算法感兴趣的可以去参考相关资料。 当正确理解AlphaBet…

Redis小计(2)

目录 1.exists命令 2.del命令 3.expire/pexpire命令 4.ttl命令 5.redis对于key过期的删除策略 1.exists命令 exists X1 X2 X3 X4:返回四个key存在的个数。 2.del命令 del X1 X2:删除key。 3.expire/pexpire命令 给key设置超时时间。 expire key…