我原来做的是jsp+sql,但是现在老板要用mysql,等我都做完了才告诉我
我对mysql不是很熟,下面的代码是我连接sql用的javabean,我想改成jsp连mysql的javabean,应该怎么改啊?最好写下代码。在jsp中的查询语句需要改吗?谢谢大家了!
/**
 * Title:        软件超市
 * Description:  管理类DBSQL,实现对数据库的访问
 * Copyright:    Copyright (c) 2001
 * Company:
 * @author
 * @version 1.0
 */
package tom.jiafei;
import java.sql.*;public class DBSQL {
  Connection conn;
  Statement stmt;
  String strCon;
  
/**
 * 构造函数
 */
public DBSQL() {
  conn = null;
  stmt = null;
 // strCon = "jdbc:odbc:sun";  try {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  } catch (Exception ex) {
    System.err.println("没有找到JDBC-ODBC数据库驱动器");
  }
}/**
 * 打开数据库,准备操作
 */
public void openDB() {
  try {
    //连接数据库
    conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=anine","sa","");
    //创建一个可以滚动的只读的SQL语句对象
    stmt = conn.createStatement();
  } catch (SQLException ex) {
    System.err.println("aq.executeQuery: " + ex.getMessage());
  }
}/**
 * 关闭数据库
 */
public void closeDB() {
  try {
    //关闭SQL语句对象
    stmt.close();
    //关闭数据库
    conn.close();
  } catch (SQLException ex) {
    System.err.println("aq.executeQuery: " + ex.getMessage());
  }
}/**
 * 执行数据库SELECT查询
 *
 * @param sql 查询数据库的SELECT语句
 */
public ResultSet executeQuery(String sql) {
  ResultSet rs = null;  try {
    rs = stmt.executeQuery(sql);
  } catch(SQLException ex) {
    //记录一个错误
    System.err.println("aq.executeQuery: " + ex.getMessage());
  }
  return rs;
}/**
 * 执行数据库INSERT, UPDATE, DELETE查询
 *
 * @param sql 查询数据库的SELECT语句
 */
public int executeUpdate(String sql) {
  int ret = 0;  try {
    ret = stmt.executeUpdate(sql);
  } catch(SQLException ex) {
    System.err.println("aq.executeQuery: " + ex.getMessage());
  }  return ret;
}} //end of DBSQL

解决方案 »

  1.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=anine","sa","");这两个地方改掉就行了
    Class.forName("com.mysql.jdbc.Driver");//加载驱动程序 
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost/xxx","root","123456");//具体的数据库有不同名字
      

  2.   

    加载驱动程序更改:
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    连接URL更改:
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/DatabaseName=anine?user=sa);
      

  3.   

    掉了个双引号,再给你+上.conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/DatabaseName=anine?user=sa");
      

  4.   

    还有个事,因为我不是很懂mysql,我在网上搜了下,没有sql转mysql的方法啊,都是mysql转sql的,有经验的大侠给个教程,或者说下方法!再次感谢!
      

  5.   

    要转什么啊?是要把表转过去吗?
    用导出脚本的功能把sql server的表导出来,再导入到mysql去
      

  6.   

    还有就是,我原来用access转过sql,还比较简单,在数据源中,有个方法,可以直接转换的,不用什么脚本,sql转mysql有什么简单的方法吗?
      

  7.   

    给你 一个封装好了的DB,稍微修改下就好package com.bjsxt.drp.util;
    import java.sql.*;public class DB {
    public static Connection getConn() {
    Connection conn = null;
    try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection("jdbc:mysql://localhost/drp?user=root&password=root");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }

    return conn;
    }

    public static PreparedStatement prepare(Connection conn,  String sql) {
    PreparedStatement pstmt = null; 
    try {
    if(conn != null) {
    pstmt = conn.prepareStatement(sql);
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return pstmt;
    }

    public static PreparedStatement prepare(Connection conn,  String sql, int autoGenereatedKeys) {
    PreparedStatement pstmt = null; 
    try {
    if(conn != null) {
    pstmt = conn.prepareStatement(sql, autoGenereatedKeys);
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return pstmt;
    }

    public static Statement getStatement(Connection conn) {
    Statement stmt = null; 
    try {
    if(conn != null) {
    stmt = conn.createStatement();
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return stmt;
    }

    public static ResultSet getResultSet(Statement stmt, String sql) {
    ResultSet rs = null;
    try {
    if(stmt != null) {
    rs = stmt.executeQuery(sql);
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return rs;
    }

    public static void executeUpdate(Statement stmt, String sql) {
    try {
    if(stmt != null) {
    stmt.executeUpdate(sql);
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    public static void close(Connection conn) {
    try {
    if(conn != null) {
    conn.close();
    conn = null;
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    public static void close(Statement stmt) {
    try {
    if(stmt != null) {
    stmt.close();
    stmt = null;
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    public static void close(ResultSet rs) {
    try {
    if(rs != null) {
    rs.close();
    rs = null;
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }
      

  8.   

    改了这句"jdbc:mysql://localhost/使用的数据库名称?user=数据库用户名&password=数据库密码");
      

  9.   

    上面的改那就很简单,改几个地方就好了,如果有用到DAO模式的,要做点功夫了
      

  10.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    你载入的是ms sql server 的驱动,你的标题却是要连mysql,驴唇不对马嘴啊!
      

  11.   

    <%@ 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="test"; //数据库用户名
    String userPasswd="123456";//密码
    String dbName="db";//数据库名
    String tableName="dbtest";//表名
    String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd; //联结字符串
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection connection=DriverManager.getConnection(url);
    Statement statement = connection.createStatement();
    String sql="SELECT * FROM "+biao;
    ResultSet rs = statement.executeQuery(sql);
    ResultSetMetaData rmeta = rs.getMetaData();//获得数据结果集合
    int numColumns=rmeta.getColumnCount();//确定数据集的列数,亦字段数
    out.print("id");// 输出每一个数据值
    out.print("|");
    out.print("name");
    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();%>
     
     
     你可以根据这个改一下
      

  12.   

    改下QQ是344217995,顺便问下别的,csdn不能对自己发的帖子修改吗?
      

  13.   

    我看了下楼上的,cdg_java() ,你这也用了javabean是吗?<%@ page import="com.mysql.jdbc.Driver" %>这句?如果是用了javabean的话,怎么还要写这些?
    String driverName="com.mysql.jdbc.Driver" 
    String userName="test"; //数据库用户名
    String userPasswd="123456";//密码
    String dbName="db";//数据库名
    String tableName="dbtest";//表名
    String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
    要是方便的话,把你配套写的javabean也发过来吧,我就偷个懒直接用了,方便加我Q
    我用sql写的javabean就在一楼,里面直接写了啊
    public void openDB() {
      try {
        //连接数据库
        conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=anine","sa","");
    在jsp页面调用的时候就不用写了吧。
      

  14.   

    有没有下载mysql的数据库驱动包阿