java連線MySql資料庫 實現使用者登入功能
阿新 • • 發佈:2019-01-01
一: 準備工作
1.首先將MySql的jar包匯入專案檔案中,在進行連線。(Build path--> Add)
2.寫好配置檔案(dbinfo.properties)
3.
4.建立相應的類進行。
二:具體實現
1:登入介面
public class DengLu { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請輸入帳號:"); String name = sc.nextLine(); System.out.println("請輸入密碼:"); String pwd = sc.nextLine(); DoDengLu dl = new DoDengLu(); User user = dl.findUser(name, pwd); if(user!=null) { System.out.print("welcome to "+user.getName()); } else System.out.print("輸入錯誤"); } }
2.與資料庫實現互動
public class DoDengLu { public User findUser(String name,String pwd) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; User u =null; try{ conn = DBUtils.getConnection(); String Sql = "select * from stu28 where NAme=? and password=?"; // 預編譯 stmt = conn.prepareStatement(Sql); // 給問號賦值 stmt.setString(1,name); stmt.setString(2,pwd); // String sql ="select * from stu28 where Name = '"+name+"' AND PASsword = '"+pwd+"'"; // 這樣寫會導致SQL注入問題 就是後面 or '1'='1 rs = stmt.executeQuery(); if(rs.next()) { u = new User(); u.setId(rs.getInt(1)); u.setName(rs.getString(2)); u.setPassword(rs.getString(3)); u.setEmail(rs.getString(4)); u.setBirthday(rs.getDate(5)); } } catch(Exception e) { e.printStackTrace(); } finally { DBUtils.closeAll(rs, stmt, conn); } return u; } }
3.幫助工具
4.使用者public class DBUtils { private static String DriverClass; private static String url; private static String user; private static String password; // 靜態程式碼塊 類只要載入,直接執行 // 就是將配置檔案載入; static{ ResourceBundle rb = ResourceBundle.getBundle("dbinfo"); // 進行賦值操作; DriverClass = rb.getString("DriverClass"); url = rb.getString("url"); user = rb.getString("user"); password = rb.getString("password"); try { Class.forName(DriverClass); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 建立兩個方法: // yi :得到連線的方法 public static Connection getConnection() throws Exception{ return DriverManager.getConnection(url,user,password); } // 二 : 關閉資源 public static void closeAll(ResultSet rs,Statement stmt,Connection conn) { if(rs!=null) { try{ rs.close(); } catch(Exception e){ e.printStackTrace(); } } if(stmt!=null) { try{ stmt.close(); } catch(Exception e){ e.printStackTrace(); } } if(conn!=null) { try{ conn.close(); } catch(Exception e){ e.printStackTrace(); } } } }
public class User {
private int id;
private String name;
private String password;
private String email;
private Date birthday;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
5.配置檔案
// 根據自己修改 DriverClass = com.mysql.jdbc.Driver url = jdbc:mysql:///JDBC28 user = root password =root