下面是一个JAVA程序,可以正常连接数据库,输入也正常。总之一切正常。
package n;
import java.sql.*;public class M
{
Connection conn = null;
String myStr;
ResultSet rs = null;
public void execute()
{
String sql = "select * from b";
String DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:MS Access Database;DBQ=d:\\b.mdb"; try
{
Class.forName(DBDriver).newInstance();
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql); }
catch(Exception e){}
}public String result()
{
try{
while(rs.next())
myStr = rs.getString(1);
}
catch(Exception e){}
return myStr;
}
}
——下面是我的bean,跟上面的JAVA程序几乎是一样的,只是把最后输出结果的部分转移到JSP里了。——
package n;
import java.sql.*;public class M
{
Connection conn = null;
String myStr;
ResultSet rs = null;
public void execute()
{
String sql = "select * from b";
String DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:MS Access Database;DBQ=d:\\b.mdb"; try
{
Class.forName(DBDriver).newInstance();
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql); //这里的调用函数该为jsp去调用
}
catch(Exception e){}
}public String result()
{
try{
while(rs.next())
myStr = rs.getString(1);
}
catch(Exception e){}
return myStr;
}
}
————以下是我的jsp,只负责输出结果:————
<%@ page import="java.sql.*" %><jsp:useBean id = "myBean" class = "n.M" scope = "application" />
<%
out.println(myBean.result());
%>
输出到网页上的结果却是null,而不是数据库里的内容(数据库里只有一条信息),可我的JAVA程序和bean几乎是一样的,简直太迷茫了,请各位指点迷津。
package n;
import java.sql.*;public class M
{
Connection conn = null;
String myStr;
ResultSet rs = null;
public void execute()
{
String sql = "select * from b";
String DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:MS Access Database;DBQ=d:\\b.mdb"; try
{
Class.forName(DBDriver).newInstance();
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql); }
catch(Exception e){}
}public String result()
{
try{
while(rs.next())
myStr = rs.getString(1);
}
catch(Exception e){}
return myStr;
}
}
——下面是我的bean,跟上面的JAVA程序几乎是一样的,只是把最后输出结果的部分转移到JSP里了。——
package n;
import java.sql.*;public class M
{
Connection conn = null;
String myStr;
ResultSet rs = null;
public void execute()
{
String sql = "select * from b";
String DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:MS Access Database;DBQ=d:\\b.mdb"; try
{
Class.forName(DBDriver).newInstance();
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql); //这里的调用函数该为jsp去调用
}
catch(Exception e){}
}public String result()
{
try{
while(rs.next())
myStr = rs.getString(1);
}
catch(Exception e){}
return myStr;
}
}
————以下是我的jsp,只负责输出结果:————
<%@ page import="java.sql.*" %><jsp:useBean id = "myBean" class = "n.M" scope = "application" />
<%
out.println(myBean.result());
%>
输出到网页上的结果却是null,而不是数据库里的内容(数据库里只有一条信息),可我的JAVA程序和bean几乎是一样的,简直太迷茫了,请各位指点迷津。
解决方案 »
- jdbc如何取得select count(*)的总和
- java连接ftp服务器下载文件问题
- 我用java写的遗传算法的严重问题,程序没错,但不知道为什么结果总和预想的不同,实在是困惑,请帮忙啊!!!!(二)
- 求ArrayList的方法 public <T> T[] toArray(T[] a) 的用法
- JTABLE 怎样利用AbstractTableModel 接收数据库记录集
- 知我者谓我心忧,不知者谓我何求!
- 怎么将DataBuffer类型转换成DataInputStream类型。。。。
- 我对 thread 中 synchronized 和 monitor 的理解,请指正!
- java 安全性的问题
- 关于JCREATOR的字体设置
- 关于RMI中权限设置的问题!!!
- 关于JFrame内容面板的外观设计问题
public String result()
{
execute();//这样调用应该没问题吧。
try{
while(rs.next())
myStr = rs.getString(1);
}
catch(Exception e){}
return myStr;
}
package n;
import java.sql.*;public class M
{
Connection conn = null;
String myStr = "";
ResultSet rs = null;public String result()
{
String sql = "select * from b";
String DBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:MS Access Database;DBQ=d:\\b.mdb"; try
{
Class.forName(DBDriver).newInstance();
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next()){
myStr = rs.getString(1); //这里这么写只能得到最后一条记录,如果想得到全部,建议返回一个resultset,或Vector
}
}
catch(Exception e){} return myStr;
}
}
我用的://现在的数据库IP等信息是写死在程序中的,应该改成从配置文件中取得!
package JavaBean;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Statement;public class DBConn {
private static Connection conn = null;
public DBConn(){
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
conn=DriverManager.getConnection("jdbc:mysql://localhost/metrics","root","123456");
}catch(Exception e){
System.out.println("Connect error");
System.out.println(e);
}
} public static ResultSet ExecuteQuery(String sql){
ResultSet returnRs = null;
try{
Statement stmt=(Statement) conn.createStatement();
returnRs = stmt.executeQuery(sql);
}catch(Exception e){
System.out.println("Execute Query error");
System.out.println(e);
}
return returnRs;
}
public int ExecuteUpdate(String sql){
//返回值为影响数据库记录的数量。如:返回为0,有可能更新或插入不成功。如果同时修改成功100条记录,则返回结果为100
int r = 0;
try{
Statement stmt = (Statement)conn.createStatement();
r = stmt.executeUpdate(sql);
System.out.println("execute result:"+r);
}catch(Exception e){
System.out.println("ExecuteUpdate error ");
System.out.println(e);
}
return r;
}
public void closeDB() throws SQLException{
conn.close();
}
// public static void main(String[] args) {
// try {
//
//// Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//// Connection con22=DriverManager.getConnection("jdbc:mysql://localhost/metrics","root","123456");
//// Statement sql=(Statement) con22.createStatement();
//// ResultSet rs = sql.executeQuery("select * from ts_role");
//// while (rs.next())
//// {
//// System.out.print(rs.getString("M1_ROLE"));
//// }
//
//
// }
// catch (Exception ex) {
// System.out.println(ex);
// }
// } }
吧Statement stmt 申明成全局变量
"access就是关系型数据库啊。
要想学非关系型的可以看看LDAP。我也有例子。呵呵
试试把方法改成:
public String getResult(){
......................
}
可以了吗?
String url = "jdbc:odbc:MS Access Database;DBQ=d:\\b.mdb";
改为:
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=d:\\books.mdb";
可是我现在也不知道为什么,如果有朋友类似问题的朋友,可以借鉴一下,结贴给分。
access就是关系型数据库啊。
要想学非关系型的可以看看LDAP。我也有例子。呵呵
————————————————————————————
晕,我对数据库不了解,前几天去面试了一家公司,那个技术问我用过什么数据库,我当时有点发蒙,就说我只用过access,结果那个人说:我说的是关系型数据库,比如oracle,SQLServer这些……当时我就想,原来access不是关系型的数据库啊,可回来翻书,说关系数据库是基于表的,可access不就是基于表的吗,我这一直犯嘀咕呢,你一句话算点拨我了,这问题,我都不好意思直接问