JDBC 程序实例小练习
JDBC 程序实例问题
编程实现如下功能:在数据库中建立一个表,表名为student,其结构为学号、姓名、性别、年龄、英语、JavaSE程序设计、初级日语、总分,在表中输入多条记录。
- 学生的总分信息,通过修改总分 = 英语 + JavaSE程序设计+ 初级日语
- 查询所有学生的信息,并显示出来。
- 查询所有不及格成绩的学生信息。
- 插入一条记录。
- 修改性别为男的所有学生的年龄 = 年龄 + 1.
- 删除(4)题目中插入的记录
- 将表中记录按照总分降序输出。
代码实现
package www.yjl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/hair?useUnicode=true&characterEncoding=utf8","root","123456");
//(1)计算总分
String updateSql = "update student set 总分=英语+JavaSE程序设计+初级日语";
PreparedStatement pst = conn.prepareStatement(updateSql);
int zf = pst.executeUpdate();
if (zf > 0)
{
System.out.println("总分计算成功!");
}
System.out.println("-------------------------");
//查询所有学生的信息,并显示出来
String showAll = "select * from student";
PreparedStatement pst1 = conn.prepareStatement(showAll);
ResultSet rs = pst1.executeQuery();
while (rs.next())
{
for (int i = 1;i <= 9;i++)
{
System.out.print(rs.getString(i)+" ");
}
System.out.println();
}
System.out.println("-------------------------");
//查询不及格成绩的学生信息
String showFild = "select * from student where 英语<60 or JavaSE程序设计<60 or 初级日语 <60";
PreparedStatement pst2 = conn.prepareStatement(showFild);
ResultSet rsshouFild = pst2.executeQuery();
while (rsshouFild.next())
{
for (int i = 1;i <= 9;i++)
{
System.out.print(rsshouFild.getString(i)+" ");
}
System.out.println();
}
System.out.println("-------------------------");
//插入一条数据
System.out.println("Now you will alowed to import a line:");
String insertLine = "insert into student(Id,学号,姓名,性别) values(?,?,?,?)";
//String updateSql1="update student set 学号=?,姓名=? where 性别=?";
PreparedStatement pstInsert=conn.prepareStatement(insertLine);
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生ID:");
String id=sc.next();
System.out.println("请输入学生学号:");
String number=sc.next();
System.out.println("请输入学生姓名:");
String name=sc.next();
System.out.println("请输入学生性别:");
String sex=sc.next();
pstInsert.setString(1, id);
pstInsert.setString(2, number);
pstInsert.setString(3, name);
pstInsert.setString(4, sex);
int y = pstInsert.executeUpdate();
if(y>0)
{
System.out.println("恭喜你插入了一条新的数据!");
}
System.out.println("-------------------------");
//这是你点击输入的时候,光标没有自动跳转到你要放你输入内容的地方,他在的地方可能已经有了内容,所以你输入内容就输入不进去,
//解决办法就是把光标点到你要输入内容的地方,这是eclipse本身的缺陷,目前应该还没有解决办法。
//一直存在输入不进去的bug,这是找到的答案....次奥!!!!搞我半个小时,我还以为代码有问题.....
//修改性别为男的所有学生的年龄=年龄+1
String updateBoyOld = "update student set 年龄=年龄+1 where 性别 ='男'";
PreparedStatement pstupdateBoyOld = conn.prepareStatement(updateBoyOld);
int boyplus = pstupdateBoyOld.executeUpdate();
if (boyplus > 0)
{
System.out.println("年龄加 1 成功!");
}
System.out.println("-------------------------");
//将表中记录按照总分降序输出
String updateSoreDesc = "select * from student order by 总分 desc";
PreparedStatement pstSoreDesc = conn.prepareStatement(updateSoreDesc);
ResultSet rsSoreDesc = pstSoreDesc.executeQuery();
while (rsSoreDesc.next())
{
for (int i = 1;i <= 9;i++)
{
System.out.print(rsSoreDesc.getString(i)+" ");
}
System.out.println();
}
System.out.println("-------------------------");
//删除数据
String deleteSql="delete from student where 学号=?";
PreparedStatement pstDelete=conn.prepareStatement(deleteSql);
pstDelete.setString(1,"1005");
int e = pstDelete.executeUpdate();
if (e>0)
{
System.out.println("删除成功!");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
小结
这个程序是昨晚搞出来的,也算是一个没有界面的小程序了,用的是一个测试类,代码冗长...enmmm...
一百多行代码,最终写完,其中,发现自己还是有好多问题,自己还有好多东西要学习啊。。。现在还是蒟蒻啊....本来是想着昨晚接着贴出来的,有点事情给耽搁了....
JDBC 程序实例小练习的更多相关文章
- JDBC程序实例
实例 ( Statement ): public class JDBC { public static void main(String[] args) throws Exception { Conn ...
- 微信小程序实例源码大全
微信小程序实例源码大全下载 微信小应用示例代码(phodal/weapp-quick)源码链接:https://github.com/phodal/weapp-quick 微信小应用地图定位demo( ...
- 微信小程序实例教程(一)
序言 开始开发应用号之前,先看看官方公布的「小程序」教程吧!(以下内容来自微信官方公布的「小程序」开发指南) 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序 ...
- 微信小程序实例-摇一摇抽奖
概述 前面我们讲了如何开始微信小程序搭建和一些组件的介绍.微信小组件和微信小程序入门 微信小程序目录 为了更好的理解小程序和小程序开发,我们首先来看一下项目的目录. 首先看下根目录下的app.json ...
- 开发一个微信小程序实例教程
一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开 ...
- 微信小程序实例源码大全下载
小程序QQ交流群:131894955 小程序开发直播腾讯课堂: https://edu.csdn.net/course/detail/6743 微信小程序实例源码大全下载 微信小应用示例代码(p ...
- 微信小程序实例代码
http://blog.csdn.net/zuoliangzhu/article/details/53862576#t1 项目结构 └─ empty-folder/ ················· ...
- 微信小程序实例源码大全2
wx-gesture-lock 微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...
- Android开发5:应用程序窗口小部件App Widgets的实现
前言 本次主要是实现一个Android应用,实现静态广播.动态广播两种改变 widget内容的方法,即在上篇博文中实验的基础上进行修改,所以此次实验的重点是AppWidget小部件的实现啦~ 首先,我 ...
随机推荐
- LKD: Chapter 9 An Introduction to Kernel Synchronization
This chapter introduces some conception about kernel synchronization generally. Critical Regions: Co ...
- SQL Server 结构分解
关系引擎和存储引擎是SQL Server 的两大组件,其中关系引擎也叫查询处理器,它包括查询优化器.命令解析器.查询执行器.存储引擎管理所有的数据及涉及的IO,它包括事务管理器和数据访问方法和缓冲区管 ...
- 方法的形参、ref参数、out参数的区别
我们在定义方法时,经常会涉及到传参.因为引用类型的数据在用变量存储时,是存储的地址,所以在传参时,依然是传递的地址,但是值类型的数据在传参时就会有所不同.值类型数据在调用方法传参时,普通情况下是值传递 ...
- 1.0-springboot的java配置方式
1.创建User实体类. @Data public class User { private String username; private String password; private Int ...
- 微软云计算 Massive Data 处理语言Scope 1
Massive Data处理一直是云计算中很重要的一个环节.目前像Google,Yahoo在相关方面都有自己专有的技术.例如Google的基于MapReduce的Sawzall语言.和Yahoo基于H ...
- c语言的枚举(遍历枚举)与数据类型总结
一.枚举的概念 枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数.当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型. 比如,你可以用一个枚举类型的变量来表示季节, ...
- iphone6 plus导入联系人或者通讯录
iphone6 plus快速导入联系人或者通讯录(使用QQ同步助手,真的很简单) 最近换了部手机,由于之前的手机保存联系人都是保存在手机,没有备份在sim卡,由于sim卡被我剪小了,不能插回原来的手机 ...
- ##6.1 Neutron控制节点-- openstack pike
##6.1 Neutron控制节点 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##6.1 Neutron控制节 ...
- yum中$releasever、 $basearch等变量含义
[root@kickstart ~]# rpm -qf /etc/redhat-release centos-release--4.1708.el7.centos.x86_64 yum中的$relea ...
- 导弹拦截(pascal)
导弹拦截 [问题描述] 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕 ...