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 ...
随机推荐
- Appium 中使用 pressKeyCode 方法不起作用也没有报错
为了使 appium 支持 Android 系统 7 及以上,automationName 使用了 UIAutomator2.但是发现,使用androidDriver.pressKeyCode(And ...
- SpringBoot+Vue前后端分离项目,maven package自动打包整合
起因:看过Dubbo管控台的都知道,人家是个前后端分离的项目,可是一条打包命令能让两个项目整合在一起,我早想这样玩玩了. 1. 建立个maven父项目 next 这个作为父工程,next Finish ...
- Java后台验证
前台的js验证,可以通过其他手段绕过,存在安全问题,所以引入Java后台进行验证 一.导入jar包 此为hibernate-validator jar包,进行Java后台验证使用,在Java 1.9及 ...
- Delphi 开发微信公众平台 (三)- 获取微信服务器IP地址
如果公众号基于安全等考虑,需要获知微信服务器的IP地址列表,以便进行相关限制,可以通过该接口获得微信服务器IP地址列表或者IP网段信息. 接口调用请求说明 http 请求方式: GET https:/ ...
- 单选 textarea 赋初值
自闭合标签赋初值用$().val(),比如:<input type="text" name="text" value="123"> ...
- AVR单片机教程——EasyElectronics Library v1.3手册
bit.h delay.h pin.h wave.h pwm.h tone.h adc.h button.h switch.h rotary.h pot.h ldr.h led.h rgbw.h se ...
- Golang 传递任意类型的切片
肯定有这样的一种场景,写一个函数,该函数可以接收任意类型的切片,完成相应的功能. 就好比这种情况 intSlice := []int{1,2,3,4,5,6,7,8} strSlice := []st ...
- 【VUE】1.搭建一个webpack项目
1.npm之类的安装跳过 2.安装npm install -g @vue/cli-init 初始化项目目录 vue init webpack vue_cutter_point_blog_admin 并 ...
- JVM性能优化--Java的垃圾回收机制
一.Java内存结构 1.Java堆(Java Heap) java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建.此内存区域的唯一目的就是存放对象实例 ...
- iptables限制访问
iptables限制访问 常用命令 # 查看规则 iptables -L INPUT --line-numbers # 开放指定的端口 iptables -A INPUT -p tcp --dport ...