第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(); } } }
运行结果: