• 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:ServerMySQLMySQL 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 FilesJavaTomcat;JDK的安装路径是:D:Program FilesJavaj2sdk。

       在这里,需要配置环境变量的是JDBC驱动.在配置前先要把刚才说到的mysql-connector-java-3.1.8-bin.jar本地硬盘 某处(我放的地方:D:Program FilesJavamysqlforjdbc),然后根据你放的地方,配置classpath,我的配置是这样的:

      D:Program filesJavaj2sdklib ools.jar;

      D:Program FilesJavaj2sdklibmysql-connector-java-3.1.8-bin-g.jar;

      D:Program FilesJavamysqlforjdbcmysql-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 FilesJavaTomcatcommonlib
      D:Program FilesJavaTomcatsharedlib

    四. 数据库的使用

      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 FilesJavajdk1.5.0_09jrelib和C:Program FilesApache Software FoundationTomcat 6.0lib中,并设置环境变量classpath C:Program FilesJavajdk1.5.0_09jrelibmysql-connector-java-5.0.4-bin.jar;C:Program FilesApache Software FoundationTomcat 6.0libmysql-connector-java-5.0.4-bin.jar;

    现在可以进行java和mysql数据库的连接了

    下面用一个简单的例子来测试一下

    在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" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <%@ 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="http://www.w3.org/1999/xhtml">
    <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

  • 相关阅读:
    HDU 1385 Minimum Transport Cost
    TOJ 3488 Game Dice
    TOJ 1717 WOJ
    POJ 2553 The Bottom of a Graph
    TOJ 1836 Play on Words
    利用OpenCV建立视差图像
    分享一个PyTorch医学图像分割开源库
    WACV 2021 论文大盘点-图像分割篇
    SolidWorks动画教程(1):简单动画制作
    VS2013安装及破解教程
  • 原文地址:https://www.cnblogs.com/bdzwater/p/3143123.html
Copyright © 2020-2023  润新知