望塵軒中一盞茶

          導(dǎo)航

          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          公告


          經(jīng)典書籍
          Java核心技術(shù)

          Java核心技術(shù) 卷二

          Java編程思想 第四版

          隨筆分類

          隨筆檔案

          統(tǒng)計

          留言簿

          友情鏈接

          閱讀排行榜

          評論排行榜

          Java中使用JDBC訪問MySQL數(shù)據(jù)庫

           
          使用JDBC訪問MySQL數(shù)據(jù)庫也有兩種方法(這里不介紹使用APP SERVER的數(shù)據(jù)庫連接池訪問數(shù)據(jù)庫),一種是使用JDBC-ODBC橋方式連接,這里不作介紹了,可以參考連接SQL Server2000的方式。這里主要介紹使用MySQL提供的JDBC驅(qū)動程序來連接:
              首先下載(http://www.mysql.com)、安裝并配置MySQL,下載MySQL5.1并進行安裝。安裝完成之后接著進行配置,配置時選擇Standard Configuration(標(biāo)準(zhǔn)配置)即可,然后選擇服務(wù)器名字MySQL51,并選中"Include Bin Directory in Windows PATH",之后輸入root用戶的密碼,最后執(zhí)行配置就可以了。這里還有一點,如果要使MySQL支持中文,還需要更改一下配置信息,更改MYSQL安裝目錄下的my.ini文件里的內(nèi)容。把default-character-set=中的拉丁編碼改為utf8,然后保存,重新啟動MYSQL服務(wù)器,之后建立的數(shù)據(jù)庫及數(shù)據(jù)庫中的表的編碼就是UTF8了,表中就可以插入中文了。安裝完成后,下一步要進行的是安裝MYSQL JDBC驅(qū)動程序。
              到http://mysql.cs.pu.edu.tw/Downloads/Connector-J/mysql-connector-java-5.1.2-beta.zip下載MYSQL5.1的JDBC驅(qū)動程序,解壓縮到你放JDBC驅(qū)動程序的位置就可以了,不需要安裝。然后設(shè)置Classpath環(huán)境變量,在Classpath環(huán)境變量里添加JDBC驅(qū)動程序,如我的是添加D:\JDBC_Driver\mysql\mysql-connector-java-5.1.2-beta\mysql-connector-java-5.1.2-beta-bin.jar。這樣就可以了,可以寫程序進行測試了。
              在mysql里創(chuàng)建數(shù)據(jù)庫mydb,并在mydb里建一個表格studinfo如下:
               create database mydb;

               use mydb;
               create table studinfo
               (ID varchar(10) primary key,
                Name varchar(30),
                Age int);
          然后使用下面的程序往數(shù)據(jù)庫里插入一條記錄并讀出來打?。?
           1 package jdbc.test1;
           2 
           3 import java.sql.*;
           4 
           5 /**
           6  * @author wzhongyu
           7  *
           8  */
           9 public class JDBCDemo {
          10 
          11     /**
          12      * @param args
          13      */
          14     public static void main(String[] args) {
          15         String user = "root";
          16         String password = "123456";
          17         String url = "jdbc:mysql://localhost:3306/mydb";
          18         String driver = "com.mysql.jdbc.Driver";
          19         //String driver = "org.gjt.mm.mysql.Driver";
          20         String tableName = "studinfo";
          21         String sqlstr;
          22         Connection con = null;
          23         Statement stmt = null;
          24         ResultSet rs = null;
          25         try{
          26             Class.forName(driver);
          27             con = DriverManager.getConnection(url, user, password);
          28             stmt = con.createStatement();
          29             
          30             sqlstr = "insert into "+tableName+" values ('20000908','honey',21)";
          31             stmt.executeUpdate(sqlstr);
          32             
          33             sqlstr = "select * from "+tableName;
          34             rs = stmt.executeQuery(sqlstr);
          35             
          36             ResultSetMetaData rsmd = rs.getMetaData();
          37             int j = 0;
          38             j = rsmd.getColumnCount();
          39             for(int k = 0; k<j; k++)
          40             {
          41                 System.out.print(rsmd.getCatalogName(k+1));
          42                 System.out.print("\t");
          43             }
          44             System.out.println();
          45             while(rs.next())
          46             {
          47                 for(int i=0;i<j;i++)
          48                 {
          49                     System.out.print(rs.getString(i+1));
          50                     System.out.print("\t");
          51                 }
          52                 System.out.println();
          53             }
          54         }
          55         catch(ClassNotFoundException e1)
          56         {
          57             System.out.println("數(shù)據(jù)庫驅(qū)動不存在!");
          58             System.out.println(e1.toString());
          59         }
          60         catch(SQLException e2)
          61         {
          62             System.out.println("數(shù)據(jù)庫存在異常!");
          63             System.out.println(e2.toString());
          64         }
          65         finally
          66         {
          67             try
          68             {
          69                 if(rs != null) rs.close();
          70                 if(stmt != null) stmt.close();
          71                 if(con != null) con.close();
          72             }
          73             catch(SQLException e)
          74             {
          75                 System.out.println(e.toString());
          76             }            
          77         }
          78     }
          79 }
          80 

          程序運行后會打印出插入表中的數(shù)據(jù)。
              如果要在eclipse中運行這個程序,首先需要在eclipse(這里用的是MyEclipse)中配置數(shù)據(jù)庫。打開eclipse,選擇window-->Preferences-->MyEclipse-->Database Explorer-->Database Drivers,點鏈接進入到DB Browser,右鍵點空白處-->new,新建一個數(shù)據(jù)庫連接。要填入的東西如下:
          Driver template:MySQL Connector/J
          Driver name:MySQL Connector/J
          Connection URL:jdbc:mysql://<hostname>[<:3306>]/<dbname>  (注上面選擇MySQL Connector/J之后,這里會自動填入的)
          User name:root
          Password:123456  (注這里的密碼是配置MYSQL時的密碼)
          在下面的Driver JARs框的右面點Add JARs,找到JDBC驅(qū)動程序mysql-connector-java-5.1.2-beta-bin.jar最后點OK就配置完成了。

              如果不喜歡MYSQL的在命令行上運行方式,可以到http://www.mysql.com上去下載一個GUI工具就可以了。

          posted on 2007-08-05 16:07 wzhongyu 閱讀(45432) 評論(3)  編輯  收藏 所屬分類: Java學(xué)習(xí)

          評論

          # re: Java中使用JDBC訪問MySQL數(shù)據(jù)庫 2008-10-08 16:08 其實

          System.out.print(rsmd.getCatalogName(k+1));
          寫錯了  回復(fù)  更多評論   

          # re: Java中使用JDBC訪問MySQL數(shù)據(jù)庫 2008-10-08 16:09 其實

          System.out.print(rsmd.getColumnName(k + 1));  回復(fù)  更多評論   

          # re: Java中使用JDBC訪問MySQL數(shù)據(jù)庫[未登錄] 2010-06-01 10:27 haha

          樓上的夠細心,贊一個  回復(fù)  更多評論   

          我的便捷門:綜合頻道 數(shù)碼頻道 商城頻道 電器頻道 男人頻道 女人頻道 居家玩具 美容頻道 飾品鞋包 食品頻道 臺灣館頻道
          主站蜘蛛池模板: 黄石市| 汪清县| 宝鸡市| 遂平县| 南川市| 慈溪市| 独山县| 来凤县| 锡林浩特市| 泰兴市| 龙口市| 个旧市| 文水县| 通山县| 紫云| 涟源市| 景宁| 霍林郭勒市| 汕尾市| 洪雅县| 邵阳市| 浦北县| 阿克苏市| 冀州市| 长治县| 乌海市| 尼勒克县| 龙胜| 连州市| 沾化县| 通城县| 盱眙县| 杭锦旗| 江安县| 乌兰浩特市| 张家川| 苏州市| 永善县| 关岭| 宁德市| 南江县|