十五次作业
题目1:编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id、username、password),验证登录是否成功。
题目2:在上一题基础上,当登录成功后,将t_user表(id、name、sex、birthday)的信息进行显示(要求使用DB.java完成登录和获取t_user表中数据的操作),最后再对t_user表进行一条记录的添加操作。
1 package shiwuzuoye; 2 import java.sql.ResultSet; 3 import java.sql.SQLException; 4 import java.util.*; 5 6 public class zhu { 7 8 public static void main(String[] args) { 9 Scanner r =new Scanner(System.in); 10 System.out.println("请输入用户名,密码"); 11 String username=r.next(); 12 String password=r.next(); 13 Object [] a={username,password}; 14 DB d=DB.getInstance(); 15 String sql = "select * from tlogin where username=? and password=?"; 16 17 18 ResultSet rs=d.executeSelect(sql,a); 19 try { 20 if(rs.next()){ 21 System.out.println("登录成功\r"); 22 String user="select * from tuser"; 23 System.out.println("显示tuser表"); 24 ResultSet usertable=d.executeSelect(user,args); 25 System.out.println("id\t"+"name\t"+"sex\t"+"birthday\t"); 26 while(usertable.next()){ 27 int id=usertable.getInt(1); 28 String name=usertable.getString(2); 29 String sex="女"; 30 int temp=usertable.getInt(3); 31 if(temp==1){ 32 sex="男"; 33 } 34 35 String birthday=usertable.getString(4); 36 System.out.println(id+"\t"+name+"\t"+sex+"\t"+birthday+"\t"); 37 } 38 39 System.out.println("添加新记录:"); 40 String name=r.next(); 41 int sex=r.nextInt();//0代表女,1代表男 42 String birthday=r.next(); 43 String insert="insert into tuser(name,sex,birthday) values(? , ?, ?)"; 44 Object[] in={name,sex,birthday}; 45 int n=d.executeModify(insert, in); 46 if(n>0){ 47 System.out.println("添加成功"); 48 } 49 50 else 51 System.out.println("添加失败"); 52 53 } 54 else 55 System.out.println("登录失败"); 56 57 } catch (SQLException e) { 58 e.printStackTrace(); 59 } 60 finally{ 61 d.close(); 62 } 63 64 } 65 66 }
1 package shiwuzuoye; 2 import java.sql.Connection; 3 import java.sql.DriverManager; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 8 9 public class DB { 10 private Connection con; 11 private PreparedStatement pre; 12 private ResultSet rs; 13 private static DB db; 14 15 static{ 16 try { 17 Class.forName("com.mysql.jdbc.Driver"); 18 } catch (ClassNotFoundException e) { 19 e.printStackTrace(); 20 } 21 } 22 23 private DB(){ 24 try { 25 con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", ""); 26 } catch (SQLException e) { 27 e.printStackTrace(); 28 } 29 } 30 31 public static DB getInstance(){ 32 if(db==null){ 33 db=new DB(); 34 } 35 return db; 36 } 37 38 public ResultSet executeSelect(String sql,Object[]args){ 39 try { 40 pre=con.prepareStatement(sql); 41 if(args.length!=0){ 42 for(int i=0;i<args.length;i++){ 43 pre.setObject(i+1, args[i]); 44 } 45 } 46 rs=pre.executeQuery(); 47 } catch (SQLException e) { 48 e.printStackTrace(); 49 } 50 return rs; 51 } 52 53 public int executeModify(String sql,Object []args){ 54 int n=0; 55 try { 56 pre=con.prepareStatement(sql); 57 if(args.length!=0){ 58 for(int i=0;i<args.length;i++){ 59 pre.setObject(i+1, args[i]); 60 } 61 } 62 n=pre.executeUpdate(); 63 } catch (SQLException e) { 64 e.printStackTrace(); 65 } 66 return n; 67 } 68 69 public void close(){ 70 try { 71 if(rs!=null){ 72 rs.close();} 73 pre.close(); 74 con.close(); 75 } catch (SQLException e) { 76 e.printStackTrace(); 77 } 78 } 79 80 81 }