我想在jsp中链接上数据库直接可以执行创建数据库的语句,原来做的只是在链接到已经创建好的数据库,然后在数据库里面进行诸如增加删除或者是穿件表的操作。现在我想直接用jsp语句创建一个数据库,写了一个jsp,高手们帮帮忙,看看什么问题
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%!
String password = null;
String username = null;
String DBDRIVER = "org.gjt.mm.mysql.Driver";
String DBURL = "jdbc:mysql://localhost:3306";
String DBUSER = username;
String DBPASSWORD = password;
Connection conn = null;
PreparedStatement pstmt = null;
String name = null;
%>
<%
username = request.getParameter("sqlname");
password = request.getParameter("sqlpass");
%>
<%
try
{
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
String sql = "create database" + username;
pstmt= conn.prepareStatement(sql);
    pstmt.executeUpdate();
}
catch(Exception e){
out.println(e);
} finally{
if(pstmt!=null) pstmt.close();
if(conn!=null) conn.close();
}%>

解决方案 »

  1.   

    确认下你的MYSQL数据库版本,在找个合适的mysql-connection-java.jar,放在web-inf/lib中比如 mysql5的数据库驱动包mysql-connection-java-5.1.13-bin.jar
      

  2.   

    我把楼主的程序做了三个修改:
    1:
     把  String DBURL = "jdbc:mysql://localhost:3306";
    改为 String DBURL = "jdbc:mysql://localhost/mydata?";2:把String sql = "create database" + username;
         改为:String sql = "show tables";
    程序运行,并没有错误。我也是初学者,我的结论是这样的:第一,楼主的 DBURL 错误。
    第二,jsp 只能使用、修改、或者查询数据库。并不能创建数据库。
        所以指定 DBURL 的时候,需要在最后加上 一个数据库的名字 (例如我这里用的是 mydata);如果把名字去掉,就会产生空指向异常……
      

  3.   


    这个跟JSP没什么关系吧。只要获取数据库连接,能不能执行SQL要看是否连接的用户在数据库上用权限。这里只所以无法进行create database,根据楼主给的错误信息是,数据库连接都是错误的。因此这句话还没执行呢。你自己改动过的程序能连接数据库,但是无法create database。这个你的看下你本地的数据库中为你连接的该用户是否有create database的权限。
      

  4.   


    你没抛出No suitable driver found for jdbc:mysql://localhost:3306 的错误,证明你的数据库连接驱动没问题。数据库已经连接上了。而楼主的不一样。
      

  5.   

    用户名和密码是在另一个页面的表单上传递过来的,简单的可以改成这样
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ page import="java.sql.*"%>
    <%!
    String DBDRIVER = "org.gjt.mm.mysql.Driver";
    String DBURL = "jdbc:mysql://localhost:3306";
    String DBUSER = "root";
    String DBPASSWORD ="root";
    Connection conn = null;
    PreparedStatement pstmt = null;
    %>
    <%
    try
    {
    Class.forName(DBDRIVER);
    conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
    String sql = "create database user" ;
    pstmt= conn.prepareStatement(sql);
    pstmt.executeUpdate();
    }
    catch(Exception e){
    out.println(e);
    } finally{ 
    if(pstmt!=null) pstmt.close();
    if(conn!=null) conn.close();
    }%>
    执行增删语句的时候是可以连接上数据库的,我只是想在jsp中实现创建数据库,哪里的错误还请高手们帮忙
      

  6.   

    java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306 
    执行的时候报的是这个错误
      

  7.   

    哥。把mysql的包不是应该放在D:\Tomcat 6.0\lib这个目录下面吗
      

  8.   

    类库,哥可以说具体一点吗?我在String DBURL = "jdbc:mysql://localhost:3306";
    后面加上数据库的名字的时候是可以实现对数据库的操作的,
      

  9.   

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ page import="java.sql.*"%>
    <%!
    String DBDRIVER = "org.gjt.mm.mysql.Driver";
    String DBURL = "jdbc:mysql://localhost:3306/";
    String DBUSER = "root";
    String DBPASSWORD ="root";
    Connection conn = null;
    PreparedStatement pstmt = null;
    %>
    <%
    try
    {
    Class.forName(DBDRIVER);
    conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
    String sql = "create database woshini" ;
    pstmt= conn.prepareStatement(sql);
    pstmt.executeUpdate();
    }
    catch(Exception e){
    out.println(e);
    } finally{  
    if(pstmt!=null) pstmt.close();
    if(conn!=null) conn.close();
    }%>
    这样写完全可以实现数据库的创建