Java學習

          java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

           

          Java連接mysql數據庫攻略

          一. 軟件下載
            Mysql
            下載版本:4.1.11
          http://dev.mysql.com/downloads/mysql/4.1.html

            JDBC驅動
            下載版本:3.1.8
          http://dev.mysql.com/downloads/connector/j/3.1.html

            Mysql界面插件:mysql-front
            下載版本鏡像:HongKong(我下回來安裝就是中文版了)
          http://www.mysqlfront.de/download.html

          二. 軟件安裝
           打開下載的mysql安裝文件mysql-5.0.27-win32.zip,雙擊解壓縮,運行“setup.exe”,出現如下界面:

          mysql安裝向導啟動,按“Next”繼續

          選擇安裝類型,有“Typical(默認)”、“Complete(完全)”、“Custom(用戶自定義)”三個選項,我們選擇“Custom”,有更多的選項,也方便熟悉安裝過程

          在“Developer Components(開發者部分)”上左鍵單擊,選擇“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下屬子部分內容,全部安裝在本地硬盤上”。在上面的“MySQL Server(mysql服務器)”、“Client Programs(mysql客戶端程序)”、“Documentation(文檔)”也如此操作,以保證安裝所有文件。點選“Change...”,手 動指定安裝目錄。

          填上安裝目錄,我的是“F:"Server"MySQL"MySQL Server 5.0”,也建議不要放在與操作系統同一分區,這樣可以防止系統備份還原的時候,數據被清空。按“OK”繼續。

          返回剛才的界面,按“Next”繼續。

          確認一下先前的設置,如果有誤,按“Back”返回重做。按“Install”開始安裝。

          正在安裝中,請稍候,直到出現下面的界面

          這里是詢問你是否要注冊一個mysql.com的賬號,或是使用已有的賬號登陸mysql.com,一般不需要了,點選“Skip Sign-Up”,按“Next”略過此步驟。

          現在軟件安 裝完成了,出現上面的界面,這里有一個很好的功能,mysql配置向導,不用向以前一樣,自己手動亂七八糟的配置my.ini了,將 “Configure the Mysql Server now”前面的勾打上,點“Finish”結束軟件的安裝并啟動mysql配置向導。

          mysql配置向導啟動界面,按“Next”繼續。

          選擇配置方式,“Detailed Configuration(手動精確配置)”、“Standard Configuration(標準配置)”,我們選擇“Detailed Configuration”,方便熟悉配置過程。

          選擇服務器類型,“Developer Machine(開發測試類,mysql占用很少資源)”、“Server Machine(服務器類型,mysql占用較多資源)”、“Dedicated MySQL Server Machine(專門的數據庫服務器,mysql占用所有可用資源)”,大家根據自己的類型選擇了,一般選“Server Machine”,不會太少,也不會占滿。

          選擇mysql數據庫的大致用途,“Multifunctional Database(通 用多功能型,好)”、“Transactional Database Only(服務器類型,專注于事務處理,一般)”、“Non-Transactional Database Only(非事務處理型,較簡單,主要做一些監控、記數用,對MyISAM數據類型的支持僅限于non-transactional),隨自己的用途而選 擇了,我這里選擇“Transactional Database Only”,按“Next”繼續。

          對InnoDB Tablespace進行配置,就是為InnoDB 數據庫文件選擇一個存儲空間,如果修改了,要記住位置,重裝的時候要選擇一樣的地方,否則可能會造成數據庫損壞,當然,對數據庫做個備份就沒問題了,這里 不詳述。我這里沒有修改,使用用默認位置,直接按“Next”繼續

          選擇您的網站的一般mysql訪問量,同時連接的數目,“Decision Support(DSS)/OLAP(20個左右)”、“Online Transaction Processing(OLTP)(500個左右)”、“Manual Setting(手動設置,自己輸一個數)”,我這里選“Online Transaction Processing(OLTP)”,自己的服務器,應該夠用了,按“Next”繼續

          是否啟用TCP/IP連接,設定端口,如果不啟用,就只能在自己的機器上訪問mysql數據庫了,我這里啟用,把前面的勾打上,Port Number:3306,在這個頁面上,您還可以選擇“啟用標準模式”(Enable Strict Mode),這樣MySQL就不會允許細小的語法錯誤。如果您還是個新手,我建議您取消標準模式以減少麻煩。但熟悉MySQL以后,盡量使用標準模式,因 為它可以降低有害數據進入數據庫的可能性。按“Next”繼續

          這個比較重要,就是對mysql默認數據庫語言編碼進行設置,第一個是西文編碼,第二個是多字節的通用utf8編碼,都不是我們通用的編碼,這里選擇第 三個,然后在Character Set那里選擇或填入“gbk”,當然也可以用“gb2312”,區別就是gbk的字庫容量大,包括了gb2312的所有漢字,并且加上了繁體字、和其它 亂七八糟的字——使用mysql的時候,在執行數據操作命令之前運行一次“SET NAMES GBK;”(運行一次就行了,GBK可以替換為其它值,視這里的設置而定),就可以正常的使用漢字(或其它文字)了,否則不能正常顯示漢字。按 “Next”繼續。

          選擇是否將mysql安裝為windows服務,還可以指定Service Name(服務標識名稱),是否將mysql的bin目錄加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目錄名,比如連接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我這里全部打上了勾,Service Name不變。按“Next”繼續。

          這一步詢問是否要修改默認root用戶(超級管理)的密碼(默認為空),“New root password”如果要修改,就在此填入新密碼(如果是重裝,并且之前已經設置了密碼,在這里更改密碼可能會出錯,請留空,并將“Modify Security Settings”前面的勾去掉,安裝配置完成后另行修改密碼),“Confirm(再輸一遍)”內再填一次,防止輸錯。“Enable root access from remote machines(是否允許root用戶在其它的機器上登陸,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一個匿名用戶,匿名用戶可以連接數據庫,不能操作數據,包括查詢)”,一般就不用勾了,設置完畢,按“Next”繼續。

          確認設置無誤,如果有誤,按“Back”返回檢查。按“Execute”使設置生效。

            設置完畢,按“Finish”結束mysql的安裝與配置——這里有一個比較常見的錯誤,就是不能“Start service”,一般出現在以前有安裝mysql的服務器上,解決的辦法,先保證以前安裝的mysql服務器徹底卸載掉了;不行的話,檢查是否按上面一 步所說,之前的密碼是否有修改,照上面的操作;如果依然不行,將mysql安裝目錄下的data文件夾備份,然后刪除,在安裝完成后,將安裝生成的 data文件夾刪除,備份的data文件夾移回來,再重啟mysql服務就可以了,這種情況下,可能需要將數據庫檢查一下,然后修復一次,防止數據出錯。

          2.JDBC驅動:mysql-connector-java-3.1.8
            這只是一個壓縮包,并不需要安裝,只要將其解壓,我么使用的是文件夾mysql-connector-java-3.1.8里的文件:mysql-connector-java-3.1.8-bin.jar.

            3. Mysql界面插件:mysql-front
            這是一個安裝程序,按照提示安裝就可以了.

          三. 環境配置
           首先,我要說明的是我現在tomcat的安裝路徑是: D:"Program Files"Java"Tomcat;JDK的安裝路徑是:D:"Program Files"Java"j2sdk。

          在這里,需要配置環境變量的是JDBC驅動.在配置前先要把剛才說到的mysql-connector-java-3.1.8-bin.jar本地硬盤 某處(我放的地方:D:"Program Files"Java"mysqlforjdbc),然后根據你放的地方,配置classpath,我的配置是這樣的:

            D:"Program files"Java"j2sdk"lib"tools.jar;

            D:"Program Files"Java"j2sdk"lib"mysql-connector-java-3.1.8-bin-g.jar;

            D:"Program Files"Java"mysqlforjdbc"mysql-connector-java-3.1.8-bin.jar
          配置這個的目的是讓你的java應用程序找到連接mysql的驅動.

          配置完環境變量后還有很重要一步就是為JSP連接數據庫配置驅動,這個其實很簡單,就是把mysql-connector-java-3.1.8- bin.jar拷到某些文件夾里就行了,我在網上看了很多資料問了很多人,各種說法都有,我綜合了一下,為了保險,我都全做了,呵呵,反正就是拷一個 400K的文件而已,現列出要把mysql-connector-java-3.1.8-bin.jar拷進去的文件夾,如下:
          D:"Program Files"Java"Tomcat"common"lib
          D:"Program Files"Java"Tomcat"shared"lib

          四. 數據庫的使用

          Mysql安裝完畢以后,還有一些要注意的地方(推薦文章):http://blog.csdn.net/saulzy/archive/2005/04/23/359811.aspx
                 還有就是看mysql的官方中文文檔。。。。。。。。。。。

          就象在文章提到的,mysql安裝好后最重要一樣就是要看數據庫有沒有作為系統服務啟動了,所以在大家進行數據庫操作前,應要看看,在操作系統的開始 ->運行->輸入services.msc,確定你在安裝時你設置的關于mysql的那個服務已經啟動,這樣你在操作數據庫時不會報連接不上的錯誤.

          上面提到了一個較方便的mysql界面插件,但是這個界面是我在已經開始使用mysql后才找到的,剛開始我是在dos下用命令行進行操作的.雖然那個 界面也可以進行建庫啊,設定權限等操作,但是,我覺得懂得在使用命令行也是一個很重要的技能,所以我先從命令行開始說,怎樣簡單使用mysql.到后面會 談及mysql-front的使用.

          現在我想在mysql里建一個數據庫shujuku,以及在數據庫里建一個表biao.具體的命令如下(假設mysql我是剛安裝好的)

          1. 進入dos狀態(記住命令行的要運行在mysql的安裝目錄下的bin目錄的)

            2. 連接mysql
          輸入:mysql –h localhost –u root –p
          輸入在安裝時已設好的密碼,就近入了mysql的命令編輯界面了。

          3. 使用mysql的基本命令(在mysql命令行編輯每輸入完命令后最后一定要有分號,不然會報錯)
          顯示數據庫:show databases;
          使用數據庫:use 數據庫名;

          4.建庫
          命令:create database shujuku;

          5.為數據庫設置權限(用戶和密碼)
          命令:grant all privileges on shujuku.* to test@localhost identified by “123456”;
          當你執行完這個命令以后,只要你再以用戶名:test,密碼:123456登錄時你就只可以對shujuku這個數據庫操作,這樣避開使用root,對數據庫的安全有很大幫助.

          6.建表
          命令:create table biao(id int(8) primary key,name varchar(10));

          剩下來的與標準sqsl命令基本上是一樣的,具體操作略
          值得一提的是,你在命令行上輸入"?",就會有mysql命令的簡單幫助,如下:

          呵呵,那樣,我們還可以知道退出,就是"exit",呵呵!

          五. 關于mysql-front的使用
            我找了好幾個mysql的界面工具,覺得最簡潔方便還是mysql-front,可惜的是要收費,不過還好有試用期,呵呵,可以先感受感受一下,最重要一點是mysql-front有簡體中文版的,英文不好的我用起來就舒服多了.下面簡單說說使用吧.

            首先,安裝就不用說了,有向導,而且很簡單.安裝好后第一次運行時會跳出來一個要求添加對話的框,在這里你可以添加例如上面已經設定好的shujuku,過程如下:
          當你在注冊的復選框里填上你在上面mysql設定好的用戶名和密碼后,在選擇數據庫框里就有shujuku 的數據庫了,選上,按確定.進入mysql-fron后,你就會看到下面的界面,這是你就可以進行操作了.

          要說明的是,你還可以把root用戶也加進去,這要你在mysql-fron的界面上選設置->對話->新建,再按上面進行就可以,出了root你還可 以加入更多的用戶,方法還是一樣的,設置不同的用戶,是方便對不同數據庫進行管理,呵呵,root是權限最高的,可不要隨便讓別人使用你的root用戶, 保正你數據庫的安全.

          六. JSP連接mysql
            現在就是嘗試用jsp連接mysql了
          我在eclipse里建了個test_mysql.jsp頁面,代碼如下:

          <%@ page contentType="text/html; charset=gb2312" %>

          <%@ page language="java" %>

          <%@ page import="com.mysql.jdbc.Driver" %>

          <%@ page import="java.sql.*" %>

          <%

          //驅動程序名

          String driverName="com.mysql.jdbc.Driver";

          //數據庫用戶名

          String userName="cl41";

          //密碼

          String userPasswd="123456";

          //數據庫名

          String dbName="db";

          //表名

          String tableName="dbtest";

          //聯結字符串

          String url="jdbc:mysql:3306//localhost/"+dbName+";

          Class.forName("com.mysql.jdbc.Driver").newInstance();

          Connection connection=DriverManager.getConnection(url,userName,userPasswd);

          Statement statement = connection.createStatement();

          String sql="SELECT * FROM "+tableName;

          ResultSet rs = statement.executeQuery(sql);

          //獲得數據結果集合

          ResultSetMetaData rmeta = rs.getMetaData();

          //確定數據集的列數,亦字段數

          int numColumns=rmeta.getColumnCount();

          // 輸出每一個數據值

          out.print("id");

          out.print("|");

          out.print("num");

          out.print("<br>");

          while(rs.next()) {

          out.print(rs.getString(1)+" ");

          out.print("|");

          out.print(rs.getString(2));

          out.print("<br>");

          }

          out.print("<br>");

          out.print("數據庫操作成功,恭喜你");

          rs.close();

          statement.close();

          connection.close();

          %>

          <出處: Saulzy的BLOG>



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=678313

          上面的沒成功用下面的

          mysql-connector-java-5.0.4-bin.jar放入C:"Program Files"Java"jdk1.5.0_09"jre"libC:"Program Files"Apache Software Foundation"Tomcat 6.0"lib中,并設置環境變量classpath C:"Program Files"Java"jdk1.5.0_09"jre"lib"mysql-connector-java-5.0.4-bin.jar;C:"Program Files"Apache Software Foundation"Tomcat 6.0"lib"mysql-connector-java-5.0.4-bin.jar;

          現在可以進行javamysql數據庫的連接了

          下面用一個簡單的例子來測試一下

          在tomcat/webapps/下建一個文件夾mysqlManager,創建目錄mysqlManager/WEB-INF/classes

          mysqlManager/WEB-INF/web.xml

          在/mysqlManager/ 下新建index.jsp文件,內容如下

          /mysqlManager/index.jsp:

          <?xml version="1.0" encoding="gbk" ?>
          <%@ page language="java" contentType="text/html; charset=gbk"
              pageEncoding="gbk"%>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <%@ page import="java.sql.*" %>
          <%!
           //這個函數用來獲取一個和數據庫的連接
           Connection getConnection() throws SQLException{
            String dbURL="jdbc:mysql://localhost/mysql";
            String dbUser="root";
               String dbPassword="851120";
            try{
             Class.forName("com.mysql.jdbc.Driver");
            }catch(ClassNotFoundException e){
             e.printStackTrace();
            }
            return DriverManager.getConnection(dbURL,dbUser,dbPassword);
           }
           
           //判斷一個字符串是否為空
           boolean isEmptyString(String str){
            return str==null||str.length()==0||str.trim().length()==0;
           }
           //下面的函數使顯示的字符串為漢語
           String convert(String str){
            try{
             return new String(str.getBytes("ISO-8859-1"),"gbk");
            }catch(Exception e){
             return null;
            }
           }
          %>

          <script type="text/javascript">
          <!--
           function checkValue(){
            if(document.forms["main"].sql.value.length==0){
             alert("請輸入要執行的SQL語句");
             document.forms["main"].sql.focus();
             return false;
            }else{
             return true;
            }
           }
          //-->
          </script>
          <html xmlns="
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
          <title>mysql數據庫管理系統</title>
          </head>
          <body>
          <center>
           <table width="80%" border="0">
            <tr>請輸入要查詢的SQL語句</tr>
            <tr>
             <form action="index.jsp" name=main method="post" onsubmit="checkValue()">
              <td>
               <textarea name="sql" cols=80 rows=15></textarea>
              </td>   
              <td valign="bottom">
               <input type="submit" value="提交"/>
              </td>
             </form>
            </tr>
           </table>
           <hr />
           <%//接受用戶的輸入顯示查詢結果 %>
           <%
            //獲取用戶輸入的SQL語句
            String sql=request.getParameter("sql");
            //out.print("qwe");
            if(!isEmptyString(sql)){
           %>
             <p>您所輸入的SQL語句是<%=sql %></p>
           <%
             Connection con=null;
             Statement stmt=null;
             ResultSet rs=null;
             //out.print("qwe");
             try{
              //out.print("qwe");
              con=getConnection();
              //out.print("qwe");
              stmt=con.createStatement();
              //stmt.execute(sql);
              if(stmt.execute(sql)){
               //執行結果是ResultSet
               rs=stmt.getResultSet();
               //獲取rs自身的描述信息
               ResultSetMetaData rsmd=rs.getMetaData();
               //獲取rs的列數目
               int colNum=rsmd.getColumnCount();
           %>
               <p>您的查詢結果為:</p>
               <table border="1">
                <tr>
                 <%
                  for(int i=1;i<=colNum;i++){
                 %>
                  <td><%=rsmd.getColumnName(i) %></td>
                 <% 
                  }
                 %>
                </tr>
                 <%
                  while(rs.next()){
                 %>
                <tr>
                  <%
                   for(int j=1;j<=colNum;j++){
                  %>
                   <td><%=convert(rs.getString(j)) %></td>
                  <% 
                   }
                  }
                  %>
                </tr>
               </table>
           <%
              }else{
               
               int colNum=stmt.getUpdateCount();
               %>
               <p>您更新了<%=colNum %>列!</p>
               <%
              }
             }catch(SQLException e){
              %>
              <p>發生錯誤,請檢查數據庫的連接</p>
              <%
             }finally{
              try{
               if(rs!=null)
                rs.close();
              }catch(Exception e){
               }
              try{
               if(stmt!=null)
                stmt.close();
              }catch(Exception e){
               }
              try{
               if(con!=null)
                con.close();
              }catch(Exception e){
               }
             }
            }
           %>
          </center>
          </body>
          </html>

          在瀏覽其中運行http://localhost:8080/mysqlManager/index.jsp

          在輸入框中輸入sql查詢語句 select * from user 會產生查詢結果

          如有疑問可以給我發信qiudawei115@sohu.com



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1575829

          posted on 2009-07-07 16:24 找個美女做老婆 閱讀(6165) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          本blog已經搬到新家了, 新家:www.javaly.cn
           http://www.javaly.cn

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 闽清县| 乌兰县| 长海县| 江口县| 东阳市| 临桂县| 吉木萨尔县| 呼和浩特市| 浪卡子县| SHOW| 新蔡县| 永仁县| 建水县| 阳山县| 宣汉县| 和政县| 阿合奇县| 潞城市| 扎鲁特旗| 皮山县| 花莲县| 海南省| 舒城县| 邯郸市| 临夏市| 旺苍县| 株洲县| 深州市| 安化县| 五大连池市| 吉木萨尔县| 永福县| 杭锦后旗| 武宣县| 尖扎县| 呼玛县| 新丰县| 拉萨市| 延长县| 宁陕县| 共和县|