jsp中使用JDBC连接MySQL数据库如何解决

时间:2020-12-16 13:11:31
我的一段JSP程序如下:请高手指教错在何处
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url="jdbc:mysql://localhost/first?user=test&password=123321&useUnicode=true&characterEncoding=859_1";
Connection conn=DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from first";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){%>
第一个字段内容是:<%=rs.getString(1)%>
第二个字段内容是:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>

我用的是tomcat5.5.33  和 mysql-connector-java-3.1.10   ,
在使用JDBC连接MySql时总是出问题,
我用的数据库用户名为test,密码是123321,数据库名是first,表名为about .
tomcatJDBC数据源的user name是dbuser ,password 是tomcat .

请高手看一下程序有何错误,主要是下面两条:
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url="jdbc:mysql://localhost/first?user=test&password=123321&useUnicode=true&characterEncoding=859_1";
第一行就报错,第二行localhost后面是什么? user和password是哪个用户名和密码呀,是mysql数据库的还是JDBC数据源的,还是其他什么的?

我说得有点啰嗦,呵呵,谢谢大家赐教 !

16 个解决方案

#1


第一行应该是这样<%@ page language="java" contentType="text/html;charset=gb2312"pageEncoding="gb2312"%>
连接地址格式是String url="jdbc:mysql://localhost:3306(端口号)/ibatis(数据库名)?user=root&password=yanghao"; 
是MySQL数据库的。还有什么问题再问。

#2


Class.forName("com.mysql.jdbc.Driver");应该是这个!
用户名和密码也不是写在那个后面呀!正确写法如下:
String url="jdbc:mysql://localhost/first?useUnicode=true&characterEncoding=utf-8";
真不知道你写的859_1是个什么东西?

在Connection conn=DriverManager.getConnection(url);的时候你要把用户名、密码作为参数传过去
String user = "test",password = "123321";
Connection conn=DriverManager.getConnection(url, user, password);
你怎么把数据库貌似的用户root改成test了呢?

#3


给段代码你参考下

String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名test
String url = "jdbc:mysql://127.0.0.1:3306/数据库名";
// MySQL配置时的用户名
String user = "你的mysql用户名";
// MySQL配置时的密码
String password = "你的mysql密码";
// 加载驱动程序
Class.forName(driver);
// 连续数据库
Connection conn = DriverManager.getConnection(url, user,
password);
if (!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = "select count(*) from tablename";
// 结果集
ResultSet rs = statement.executeQuery(sql);
String name = null;
while (rs.next()) {
rowCount = rs.getInt(1);
}

#4


楼上的说的都在理,而且貌似你的sql语句也有问题啊,你表面不是:about吗?你的sql代码怎么写成了:String sql="select * from first";
细心饿

#5


mysql连接数据库的连接字符串有两种写法:
  1.org.gjt.mm.mysql.Driver
  2.jdbc:mysql://127.0.0.1:3306/数据库名
 其他问题上面的楼主都说的非常的详细了,注意连接数据库时一定要注意使用日志文件来记录

#6


这个问题很是easy,楼上你应该能看懂,主要还是mysql知识没有掌握透彻。

#7


真是太粗心了,String sql="select * from first";怎么可以去查数据库呢?

#8


jsp 页面不应该 有sql 语句的,。lz 应该看ssh 

#9


Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/webkj?useunicode=true&characterEncoding=gbk";
conn = DriverManager.getConnection(url, "root", "root");
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
不要忘了下驱动到web-inf文件夹里

#10


估计是org.gjt.mm.mysql.Driver

#11


该回复于2011-05-09 10:15:19被版主删除

#12


两个的驱动都不一样的。你下的是mysql-connector,应该就像楼上所说的那样是com.mysql.jdbc.Driver的,而且如果以后有什么报错,你应该连错误也粘出来,不然不知道是语句问题,还是ClassNotFound拉。

#13


你还把连接语句写到前台的啊

#14


这个“language="java"”可以不写的
引用 1 楼 lili72 的回复:
第一行应该是这样<%@ page language="java" contentType="text/html;charset=gb2312"pageEncoding="gb2312"%>
连接地址格式是String url="jdbc:mysql://localhost:3306(端口号)/ibatis(数据库名)?user=root&amp;password=yanghao"; 
是MyS……

#15


import java.sql.*;
public class dbcon {

Connection conn = null;

public Connection con(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/xuanti?useUnicode=true&characterEncoding=GBK","root", null);

} catch (SQLException e) {
e.printStackTrace();

}
return conn;
}
}

#16


异常
Class.forName需要指出ClassNotFoundException

#1


第一行应该是这样<%@ page language="java" contentType="text/html;charset=gb2312"pageEncoding="gb2312"%>
连接地址格式是String url="jdbc:mysql://localhost:3306(端口号)/ibatis(数据库名)?user=root&password=yanghao"; 
是MySQL数据库的。还有什么问题再问。

#2


Class.forName("com.mysql.jdbc.Driver");应该是这个!
用户名和密码也不是写在那个后面呀!正确写法如下:
String url="jdbc:mysql://localhost/first?useUnicode=true&characterEncoding=utf-8";
真不知道你写的859_1是个什么东西?

在Connection conn=DriverManager.getConnection(url);的时候你要把用户名、密码作为参数传过去
String user = "test",password = "123321";
Connection conn=DriverManager.getConnection(url, user, password);
你怎么把数据库貌似的用户root改成test了呢?

#3


给段代码你参考下

String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名test
String url = "jdbc:mysql://127.0.0.1:3306/数据库名";
// MySQL配置时的用户名
String user = "你的mysql用户名";
// MySQL配置时的密码
String password = "你的mysql密码";
// 加载驱动程序
Class.forName(driver);
// 连续数据库
Connection conn = DriverManager.getConnection(url, user,
password);
if (!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = "select count(*) from tablename";
// 结果集
ResultSet rs = statement.executeQuery(sql);
String name = null;
while (rs.next()) {
rowCount = rs.getInt(1);
}

#4


楼上的说的都在理,而且貌似你的sql语句也有问题啊,你表面不是:about吗?你的sql代码怎么写成了:String sql="select * from first";
细心饿

#5


mysql连接数据库的连接字符串有两种写法:
  1.org.gjt.mm.mysql.Driver
  2.jdbc:mysql://127.0.0.1:3306/数据库名
 其他问题上面的楼主都说的非常的详细了,注意连接数据库时一定要注意使用日志文件来记录

#6


这个问题很是easy,楼上你应该能看懂,主要还是mysql知识没有掌握透彻。

#7


真是太粗心了,String sql="select * from first";怎么可以去查数据库呢?

#8


jsp 页面不应该 有sql 语句的,。lz 应该看ssh 

#9


Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/webkj?useunicode=true&characterEncoding=gbk";
conn = DriverManager.getConnection(url, "root", "root");
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
不要忘了下驱动到web-inf文件夹里

#10


估计是org.gjt.mm.mysql.Driver

#11


该回复于2011-05-09 10:15:19被版主删除

#12


两个的驱动都不一样的。你下的是mysql-connector,应该就像楼上所说的那样是com.mysql.jdbc.Driver的,而且如果以后有什么报错,你应该连错误也粘出来,不然不知道是语句问题,还是ClassNotFound拉。

#13


你还把连接语句写到前台的啊

#14


这个“language="java"”可以不写的
引用 1 楼 lili72 的回复:
第一行应该是这样<%@ page language="java" contentType="text/html;charset=gb2312"pageEncoding="gb2312"%>
连接地址格式是String url="jdbc:mysql://localhost:3306(端口号)/ibatis(数据库名)?user=root&amp;password=yanghao"; 
是MyS……

#15


import java.sql.*;
public class dbcon {

Connection conn = null;

public Connection con(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/xuanti?useUnicode=true&characterEncoding=GBK","root", null);

} catch (SQLException e) {
e.printStackTrace();

}
return conn;
}
}

#16


异常
Class.forName需要指出ClassNotFoundException