第15周作业
题目:
编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id、username、password),验证登录是否成功。当登录成功后,将t_user表(id、name、sex、birthday)的信息进行显示(要求使用DB.java完成登录和获取t_user表中数据的操作),最后再对t_user表进行一条记录的添加操作。
代码:
1、DB.java
package cctv.tuil;
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 getInstence(){
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();
}
}
}
2、test类
package cctv.tuil;
import java.util.*;
import cctv.tuil.*;
import java.sql.*;
public class test {
public static void main(String[] args) {
Scanner r=new Scanner(System.in);
System.out.println("请输入用户名:");
String username=r.nextLine();
System.out.println("请输入密码:");
String password=r.nextLine();
Object []login={username,password};//Object数据,存放用户名、密码
String LoginSql="select * from t_login where username=? and password=?";
DB d=DB.getInstence();
ResultSet rs=d.executeSelect(LoginSql, login);//传递参数:登录的Sql语句、Login数组
try {
if(rs.next()){
System.out.println("登录成功");
String SelectSql="select * from t_user";
System.out.println("t_user表中记录如下:");
ResultSet select=d.executeSelect(SelectSql, args);//将查询的sql语句传给方法,查询表中信息
System.out.println("id\t"+"name\t"+"sex\t"+"birthday\t");
//循环输出结果集中查出的 信息
while(select.next()){
int id=select.getInt(1);
String name=select.getString(2);
String sex="男";
int temp=select.getInt(3);
if(temp==1){
sex="女";//sex字段:0为男,1为女。此处将数字转换成对应的性别
}
String birthday=select.getString(4);
System.out.println(id+"\t"+name+"\t"+sex+"\t"+birthday+"\t");
}
}
else
System.out.println("登录失败,请重新登录");
} catch (SQLException e) {
e.printStackTrace();
}
//下代码块为插入操作
System.out.println("请输入一条新记录:");
String name=r.nextLine();
int sex=r.nextInt();
r.nextLine();
String birthday=r.nextLine();
String InsertSql="insert into t_user(name,sex,birthday) values (?,?,?)";
Object[] insert={name,sex,birthday};//数组存放需要传递的参数
int n=d.executeModify(InsertSql, insert);//传递参数
if(n!=0){
System.out.println("记录添加成功");
}
d.close();//断开连接
}
}
运行结果:
1、数据表初始状态


2、程序运行,查询t_user表全部记录,并插入一条新记录

3、t_user 表插入成功


浙公网安备 33010602011771号