package com.zhiyou.dao; import com.zhiyou.entity.User; import com.zhiyou.util.BaseDao; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class LoginDao extends BaseDao { //新增一個用戶 public int insertUser() throws Exception { int i=0; super.getConnection();//創建鏈接 Scanner sc=new Scanner(System.in); System.out.println("輸入要添加的用戶名"); String username=sc.next(); System.out.println("輸入密碼"); String password=sc.next(); /*System.out.println("輸入id"); int id = Integer.valueOf(sc.next()).intValue();*/ String sql = "insert into login values('"+username+"','"+password+"')"; this.st=conn.createStatement(); i=st.executeUpdate(sql); closeAll(); return i; } //新增一個用戶 public int insertUser2(String username,String password) throws Exception { int i=0; super.getConnection();//創建鏈接 String sql = "insert into login values('"+username+"','"+password+"')"; this.st=conn.createStatement(); i=st.executeUpdate(sql); closeAll(); return i; } // 查 public List<User> getAll() { List<User> list = new ArrayList<User>(); this.getConnection(); try { this.st = conn.createStatement(); String sql = "select * from login"; rs=st.executeQuery(sql); while(rs.next()) { User user = new User(); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); list.add(user); } this.closeAll(); } catch (SQLException e) { e.printStackTrace(); } return list; } // 查 根據輸入的username返回用戶user public User getById(String username) throws Exception { User user = null; this.getConnection(); // 建立SQL語句 String sql = "select username,password from login where username='"+ username +"'"; System.out.println("sql語句:" + sql); // 建立執行語句 this.st = conn.createStatement(); // 執行SQL語句,返回結果集 rs = st.executeQuery(sql); // 遍歷結果集 if(rs.next()) { user = new User(); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); } // 關閉資源 this.closeAll(); // 返回對象user return user; } // 刪 public int deleteDao () throws Exception { int j = 0; // 得到鏈接 super.getConnection(); Scanner sc = new Scanner(System.in); System.out.println("輸入要刪除的用戶名"); String username=sc.next(); // 建立SQL語句 String sql = "delete from login where username='"+username+"'"; // 建立執行語句 this.st = conn.createStatement(); // 執行SQL語句,返回結果 j = st.executeUpdate(sql); // 關閉資源 closeAll(); // 返回刪除結果 return j; } // 改 public int updateDao() throws Exception { int a = 0; // 得到鏈接 super.getConnection(); Scanner sc = new Scanner(System.in); System.out.println("修改用戶名輸入:1 修改密碼請輸入:2"); String num = sc.next(); if(num != null && num.equals("1")) { System.out.println("輸入要修改姓名的用戶名"); String username1 = sc.next(); System.out.println("輸入新的用戶名"); String username2 = sc.next(); // SQL語句 String sql = "update login set username='"+username2+"' where username='"+username1+"' "; // 得到執行語句 this.st = conn.createStatement(); // 執行修改用戶名語句 int k = st.executeUpdate(sql); a = k; // 關閉資源 closeAll(); }else if(num != null && num.equals("2")) { System.out.println("輸入要修改密碼的用戶名"); String username1 = sc.next(); System.out.println("輸入新的密碼"); String password = sc.next(); // SQL語句 String sql = "update login set password='"+password+"' where username='"+username1+"' "; // 得到執行語句 this.st = conn.createStatement(); // 執行修改用戶名語句 int k = st.executeUpdate(sql); a = k; // 關閉資源 closeAll(); } // 返回結果 return a; } // 登陸 public User login(String username,String password) { User user = null; this.getConnection(); try { st=conn.createStatement(); String sql = "select username,password from login where username='"+username+"' and password='"+ password+"'"; System.out.println("sql: "+sql); rs = st.executeQuery(sql); // 遍歷結果集 if(rs.next()) { user = new User(); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); } } catch (SQLException e) { e.printStackTrace(); }finally { // 不管是否出現異常,都會執行finally中的代碼 closeAll(); } return user; } // 登陸 :使用preparedStatement 避免SQL注入 public User login2(String username,String password) { User user = null; this.getConnection(); try { // SQL語句 String sql = "select username,password from login where username=? and password=?"; System.out.println("sql: "+sql); // 準備執行語句 ps = conn.prepareStatement(sql); // 設置第一個通配符爲username, 至關於 給第一個通配符? 賦值 ps.setString(1, username); // 設置第二個通配符爲password ps.setString(2, password); // 執行SQL語句,返回結果集 rs = ps.executeQuery(); // 遍歷結果集 if(rs.next()) { user = new User(); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); } } catch (SQLException e) { e.printStackTrace(); }finally { // 不管是否出現異常,都會執行finally中的代碼 closeAll(); } return user; } }