第十五周作业
题目1:编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id、username、password),验证登录是否成功。
源代码:
1 package Login; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 import java.sql.ResultSet; 8 import java.util.Scanner; 9 10 public class Demo1 { 11 public static void main(String[] args) { 12 System.out.println("请输入用户名:"); 13 Scanner reader1=new Scanner(System.in); 14 String name=reader1.nextLine(); 15 System.out.println("请输入密码:"); 16 Scanner reader2=new Scanner(System.in); 17 String word=reader2.nextLine(); 18 Connection con=null; 19 Statement st=null; 20 ResultSet rs=null; 21 try { 22 Class.forName("com.mysql.jdbc.Driver"); // 加载JDBC驱动程序 23 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/database1", 24 "root",""); //建立与数据库的连接 25 st=con.createStatement(); //创建一个执行SQL语句的对象 26 String sql="select * from t_login where username='"+name+"'and password='"+word+"'"; //SQL语句 27 rs=st.executeQuery(sql); //查询语句 28 if(rs.next()) 29 { 30 System.out.println("登录成功!"); 31 } 32 else 33 { 34 System.out.println("登录失败!"); 35 } 36 } catch (ClassNotFoundException e) { 37 e.printStackTrace(); 38 } catch (SQLException e) { 39 e.printStackTrace(); 40 } 41 finally 42 { 43 try { 44 st.close(); //依次关闭数据库连接 45 con.close(); 46 } catch (SQLException e) { 47 e.printStackTrace(); 48 } 49 } 50 } 51 }
运行截图:
题目2:在上一题基础上,当登录成功后,将t_user表(id、name、sex、birthday)的信息进行显示(要求使用DB.java完成登录和获取t_user表中数据的操作),最后再对t_user表进行一条记录的添加操作。
源代码:
DB.java
1 package Login; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.SQLException; 7 import java.sql.ResultSet; 8 9 10 public class DB { 11 12 private Connection con; 13 private PreparedStatement pre; 14 private ResultSet rs; 15 private static DB db; 16 17 static 18 { 19 try { 20 Class.forName("com.mysql.jdbc.Driver"); 21 } 22 catch (ClassNotFoundException e) { 23 e.printStackTrace(); 24 } 25 } 26 private DB() 27 { 28 try { 29 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/database1", "root",""); 30 } catch (SQLException e) { 31 e.printStackTrace(); 32 } 33 34 } 35 public static DB getInstance() { 36 if(db==null) 37 db=new DB(); 38 return db; 39 } 40 public ResultSet executeSelect(String sql,Object[] args){ 41 try { 42 pre=con.prepareStatement(sql); 43 if(args.length!=0) 44 { 45 for(int i=0;i<args.length;i++) 46 { 47 pre.setObject(i+1, args[i]); 48 } 49 } 50 rs=pre.executeQuery(); 51 } catch (SQLException e) { 52 e.printStackTrace(); 53 } 54 return rs; 55 } 56 public int executeModify(String sql,Object[] args) 57 { 58 int n=0; 59 try { 60 pre=con.prepareStatement(sql); 61 if(args.length!=0) 62 { 63 for(int i=0;i<args.length;i++) 64 { 65 pre.setObject(i+1, args[i]); 66 } 67 } 68 n=pre.executeUpdate(); 69 } catch (SQLException e) { 70 e.printStackTrace(); 71 } 72 return n; 73 } 74 public void close(){ 75 try { 76 if(rs!=null) 77 rs.close(); 78 pre.close(); 79 con.close(); 80 } catch (SQLException e) { 81 e.printStackTrace(); 82 } 83 84 } 85 86 }
Demo2.java
1 package Login; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 import java.util.Scanner; 9 10 public class Demo2 { 11 public static void main(String[] args) { 12 System.out.println("请输入用户名:"); 13 Scanner reader1=new Scanner(System.in); 14 String name=reader1.nextLine(); 15 System.out.println("请输入密码:"); 16 Scanner reader2=new Scanner(System.in); 17 String word=reader2.nextLine(); 18 Connection con=null; 19 Statement st=null; 20 ResultSet rs=null; 21 try { 22 Class.forName("com.mysql.jdbc.Driver"); // 加载JDBC驱动程序 23 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/database1", 24 "root",""); //建立与数据库的连接 25 st=con.createStatement(); //创建一个执行SQL语句的对象 26 String sql="select * from t_login where username='"+name+"'and password='"+word+"'"; //SQL语句 27 rs=st.executeQuery(sql); //查询语句 28 if(rs.next()) 29 { 30 System.out.println("登录成功!"); 31 System.out.println("****************显示信息****************"); 32 rs=DB.getInstance().executeSelect("select * from t_user", args); 33 while(rs.next()){ 34 System.out.println("姓名:"+rs.getString(2)+" 性别:"+rs.getString(3)+" 生日:"+rs.getString(4)); 35 } 36 System.out.println("****************添加信息***************"); 37 System.out.println("请输入姓名:"); 38 Scanner reader=new Scanner(System.in); 39 String name1=reader.nextLine(); 40 System.out.println("请输入性别:"); 41 String sex=reader.nextLine(); 42 System.out.println("请输入出生日期:"); 43 String birthday =reader.nextLine(); 44 String newsql="insert into t_user (name,sex,birthday) values ('"+name1+"','"+sex+"','"+birthday+"')"; 45 46 int n=DB.getInstance().executeModify(newsql, args); 47 if(n>0){ 48 System.out.println("添加成功"); 49 50 }else{ 51 System.out.println("添加失败"); 52 53 } 54 } 55 else 56 { 57 System.out.println("登录失败"); 58 59 } 60 61 } catch (ClassNotFoundException e) { 62 e.printStackTrace(); 63 } catch (SQLException e) { 64 e.printStackTrace(); 65 } 66 finally 67 { 68 try { 69 st.close(); //依次关闭数据库连接 70 con.close(); 71 } catch (SQLException e) { 72 e.printStackTrace(); 73 } 74 } 75 } 76 }
运行截图: