加入mysql-connector-java-5.1.21-bin.jar
package neo.mysql; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JdbcMySQL { Connection conn; String username; String password; String url; String databaseName; String port = "3306"; String sqlstr = "jdbc:mysql://"+url+":"+port+"/"+databaseName+"?useUnicode=true&characterEncoding=UTF-8"; String userNameString = "name"; String passwdNameString = "passwd"; public JdbcMySQL(String url, String databaseName, String username, String password){ sqlstr = "jdbc:mysql://"+url+":"+port+"/"+databaseName+"?useUnicode=true&characterEncoding=UTF-8"; //透過java.lang.Class類別的forName()來載入並向DriverManager註冊JDBC驅動程式(驅動程式會自動透過DriverManager.registerDriver()方法註冊), MySQL的驅動程式類別是com.mysql.jdbc.Driver try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //jdbc:mysql://主機名稱:連接埠/資料庫名稱?參數1=值1&參數2=值2 conn = java.sql.DriverManager.getConnection(sqlstr,username,password); if(!conn.isClosed()) System.out.println("MySQL資料庫連線成功"); } catch (SQLException e) { System.out.println("連不上MySQL!!!"); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public void getConnection(){ try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //jdbc:mysql://主機名稱:連接埠/資料庫名稱?參數1=值1&參數2=值2 conn = java.sql.DriverManager.getConnection(sqlstr,username,password); if(!conn.isClosed()) System.out.println("MySQL資料庫連線成功"); } catch (SQLException e) { System.out.println("連不上MySQL!!!"); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public void close(){ try { conn.close(); } catch (SQLException e) { System.out.println("無法關閉跟MySQL的連線!!!"); } } public void createTable(){ String createdbSQL = "CREATE TABLE User (" + " id INTEGER " + " , name VARCHAR(20) " + " , passwd VARCHAR(20))"; try { conn.setAutoCommit(false); Statement state = conn.createStatement(); state.executeUpdate(createdbSQL); conn.commit(); } catch (SQLException e) { System.out.println("MySQL新建資料表失敗!!!"); e.printStackTrace(); } } public void insertData(String name, String passwd){ String insertdbSQL = "insert into User(id,name,passwd) " + "select ifNULL(max(id),0)+1,?,? FROM User"; try { conn.setAutoCommit(false); PreparedStatement pst = conn.prepareStatement(insertdbSQL); pst.setString(1, name); pst.setString(2, passwd); pst.executeUpdate(); conn.commit(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void updateData(int id,String name, String passwd){ String insertdbSQL = "update User set name = ? ,passwd = ? where id = ?"; try { conn.setAutoCommit(false); PreparedStatement pst = conn.prepareStatement(insertdbSQL); pst.setInt(3, id); pst.setString(1, name); pst.setString(2, passwd); pst.executeUpdate(); conn.commit(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void delete(String tableName,String username){ String sql = "delete from "+tableName+" where "+userNameString+" = ?"; Statement state; try { conn.setAutoCommit(false); PreparedStatement pst = conn.prepareStatement(sql); pst.setString(1, username); pst.execute(); conn.commit(); System.out.println("刪除成功!!!"); } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("刪除失敗!!!"); e.printStackTrace(); } } public void research(){ String sql = "select * from User"; Statement state; try { conn.setAutoCommit(false); state = conn.createStatement(); ResultSet rs = state.executeQuery(sql); conn.commit(); while (rs.next()) { System.out.println(rs.getInt("id")); System.out.println(rs.getString("name")); System.out.println(rs.getString("passwd")); //System.out.println(rs.toString()); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public boolean validation(String tableName,String username,String passwd){ String sql = "SELECT "+passwdNameString+" FROM `"+tableName+"` WHERE "+userNameString+"=?"; try { conn.setAutoCommit(false); PreparedStatement pst = conn.prepareStatement(sql); pst.setString(1, username); ResultSet rs = pst.executeQuery(); conn.commit(); while (rs.next()) { if (rs.getString(passwdNameString).equalsIgnoreCase(passwd)) return true; } return false; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } }
沒有留言:
張貼留言