题目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周作业的更多相关文章

  1. Java第二周作业

    Java第二周作业 本周作业: 参考http://www.cnblogs.com/rocedu/p/7911138.html 学习第二三章视频 参考http://www.cnblogs.com/roc ...

  2. Java第一周作业

    Java第一周作业 本周作业: 参考<<教材学习指导(http://www.cnblogs.com/rocedu/p/7911138.html)) 学习第一章视频 参考<<使用 ...

  3. 1903021121-刘明伟-java十一周作业-java面向对象编程

    项目 内容 课程班级博客链接 19级信计班(本) 作业要求链接 第十一周作业 博客名称 1903021121-刘明伟-java十一周作业-java面向对象 要求 每道题要有题目,代码(使用插入代码,不 ...

  4. C语言程序设计(基础)- 第14、15周作业

    从本周开始,将作业标记为学校自然周,而不是开课的周数. 要求一(25经验值) 完成14.15周的所有PTA中题目集. 注意1:一周两次pta作业,包括四次. 要求二(50经验值) 博客的具体书写内容和 ...

  5. 2017-2018-1 我爱学Java 第二周 作业

    Android Game Discussion Questions Answers 20162309邢天岳 20162311张之睿 20162312张家铖 20162313苑洪铭 20162324春旺 ...

  6. 2017-2018-1 我爱学Java 第一周 作业

    构建之法 成员及分工 内容简介 作者简介 分章学习及问题 第一章 概论 第二章 个人技术和流程 第三章 软件工程师的成长 第四章 两人合作 第五章 团队和流程 第六章 敏捷流程 第七章 实战中的软件工 ...

  7. Java 14 周作业

    题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件.之后,将这些文件中的某一个文件剪切到另外一个目录中. 代码: package ccut.cn; import ja ...

  8. 1903021116-吉琛- JAVA第二周作业—Java程序编写

    项目 内容 课程班级博客链接 19级信计班 这个作业要求链接 https://www.cnblogs.com/thelovelybugfly/p/9641367.html 我的课程学习目标 1. 学习 ...

  9. C语言--第14.15周作业

    一. 7-3 将数组中的数逆序存放 1.代码 #include 2<stdio.h> int main() { int a[10]; int i, n, s; scanf("%d ...

随机推荐

  1. tp中model加载机制

    $user_model = D('User'); 如果当前模块下面有UserModel,就优先使用当前模块下的UserModel.如果当前模块下没有UserModel,就回去Common模块下找Use ...

  2. vue 项目不显示样式 排版错乱

    vue中的css 样式都在index.html中 看这里是否有导入css

  3. RestTemplate的使用和原理你都烂熟于胸了吗?【享学Spring MVC】

    每篇一句 人圆月圆心圆,人和家和国和---中秋节快乐 前言 在阅读本篇之前,建议先阅读开山篇效果更佳.RestTemplate是Spring提供的用于访问Rest服务的客户端工具,它提供了多种便捷访问 ...

  4. 2019-7-01 python基础数据类型

    一.python的注释 python的注释分类: 单行注释:  #    单行注释 多行注释:(可以是三个单也可以是三个双) ''' 单三引号多行注释 ''' """ 双 ...

  5. Python之路【第三十篇】:django 模型层-多表关系

    多表操作 文件为 ---->  orm2 数据库表关系之关联字段与外键约束 一对多Book id title price publish email addr 1 php 100 人民出版社 1 ...

  6. t100 常用公用變數

    g_enterprise 目前的企業代碼,將限制使用者所能閱讀的資料內容g_prog 目前執行的作業編號,用於變換畫面顯示資料與產生系統資訊,不可變更g_code 目前執行的程式代碼(4gl)名稱,不 ...

  7. C# vb .net实现棕褐色效果特效滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的棕褐色效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一 ...

  8. 回归写博客时间-----CeliaTodd

    2019-10-17-19:28:01 记录自己的学习路程 国庆期间本来是有持续写博客的,但是有各种原因就没时间写博客了, 但是学习的进度还是没有落下的,现在正式回归写博客的时间了. 但现在不是写Py ...

  9. 在Centos6.5上部署kvm虚拟化技术

    KVM是什么? KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hyperv ...

  10. Java 相等判断

    ==的判断机制是:根据两边的内存地址是否相同来判断. equals()是Object类的一个实例方法,判断机制和 == 完全一样. String类重写了equals()方法,是根据数据值来判断的. 总 ...