题目1:编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id、username、password),验证登录是否成功。

题目2:在上一题基础上,当登录成功后,将t_user表(id、name、sex、birthday)的信息进行显示(要求使用DB.java完成登录和获取t_user表中数据的操作),最后再对t_user表进行一条记录的添加操作。

代码:

DB类

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) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
DB(){
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "root", ""); } catch (SQLException e) {
// TODO Auto-generated catch block
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) {
// TODO Auto-generated catch block
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]); }
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return n;
}
public void close(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package ccut.cn;

import ccut.cn.DB;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner; public class test { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入用户名和密码:");
Scanner reader = new Scanner(System.in);
String username = reader.nextLine();
double password = reader.nextDouble();
ResultSet p;
ResultSet r;
DB db = new DB();
p = db.executeSelect("select * from t_login where username = '"+username+"' and password = '"+password+"'", args); try {
if(username.equalsIgnoreCase(username)){
System.out.println("登录成功");
r = db.executeSelect("select * from t_user", args);
while(r.next()) {
int id = r.getInt(1);
String name = r.getString(2);
int sex = r.getInt(3);
String birthday =r.getString(4);
System.out.println("id:"+id+"\tname:"+name+"\tsex:"+sex+"\tbirthday:"+birthday);
}
System.out.println("请输入需要添加的记录内容为:");
int new_id = reader.nextInt();
String newname = reader.next();
int newsex = reader.nextInt();
String newdate =reader.next();
String sql="insert into t_user(id,name,sex,birthday) values("+new_id+",'"+newname+"',"+newsex+",'"+newdate+"')";
int n =db.executeModify(sql, args);
if(n>0) {
System.out.println("数据插入成功");
}else {
System.out.println("数据插入失败");
}
} else{
System.out.println("登录失败!");
} //} //catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

java-十五周作业的更多相关文章

  1. Java第十五周作业

    Cola公司的雇员分为以下若干类:(知识点:多态) [必做题]• 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:getSalary(int mont ...

  2. Java第五周作业+总结

    实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 1.已知字符串:"this is a test of java".按要求执 ...

  3. g第十四周,十五周作业

    1.数组中偶数的和 #include <stdio.h> int main(){ ; ]; ;i<=;i++) { scanf("%d ",&a[i]); ...

  4. java第五周作业

    Java Applet Applet 是一种 Java 程序.它一般运行在支持 Java 的 Web 浏览器内.因为它有完整的 Java API支持,所以Applet 是一个全功能的 Java 应用程 ...

  5. python第八十四天---十五周作业

    后台管理页面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  6. C语言——第十四、十五周作业

    题目 题目一:交换最小值和最大值 1.实验代码 #include<stdio.h> int main() { ; int i , n; int a[N]; int x , y; scanf ...

  7. java 十五周总结

  8. 20199310《Linux内核原理与分析》第十五周作业 Linux安全实验

    1 补充知识 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况.这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段.这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭, ...

  9. 第十五周博客作业 <西北师范大学| 周安伟>

    第十五周作业 助教博客链接https://home.cnblogs.com/u/zaw-315/ 作业要求链接https://www.cnblogs.com/nwnu-daizh/p/10946673 ...

  10. 201771010134杨其菊《面向对象程序设计(java)》第十五周学习

    第十五周学习总结 第一部分:理论知识 JAR文件: 应用程序首选项存储: Java Web Start JAR文件: 1.Java程序的打包:程序编译完成后,程序员将.class文件压缩打包为.jar ...

随机推荐

  1. git使用中的一些命令及心得

    Git 与 SVN 区别点: 1.Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心 的区别. 2.Git 把内容按元数据方式存储,而 SV ...

  2. python学习-46 时间模块

    时间模块 ····时间戳 print(time.time()) 运行结果: 1564294158.0389376 Process finished with exit code 0 ·····结构化时 ...

  3. PAT(B) 1018 锤子剪刀布(C:20分,Java:18分)

    题目链接:1018 锤子剪刀布 分析 用一个二维数组保存两人所有回合的手势 甲乙的胜,平,负的次数刚好相反,用3个变量表示就可以 手势单独保存在signs[3]中,注意顺序.题目原文:如果解不唯一,则 ...

  4. 模型汇总24 - 深度学习中Attention Mechanism详细介绍:原理、分类及应用

    模型汇总24 - 深度学习中Attention Mechanism详细介绍:原理.分类及应用 lqfarmer 深度学习研究员.欢迎扫描头像二维码,获取更多精彩内容. 946 人赞同了该文章 Atte ...

  5. (二)如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?

    上一篇我们讲了如何建立一个简单的Roslyn分析项目如分析检查我们的代码. 今天我们主要介绍各个项目中具体的作用以及可视化分析工具. 还是这种截图,可以看到解决方案下一共有三个项目. Analyzer ...

  6. 16-MySQL DBA笔记-调优基础理论和工具

    第五部分 性能调优与架构篇 本篇将为读者介绍性能调优的一些背景知识和理论,然后介绍一些工具的运用,最后介绍从应用程序到操作系统.到数据库.到存储各个环节的优化. 性能调优是一个高度专业的领域,它需要一 ...

  7. JDBC 复习5 mysql 的自增长主键 auto_increment

    MySQL 自增长主键 (1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号.编号从1开始,并1为基数递增. (2)把0插入AUTO_INCRE ...

  8. js基本对象

    1.介绍js的基本数据类型 Undefined.Null.Boolean.Number.String 2.js有哪些内置对象? 数据封装类对象:Object.Array.Boolean.Number ...

  9. SAP Kyma(Extension Factory on SAP Cloud Platform)的架构简介

    SAP kyma主要分三大块组成: (1) Application connector simplify and securely connect external systems to Kyma a ...

  10. python 链接impala执行SQL

    项目中用python来链接impala数据库最常见,一个简单的链接,获取结果. #!/usr/bin/python # -*- coding:utf-8 -*- from impala.dbapi i ...