第15周作业

题目1:

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

代码:

Login.java

package wyr;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class Login {
    public static void main(String[] args) {
        System.out.println("请输入用户名和密码");
        Scanner reader =new Scanner(System.in);
        String name=reader.next();
        String pwd=reader.next();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con =DriverManager.getConnection("jdbc:mysql://localhost:3306/wl", "root","0000");
            Statement st=con.createStatement();
            String sql="select * from t_login where username='"+name+"' and password='"+pwd+"'";
            ResultSet rs= st.executeQuery(sql);
            if(rs.next()){
                System.out.println("登录成功");
            }else{
                System.out.println("登录失败");
            }
            con.close();
            st.close();
            rs.close();
        
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}

运行结果:

 

 

 题目2:

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

 

代码:

DB.java

/*
 * 创建DB类,分别定义加载驱动器和连接方法、查询方法,增删改方法,和关闭流方法
 */
package jdbc;

import java.sql.*;

public class DB {
     private static DB db;
     private PreparedStatement pre;
     ResultSet rs;
     private Connection con;
     public static DB getInstance(){
            if(db==null){
                db=new DB();
            }
            return db;
        }
    DB(){
         try {
                con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","0000");
                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    }
    static {//加载连接桥
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //查询方法
    ResultSet  getQuery(String sql,Object[] args){
        //3
        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;
    }
    //增删改方法
    int  getUpdate(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;
    }
    //关闭流
    void close(){
        try {
             if(rs != null){
                    rs.close();                
                }
                pre.close();
                con.close(); 
        } catch (SQLException e) {
                e.printStackTrace();
        }
        
    }

}

 

Add.java

 

package wyr;

import java.sql.SQLException;
import java.util.Scanner;

public class Add {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
             System.out.println("请输入用户名和密码:");
            String username = in.next();
            String password = in.next();
            Object []login = {username, password};
            String sql = "select * from t_login where username=? and password=?";
            DB db = DB.getInstance();
            db.getQuery(sql, login);
            try {
                if(db.rs.next()){
                    System.out.println("登陆成功!");
                    Object []select = new Object[0];
                    sql = "select * from t_user ";
                    db.getQuery(sql, select);
                    int id;
                    String name = null;
                    String sex = null;
                    String birthday = null;
                    while(db.rs.next()){//输出显示t_user表内容;
                        id=db.rs.getInt(1);
                        name = db.rs.getString(2);
                        sex = db.rs.getString(3);
                        birthday = db.rs.getString(4);
                        System.out.println(id + "      " + name + "       "
                                + sex + "        " + birthday);
                    }
                    System.out.println("请输入姓名:");
                    String name1 = in.next();
                    System.out.println("请输入性别:");
                    String sex1 = in.next();
                    System.out.println("请输入生日:");
                    String birthday1 = in.next();
                    Object []add= {name1, sex1 , birthday1};
                    sql = "insert into t_user (name,sex,birthday) values(?,?,?)";
                    int count = db.getUpdate(sql, add); //添加记录;
                    if(count == 0){
                        System.out.println("插入失败!");
                    }else{
                        System.out.println("插入成功!");
                    }
                }else{
                    System.out.println("登录失败!");
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        
    }

}

 

 

 

运行结果:

 

 

posted @ 2019-12-11 22:14  李李李同學  阅读(181)  评论(0编辑  收藏  举报