Java 15周作业
题目1:编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id、username、password),验证登录是否成功。
题目2:在上一题基础上,当登录成功后,将t_user表(id、name、sex、birthday)的信息进行显示(要求使用DB.java完成登录和获取t_user表中数据的操作),最后再对t_user表进行一条记录的添加操作。
代码
DB.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class DB {
private Connection con;
private PreparedStatement pre;
private ResultSet rs;
private static DB db; static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} private DB(){
try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
} catch (SQLException e) {
e.printStackTrace();
}
} public static DB getInstance(){
if(db==null){
db=new DB();
}
return db;
} public ResultSet executeSelect(String sql,Object[]args){
try {
pre=con.prepareStatement(sql);
if(args.length!=0){
for(int i=0;i<args.length;i++){
pre.setObject(i+1, args[i]);
}
}
rs=pre.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
} public int executeModify(String sql,Object []args){
int n=0;
try {
pre=con.prepareStatement(sql);
if(args.length!=0){
for(int i=0;i<args.length;i++){
pre.setObject(i+1, args[i]);
}
}
n=pre.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return n;
} public void close(){
try {
if(rs!=null){
rs.close();}
pre.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
} }
Test.java
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*; public class Test { public static void main(String[] args) {
Scanner r =new Scanner(System.in);
System.out.println("请输入用户名,密码");
String username=r.next();
String password=r.next();
Object [] a={username,password};
String sql = "select * from t_login where username=? and password=?"; DB d=DB.getInstance();
ResultSet rs=d.executeSelect(sql,a);
try {
if(rs.next()){
System.out.println("登录成功\r");
String user="select * from t_user";
System.out.println("显示t_user表");
ResultSet usertable=d.executeSelect(user,args);
System.out.println("id\t"+"name\t"+"sex\t"+"birthday\t");
while(usertable.next()){
int id=usertable.getInt(1);
String name=usertable.getString(2);
String sex="女";
int temp=usertable.getInt(3);
if(temp==1){
sex="男";
} String birthday=usertable.getString(4);
System.out.println(id+"\t"+name+"\t"+sex+"\t"+birthday+"\t");
} System.out.println("添加新记录:");
//int id=r.nextInt();
String name=r.next();
int sex=r.nextInt();//0代表女,1代表男
String birthday=r.next();
String insert="insert into t_user(name,sex,birthday) values(?,?,?)";
Object[] in={name,sex,birthday};
int n=d.executeModify(insert, in);
if(n>0){
System.out.println("添加成功");
} else
System.out.println("添加失败"); }
else
System.out.println("登录失败"); } catch (SQLException e) {
e.printStackTrace();
}
finally{
d.close();
} } }
运行结果


Java 15周作业的更多相关文章
- Java第二周作业
Java第二周作业 本周作业: 参考http://www.cnblogs.com/rocedu/p/7911138.html 学习第二三章视频 参考http://www.cnblogs.com/roc ...
- Java第一周作业
Java第一周作业 本周作业: 参考<<教材学习指导(http://www.cnblogs.com/rocedu/p/7911138.html)) 学习第一章视频 参考<<使用 ...
- 1903021121-刘明伟-java十一周作业-java面向对象编程
项目 内容 课程班级博客链接 19级信计班(本) 作业要求链接 第十一周作业 博客名称 1903021121-刘明伟-java十一周作业-java面向对象 要求 每道题要有题目,代码(使用插入代码,不 ...
- C语言程序设计(基础)- 第14、15周作业
从本周开始,将作业标记为学校自然周,而不是开课的周数. 要求一(25经验值) 完成14.15周的所有PTA中题目集. 注意1:一周两次pta作业,包括四次. 要求二(50经验值) 博客的具体书写内容和 ...
- 2017-2018-1 我爱学Java 第二周 作业
Android Game Discussion Questions Answers 20162309邢天岳 20162311张之睿 20162312张家铖 20162313苑洪铭 20162324春旺 ...
- 2017-2018-1 我爱学Java 第一周 作业
构建之法 成员及分工 内容简介 作者简介 分章学习及问题 第一章 概论 第二章 个人技术和流程 第三章 软件工程师的成长 第四章 两人合作 第五章 团队和流程 第六章 敏捷流程 第七章 实战中的软件工 ...
- Java 14 周作业
题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件.之后,将这些文件中的某一个文件剪切到另外一个目录中. 代码: package ccut.cn; import ja ...
- 1903021116-吉琛- JAVA第二周作业—Java程序编写
项目 内容 课程班级博客链接 19级信计班 这个作业要求链接 https://www.cnblogs.com/thelovelybugfly/p/9641367.html 我的课程学习目标 1. 学习 ...
- C语言--第14.15周作业
一. 7-3 将数组中的数逆序存放 1.代码 #include 2<stdio.h> int main() { int a[10]; int i, n, s; scanf("%d ...
随机推荐
- ChecklistForTest
相关字段内容较长时,页面显示是否正确(包括各主页面.明细页面.打印预览页面) 数据量较多时,页面显示是否正确(包括各主页面.明细页面.打印预览页面) 各字段为空校验(都为空,部分为空,都不为空)是否正 ...
- PHP设计模式 - 命令模式
命令模式:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”.但在某些场合,比如要对行为进行“记录.撤销/重做.事务”等处理,这种无法抵御变化的紧耦合是不合适的.在这种情况下,如何将“ ...
- Elasticsearch进阶篇(一)~head插件的安装与配置
1.安装node.js 1.1.通过官网下载二进制安装包 https://nodejs.org/en/download/ 选择对应的版本,右键复制下载链接,进入linux目录,切换到要安装目录的磁盘. ...
- day52——jquery引入与下载、标签查找、操作标签
day52 jquery引入 下载链接:jQuery官网 https://jquery.com/ 中文文档:jQuery AP中文文档 http://jquery.cuishifeng.cn/ < ...
- nacos初探--作为配置中心
什么是nacos Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心).动态配置服务(可以做配置中心).动态 DNS 服务. 官方介绍是这样的: Nac ...
- Docker 使用入门 Hello World
结合上一篇的所说的内容:现在安装好了Docker 安装好了就要用嘛,所以,先走一个Hello World docker run ubuntu:15.10 /bin/echo "hello w ...
- 【Maven基础入门】02 了解POM文件构建
温故 上一节我们说过:Maven 是一个基于POM文件的构建工具,当然离不开POM文件 POM文件是一个XML标记语言表示的文件,文件就是:pom.xml 一个POM文件包含了项目的基本信息,用于描述 ...
- 2019 4399java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.4399等公司offer,岗位是Java后端开发,最终选择去了4399. 面试了很多家公司,感觉大部分公司考察的点 ...
- Python进阶(一)----函数
Python进阶(一)----函数初识 一丶函数的初识 什么函数: 函数是以功能为导向.一个函数封装一个功能 函数的优点: 1.减少代码的重复性, 2.增强了代码的可读性 二丶函数的结构 ...
- region、xld有对应的字符串时,将region、xld按照行或列排序的算法实现
用Halcon解码时,如果一张图里面有多个码,它通常可以把这些码都解出来,并且生成对应的解码结果字符串元组(也就是下面的DecodedDataStrings),如果有多个码,那么该元组就有多个元素. ...