java访问mysql数据库的问题

zhwb36 2003-10-20 10:51:39
我用JAVA连接MYSQL数据库,驱动程序用的是COM.MYSQL.JDBC.DRIVER,
数据库连接和执行查询一切都正常,就是得不到MetaData,ResultSet的
getString(String filedname)也不能用,提示说是找不到相应的fieldname,
这到底是什么原因,是不是Mysql数据库不支持这么操作?
...全文
80 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ambest 2003-10-25
  • 打赏
  • 举报
回复
那就可能是你程序的问题了。
naxin 2003-10-25
  • 打赏
  • 举报
回复
ResultSet rs=databean.Query(sql);
ResultSetMetaData rsm=rs.getMetaData();
wsfx 2003-10-25
  • 打赏
  • 举报
回复
补充:个人认为mysql的驱动中COM.MYSQL.JDBC.DRIVER是做得最好的,关键是你要会用.
wsfx 2003-10-25
  • 打赏
  • 举报
回复
我也曾经碰到过你一样的问题。我猜你的问题就出现在注册数据库url上。
你下载mysql驱动的时候应该还有一个readme文件。注意了,你最好仔细阅读这个文件。里面有连接数据库url的各种附加参数。如果你仅仅用:jdbc:mysql://localhost:3306/your_database来连接,就会出现你的问题。应该加参数encoding=gb2312&character=true(具体我也记的很清楚了^_^),也就是:jdbc:mysql://localhost:3306/your_database?encoding=gb2312&character=true(好像还要一个参数).
另外,假设你不加参数,你可以用getString(1),getString(2)...,等来获得记录的值,但是会乱码的。
zhwb36 2003-10-24
  • 打赏
  • 举报
回复
org.gjt.mm.mysql.Driver是在哪下载的?
我下载了一个使用后,好象还有这样的问题存在,就是不能通过getString(String fieldname)
进行访问数据,抛出的异常还是找不到fieldname。
有没有人把自己写的这样的代码贴出来让我看看?
ambest 2003-10-24
  • 打赏
  • 举报
回复
驱动程序有问题,用org.gjt.mm.mysql.Driver就应该没问题了的。
zhwb36 2003-10-23
  • 打赏
  • 举报
回复
package bbs;
import java.sql.*;

/**
* 一个简单而基本的数据库连接类
* 缺省使用JDBC-MYSQL桥接驱动程序
*缺省使用jdbc:mysql://localhost:3306/basiclyb
* @author zhou
* @version 0.1
* @see java.sql.Connection
* @see java.sql.ResultSet
*/

public class basicDBBean {
//成员变量
private String DBLocation = "jdbc:mysql://localhost:3306/basiclyb?useUnicode=true&characterEncoding=8859_1";
//使用JDBC-MYSQL桥接驱动程序
private String DBDriver = "com.mysql.jdbc.Driver";
//查询结果的记录集
private ResultSet rs = null;
//数据库连接
private Connection conn = null;

/**构造函数*/
public basicDBBean() {
}

/**
*执行一个查询
* @param sql 需要执行的查询字符串
* @return 查询的结果集
* @see java.sql.ResultSet
* @see java.sql.Connection
*/
public ResultSet executeQuery(String sql){
if (conn == null){
DBConnect();
}

if (conn == null){
rs = null;
}
else {
try {
Statement s = conn.createStatement();
rs = s.executeQuery(sql);
}
catch (SQLException e){

}
}

return rs;
}

/**
* 试着建立连接过程中的异常信息,如果一切正常,返回一个空字符串
* @see java.sql.Connection
*/
public String DBConnect(){
String strExc = "";
try {
Class.forName(DBDriver);
conn = DriverManager.getConnection(DBLocation,"root","");
}
catch (ClassNotFoundException e) {
strExc = e.toString();
}
catch (SQLException e) {
strExc = e.toString();
}

return strExc;
}

/**
* 设置一个可用的数据地址
* @param location 数据源地址
*/
public void setDBLocation(String location){
DBLocation = location;
}

/**
* 设置一个JDBC驱动程序
* @param driver 一个JDBC驱动器
*/
public void setDBDriver(String driver){
DBDriver = driver;
}

/**
* 设置一个已经可用的数据库连接
* @param conn 一个数据库连接对象
* @see java.sql.Connection
*/
public void setConn(Connection conn){
conn = conn;
}

/**
* 获得当前的数据源地址
* @return 当前的数据源地址
*/
public String getDBLocation(){
return DBLocation;
}

/**
* 获得当前的JDBC驱动器
* @return 当前的JDBC驱动器
*/
public String getDBDriver(){
return DBDriver;
}

/**
* 获得当前的结果记录集
* @return 当前的结果记录集
* @see java.sql.ResultSet
*/
public ResultSet getRS(){
return rs;
}

/**
*获得当前的数据库连接
* @return 当前的数据库连接
* @see java.sql.Connection
*/
public Connection getconn(){
return conn;
}
}
//我认为和BEAN没关系,因为我没用BEAN时也是一样!你们是不是都可以的?
X路人甲X 2003-10-21
  • 打赏
  • 举报
回复
可能是你的bean有问题,楼主可以先写段简单的代码测试一下你那个BEAN是否可用
或者把你的bean贴出来让大家看看
zhwb36 2003-10-21
  • 打赏
  • 举报
回复

用org.gjt.mm.mysql.Drive驱动结果还是一样,仍然不能用字段名访问数据!!!
还会有其他原因吗????
maobing 2003-10-21
  • 打赏
  • 举报
回复
org.gjt.mm.mysql.Drive
换这个驱动看看
zhwb36 2003-10-21
  • 打赏
  • 举报
回复
<!-- jsp程序如下 -->

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import = "java.sql.*" %>

<jsp:useBean id="basicDB" class="bbs.basicDBBean" scope="page" />
<html>
<head>
<title>
main
</title>
<link href="css/main" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#ffffff" leftmargin="0" topmargin="0" align=center valign=middle>
<br><div align="center" style="font-size:14pt;color:black">我的留言板</div><br>
<table width="760" border="0" align="center" cellpadding="2" cellspacing="2" class="n9pt">
<tr>
<td width="500" bgcolor="#cccccc">
<div align="center"><font color="#ffffff">标题</font></div>
</td>
<td width="130" bgcolor="#cccccc">
<div align="center"><font color="#ffffff">作者</font></div>
</td>
<td width="130" bgcolor="#cccccc">
<div align="center"><font color="#ffffff">发表时间</font></div>
</td>
</tr>

<%
String sql;
ResultSet rs;

//lyb表中字段为id(int),title(varchar),author(varchar),addtime(datetime)
sql = "select * from lyb order by addtime desc";

basicDB.DBConnect();
rs = basicDB.executeQuery(sql);

while (rs.next())
{
out.print("<tr><td width=500 bgcolor=#eeeeee><a href=view.jsp?id=");
out.print(rs.getInt("id"));//换成rs.getInt(1)就行了
out.print(" target=bottom>  ");
out.print(rs.getString("title"));//换成rs.getString(2)就行了
out.print("</a></td><td width=130 bgcolor=#eeeeee><div align=center>");
out.print(rs.getString("author"));//换成rs.getString(3)就行了
out.print("</div></td><td width=130 bgcolor=#eeeeee><div align=center>");
out.print(rs.getString("addtime"));//换成rs.getString(4)就行了
out.print("</div></td></tr>");
}
%>
</table>
</body>
</html>

<!--
另外,如果我要得到ResultSetMetaData对象的话将得到一个null型值
-->
ahuisky 2003-10-21
  • 打赏
  • 举报
回复
1.你的数据库可以连接吗???
2.如果连接成功的话那应该是你的程序的问题...把代码贴出来看看...
3.我用MYSQL的时候是可以用这些方法的...
X路人甲X 2003-10-20
  • 打赏
  • 举报
回复
不知道你为什么不使用org.gjt.mm.mysql.Driver,
如果你的哪个驱动可用,问题一定不是出现在数据库上,不知道能不能把你程序贴出来看看。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧