java連接數據庫的代碼基本是固定的,步驟過程覺得繁瑣些,代碼記起來對我來說是鬧挺。直接上代碼:
(溫馨提醒:你的項目提前導入連接數據庫的jar包才有的以下操作 )
1 class DBConnection{ 2 3 // 驅動類名 4 String driver="com.mysql.jdbc.Driver"; 5 // URL格式,最后為數據庫名 6 String url="jdbc:mysql://localhost:3306/javaTest?useUnicode=true&characterEncoding=UTF8"; //JavaTest為你的數據庫名稱 7 String user="root"; 8 String password="123456"; 9 Connection coon=null; 10 public DBConnection(){ 11 try{ 12 // 加載驅動程序 13 Class.forName(driver); 14 coon=(Connection)DriverManager.getConnection(url,user,password); 15 if(!coon.isClosed()){ 16 System.out.println("成功連接數據庫!"); 17 } 18 }catch (Exception e){ 19 e.printStackTrace(); 20 } 21 } 22 public void close(){ 23 try{ 24 this.coon.close(); 25 }catch(Exception e){ 26 e.printStackTrace(); 27 } 28 } 29 // 增加數據 30 public void add(String name,int age,String gender){ 31 // String sql="insert into usrInfo(username,gender,age) values(?,?,?)"; //向usrInfo表中插入數據 32 String sql="insert into usrInfo(age,gender,username) values('"+age+"','"+gender+"','"+name+"')"; 33 try{ 34 PreparedStatement preStmt=(PreparedStatement)this.coon.prepareStatement(sql); 35 // preStmt.setString(1, name); 36 // preStmt.setInt(3, age); 37 // preStmt.setString(2, gender); //和上面的注釋的一塊組成另外一種插入方法 38 preStmt.executeUpdate(); 39 System.out.println("插入數據成功!"); 40 preStmt.close(); 41 }catch(Exception e){ 42 e.printStackTrace(); 43 } 44 } 45 46 // 查詢 47 public void select(){ 48 String sql="select * from usrInfo"; //查詢usrInfo表中的信息 49 50 try{ 51 Statement stmt=(Statement)this.coon.createStatement(); 52 ResultSet rs=(ResultSet)stmt.executeQuery(sql); //得到的是結果的集合 53 System.out.println("--------------------------------"); 54 System.out.println("姓名"+"\t"+"年齡"+"\t"+"性別"); 55 System.out.println("--------------------------------"); 56 while(rs.next()){ 57 String name=rs.getString("username"); 58 int age=rs.getInt("age"); 59 String gender=rs.getString("gender"); 60 System.out.println(name+"\t"+age+"\t"+gender); 61 } 62 stmt.close(); 63 }catch(Exception e){ 64 e.printStackTrace(); 65 } 66 } 67 68 // 更改數據 69 70 public void update(String name,int age){ 71 String sql="update usrInfo set age=? where username=?"; //推薦使用這種方式,下面的那種注釋方式不知道為啥有時候不好使 72 // String sql="update usrInfo set age="+age+" where username='"+name+"'"; 73 try{ 74 PreparedStatement prestmt=(PreparedStatement)this.coon.prepareStatement(sql); 75 prestmt.setInt(1, age); 76 prestmt.setString(2,name); 77 prestmt.executeUpdate(); 78 79 80 // Statement stmt=(Statement)this.coon.createStatement(); 81 // stmt.executeUpdate(sql); 82 System.out.println("更改數據成功!"); 83 prestmt.close(); 84 }catch(Exception e){ 85 e.printStackTrace(); 86 } 87 } 88 89 // 刪除數據 90 public void del(String name){ 91 String sql="delete from usrInfo where username=?"; 92 try{ 93 PreparedStatement prestmt=(PreparedStatement)this.coon.prepareStatement(sql); 94 prestmt.setString(1, name); 95 prestmt.executeUpdate(); 96 System.out.println("刪除數據成功!"); 97 prestmt.close(); 98 }catch(Exception e){ 99 e.printStackTrace(); 100 } 101 } 102 }
在主類中對其創建實例,實例中構造方法完成數據庫的連接操作,實例調用增刪改查方法進行對數據庫信息的操作
1 public class mysqlTest { 2 public static void main(String args[]){ 3 Scanner in=new Scanner(System.in); 4 DBConnection db=new DBConnection(); 5 6 // 插入數據 7 System.out.println("輸入姓名,年齡,性別:"); 8 String name=in.next(); 9 int age=in.nextInt(); 10 String gender=in.next(); 11 db.add(name, age, gender); 12 13 // 查詢數據 14 db.select(); 15 16 // 修改數據 17 // String name=in.next(); 18 // int age=in.nextInt(); 19 // db.update(name, age); 20 21 22 // 刪除數據 23 // String name=in.next(); 24 // db.del(name); 25 // 26 // db.close(); 27 } 28 29 }
原創不易,尊重版權。轉載請注明出處:http://www.cnblogs.com/xsmile/