JDBC連接MySQL數據庫代碼


******************************************************1**********************************************************
1
import java.sql.DriverManager; 2 import java.sql.ResultSet; 3 import java.sql.SQLException; 4 import java.sql.Connection; 5 import java.sql.Statement; 6 7 8 public class MysqlDemo { 9 public static void main(String[] args) throws Exception { 10 Connection conn = null; 11 String sql; 12 // MySQL的JDBC URL編寫方式:jdbc:mysql://主機名稱:連接端口/數據庫的名稱?參數=值 13 // 避免中文亂碼要指定useUnicode和characterEncoding 14 // 執行數據庫操作之前要在數據庫管理系統上創建一個數據庫,名字自己定, 15 // 下面語句之前就要先創建javademo數據庫 16 String url = "jdbc:mysql://localhost:3306/javademo?" 17 + "user=root&password=root&useUnicode=true&characterEncoding=UTF8"; 18 19 try { 20 // 之所以要使用下面這條語句,是因為要使用MySQL的驅動,所以我們要把它驅動起來, 21 // 可以通過Class.forName把它加載進去,也可以通過初始化來驅動起來,下面三種形式都可以 22 Class.forName("com.mysql.jdbc.Driver");// 動態加載mysql驅動 23 // or: 24 // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver(); 25 // or: 26 // new com.mysql.jdbc.Driver(); 27 28 System.out.println("成功加載MySQL驅動程序"); 29 // 一個Connection代表一個數據庫連接 30 conn = DriverManager.getConnection(url); 31 // Statement里面帶有很多方法,比如executeUpdate可以實現插入,更新和刪除等 32 Statement stmt = conn.createStatement(); 33 sql = "create table student(NO char(20),name varchar(20),primary key(NO))"; 34 int result = stmt.executeUpdate(sql);// executeUpdate語句會返回一個受影響的行數,如果返回-1就沒有成功 35 if (result != -1) { 36 System.out.println("創建數據表成功"); 37 sql = "insert into student(NO,name) values('2012001','陶偉基')"; 38 result = stmt.executeUpdate(sql); 39 sql = "insert into student(NO,name) values('2012002','周小俊')"; 40 result = stmt.executeUpdate(sql); 41 sql = "select * from student"; 42 ResultSet rs = stmt.executeQuery(sql);// executeQuery會返回結果的集合,否則返回空值 43 System.out.println("學號\t姓名"); 44 while (rs.next()) { 45 System.out 46 .println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int類型可以用getInt() 47 } 48 } 49 } catch (SQLException e) { 50 System.out.println("MySQL操作錯誤"); 51 e.printStackTrace(); 52 } catch (Exception e) { 53 e.printStackTrace(); 54 } finally { 55 conn.close(); 56 } 57 58 } 59 60 }

******************************************2*****************************************

 1 DBHelper.java
 2 package com.hu.demo;
 3 
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.PreparedStatement;
 7 import java.sql.SQLException;
 8 
 9 public class DBHelper {
10     public static final String url = "jdbc:mysql://127.0.0.1/student";
11     public static final String name = "com.mysql.jdbc.Driver";
12     public static final String user = "root";
13     public static final String password = "root";
14 
15     public Connection conn = null;
16     public PreparedStatement pst = null;
17 
18     public DBHelper(String sql) {
19         try {
20             Class.forName(name);//指定連接類型
21             conn = DriverManager.getConnection(url, user, password);//獲取連接
22             pst = conn.prepareStatement(sql);//准備執行語句
23         } catch (Exception e) {
24             e.printStackTrace();
25         }
26     }
27 
28     public void close() {
29         try {
30             this.conn.close();
31             this.pst.close();
32         } catch (SQLException e) {
33             e.printStackTrace();
34         }
35     }
36 }
 1 Demo.java
 2 package com.hu.demo;
 3 
 4 import java.sql.ResultSet;
 5 import java.sql.SQLException;
 6 
 7 public class Demo {
 8 
 9     static String sql = null;
10     static DBHelper db1 = null;
11     static ResultSet ret = null;
12 
13     public static void main(String[] args) {
14         sql = "select *from stuinfo";//SQL語句
15         db1 = new DBHelper(sql);//創建DBHelper對象
16 
17         try {
18             ret = db1.pst.executeQuery();//執行語句,得到結果集
19             while (ret.next()) {
20                 String uid = ret.getString(1);
21                 String ufname = ret.getString(2);
22                 String ulname = ret.getString(3);
23                 String udate = ret.getString(4);
24                 System.out.println(uid + "\t" + ufname + "\t" + ulname + "\t" + udate );
25             }//顯示數據
26             ret.close();
27             db1.close();//關閉連接
28         } catch (SQLException e) {
29             e.printStackTrace();
30         }
31     }
32 
33 }

*********************************************3********************************************************

 1 /*JDBC
 2 
 3 1.         在Java中,軟件功能都是由類來完成的。
 4 
 5 2.         用於操作數據庫的類統稱為JDBC(java database connective)
 6 
 7 3.         數據庫產品比較多(mysql,oracle,sqlserver),java並沒有提供訪問數據庫的JDBC類,這些類都是由數據庫廠商提供的。
 8 
 9 4.         Java只提供了訪問數據庫的接口,數據庫廠商的類實現了接口。
10 
11 5.         在java中操作數據庫需要導入數據庫廠商提供的類,這些類通常被放在以.jar為擴展名的文件中,這個文件稱為jar文件。
12 
13 6.         數據庫操作通常指的是(CRUD),其本質就是java向數據庫中發送sql語句,然后在數據庫中執行sql語句 。
14 
15 7.         完成數據庫操作需要以下接口配合完成
16 
17 a)         DriverManager 類驅動程序
18 
19 b)         Connection 接口連接數據庫的類
20 
21 c)         Statement 接口執行sql語句的類
22 
23 d)         ResultSet 接口保存結果集的類
24 
25 JDBC連接mysql數據庫代碼
26 */
27 import java.sql.*;
28 public class Insert {
29  public static void main(String[] args) {
30   Connection conn =null;//conn用於連接數據庫
31   Statement stmt = null;//stmt用於發送sql語句到數據庫並執行sql語句
32   //localhost:表示數據庫服務器地址,如192.168.0.1
33   //3306表示端口號
34   //test是數據庫名稱
35   //user是數據庫用戶名
36   //password是數據庫的密碼
37   String connectionString = "jdbc:mysql://localhost:3306/test?user=root&password=root";
38   
39   try {
40    //將數據驅動程序類加載到內存中
41    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
42    
43    //通過驅動程序管理器DriverManager獲取連接對象conn,conn連接的服務器和數據庫信息在connectionString
44    conn = DriverManager.getConnection(connectionString);
45    stmt = conn.createStatement();
46    String sql ="insert into mytable(username,age) values('色即是空',28)";
47    
48    //將sql語句發送到test數據中,並執行,i是影響的行數  >0表示成功 否則表示失敗
49    int i = stmt.executeUpdate(sql);
50    if(i>0){
51     System.out.println("哈哈,添加成功啦");
52    }else{
53     System.out.println("哈哈,添加!!!!!成功啦");
54    }
55   } catch (InstantiationException e) {
56    e.printStackTrace();
57   } catch (IllegalAccessException e) {
58    e.printStackTrace();
59   } catch (ClassNotFoundException e) {
60    e.printStackTrace();
61   } catch (SQLException e) {
62    e.printStackTrace();
63   }
64   
65  }
66 }

********************************4***************************

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.SQLException;
 4 import java.sql.ResultSet;
 5 import java.sql.Statement;
 6 import java.sql.*;
 7 
 8 public class BaseConnection {
 9 private Connection con = null;  
10 protected Connection getCon(){
11     ResultSet rs=null;    Statement stmt = null;
12    try {
13     Class.forName("org.gjt.mm.mysql.Driver");
14     String url="jdbc:mysql://192.168.0.10/數據庫名?user=USR&password=PWD";
15      conn = DriverManager.getConnection(url);  
16 
17     stmt = conn.createStatement();
18 } catch (ClassNotFoundException e) {
19     e.printStackTrace();
20    } catch (SQLException e) {
21     e.printStackTrace();
22    }      
23    return con;
24 }
25 }
26 /*
27 1、Oracle8/8i/9i數據庫(thin模式)
28 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
29 String url="jdbc:oracle:thin:@localhost:1521:orcl";
30 //orcl為數據庫的SID
31 String user="test";
32 String password="test";
33 Connection conn= DriverManager.getConnection(url,user,password);
34 
35 
36 2、DB2數據庫
37 Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
38 String url="jdbc:db2://localhost:5000/sample";
39 //sample為你的數據庫名
40 String user="admin";
41 String password="";
42 Connection conn= DriverManager.getConnection(url,user,password);
43 
44 
45 3、Sql Server7.0/2000數據庫
46 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
47 String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
48 //mydb為數據庫
49 String user="sa";
50 String password="";
51 Connection conn= DriverManager.getConnection(url,user,password);
52 
53 
54 4、Sybase數據庫
55 Class.forName("com.sybase.jdbc.SybDriver").newInstance();
56 String url =" jdbc:sybase:Tds:localhost:5007/myDB";
57 //myDB為你的數據庫名
58 Properties sysProps = System.getProperties();
59 SysProps.put("user","userid");
60 SysProps.put("password","user_password");
61 Connection conn= DriverManager.getConnection(url, SysProps);
62 
63 
64 5、Informix數據庫
65 Class.forName("com.informix.jdbc.IfxDriver").newInstance();
66 String url =
67 "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
68 user=testuser;password=testpassword";
69 //myDB為數據庫名
70 Connection conn= DriverManager.getConnection(url);
71 
72 
73 6、MySQL數據庫
74 Class.forName("org.gjt.mm.mysql.Driver").newInstance();
75 String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
76 //myDB為數據庫名
77 Connection conn= DriverManager.getConnection(url);
78 
79 
80 7、PostgreSQL數據庫
81 Class.forName("org.postgresql.Driver").newInstance();
82 String url ="jdbc:postgresql://localhost/myDB"
83 //myDB為數據庫名
84 String user="myuser";
85 String password="mypassword";
86 Connection conn= DriverManager.getConnection(url,user,password);*/

***********************************5**********************************

  1 JDBC連接MySQL(假設數據庫和jdk環境已經安裝好):
  2 加載及注冊JDBC驅動程序
  3 Class.forName("com.mysql.jdbc.Driver");
  4 
  5 Class.forName("com.mysql.jdbc.Driver").newInstance();
  6 
  7 JDBC URL 定義驅動程序與數據源之間的連接
  8 標准語法:
  9 <protocol(主要通訊協議)>:<subprotocol(次要通訊協議,即驅動程序名稱)>:<data source identifier(數據源)>
 10 
 11 MySQL的JDBC URL格式:
 12 
 13 jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][¶m2=value2]….
 14 
 15 示例:jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password
 16 
 17 常見參數:
 18 
 19 user                       用戶名
 20 
 21 password                  密碼
 22 
 23 autoReconnect                  聯機失敗,是否重新聯機(true/false 24 
 25 maxReconnect              嘗試重新聯機次數
 26 
 27 initialTimeout               嘗試重新聯機間隔
 28 
 29 maxRows                   傳回最大行數
 30 
 31 useUnicode                 是否使用Unicode字體編碼(true/false 32 
 33 characterEncoding          何種編碼(GB2312/UTF-8/…)
 34 
 35 relaxAutocommit            是否自動提交(true/false 36 
 37 capitalizeTypeNames        數據定義的名稱以大寫表示
 38 
 39 大寫表示
 40 
 41 建立連接對象
 42 
 43 String url="jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password";Connection con = DriverManager.getConnection(url);
 44 
 45 建立SQL陳述式對象(Statement Object)
 46 
 47 Statement stmt = con.createStatement();
 48 
 49 執行SQL語句
 50 
 51 executeQuery()
 52 
 53 String query = "select * from test";
 54 
 55 ResultSet rs=stmt.executeQuery(query);
 56 
 57 結果集ResultSet
 58 
 59 while(rs.next())
 60 
 61 {rs.getString(1);rs.getInt(2);}
 62 
 63 executeUpdate()
 64 
 65 String upd="insert into test (id,name) values(1001,xuzhaori)";
 66 
 67 int con=stmt.executeUpdate(upd);
 68 
 69 execute()
 70 
 71 示例:
 72 
 73 try
 74 
 75 {
 76 
 77 }
 78 
 79 catch(SQLException sqle)
 80 
 81 {
 82 
 83 }
 84 
 85 finally
 86 
 87 {
 88 
 89 }
 90 
 91 Java類型和SQL類型 技術手冊P421
 92 
 93 PreparedStatement(預編語句)
 94 
 95 PreparedStatement stmt = conn.prepareStatement("insert into test(id,name)values(?,?)");
 96 
 97 stmt.setInt(1,id);
 98 
 99 stmt.setString(2,name);
100 
101 注:一旦設定語句的參數值后,就可以多次執行改語句,直到調用clearParameters()方法將他清除為止
102 
103 CallableStatement(預儲程序)技術手冊P430
 1 import java.sql.*;
 2 publicclass MysqlJdbc {
 3   publicstaticvoid main(String args[]) {
 4     try {
 5       Class.forName("com.mysql.jdbc.Driver");     //加載MYSQL JDBC驅動程序   
 6       //Class.forName("org.gjt.mm.mysql.Driver");
 7      System.out.println("Success loading Mysql Driver!");
 8     }
 9     catch (Exception e) {
10       System.out.print("Error loading Mysql Driver!");
11       e.printStackTrace();
12     }
13     try {
14       Connection connect = DriverManager.getConnection(
15           "jdbc:mysql://localhost:3306/test","root","198876");
16            //連接URL為   jdbc:mysql//服務器地址/數據庫名  ,后面的2個參數分別是登陸用戶名和密碼
17 
18       System.out.println("Success connect Mysql server!");
19       Statement stmt = connect.createStatement();
20       ResultSet rs = stmt.executeQuery("select * from user");
21                                                               //user 為你表的名稱
22 while (rs.next()) {
23         System.out.println(rs.getString("name"));
24       }
25     }
26     catch (Exception e) {
27       System.out.print("get data error!");
28       e.printStackTrace();
29     }
30   }
31 }
 1 import java.sql.*;
 2 
 3 publicclass Myjproject {
 4  publicstaticvoid main(String args[])
 5  {
 6      try {
 7           Class.forName("com.mysql.jdbc.Driver");     //加載MYSQL JDBC驅動程序   
 8           //Class.forName("org.gjt.mm.mysql.Driver");
 9          System.out.println("Success loading Mysql Driver!");
10         }
11         catch (Exception e) {
12           System.out.print("Error loading Mysql Driver!");
13           e.printStackTrace();
14         }
15   try {
16       Connection connect = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","root","198876");
17      
18        int num=100;
19        PreparedStatement Statement=connect.prepareStatement("INSERT INTO user VALUES(?,?)");
20        for(int i=0;i<num;i++)        //定義個100次的循環,往表里插入一百條信息。
21       {
22            Statement.setString(1,"chongshi"+i);
23            Statement.setString(2,"bo"+i);
24            Statement.executeUpdate();
25    }
26 
27   // } catch (ClassNotFoundException e) {
28     // TODO Auto-generated catch block
29    // System.out.println("An error has occurred:"+e.toString());
30   //  e.printStackTrace();
31    }catch(SQLException e)
32    {
33    }
34  }
35 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM