java查询数据库后返回的数据集的指针是指向第一条记录之前,所以
name = rsgetString("name"); 并不能获取字符串"zhangfeng",必须在该语句之前加上rsnext();将指针移到第一条记录。
ResultSet rs = StmtexecuteQuery("SELECT FROM 表1");
rsnext();
name = rsgetString("name");
你的驱动url错了,改成url="jdbc:odbc:driver={Microsoft Access Driver (mdb)};DBQ="+databaseName;就行了,其中databaseName这个变量是你的access数据库的绝对路径所在
<%@ page contentType="text/html; charset=gb2312" language="java"
import="javasql"%>
<meta >
你看看控制台里报什么错误,打断点进行测试看看是你的数据问题还是配置或代码问题,创建个testcase测试类。。测试。不要用test测试,给你个例子java 连接 Access 数据库 步骤: 1打开 ACCESS 创建一个 数据库 选择路径 E:数据库名称 Access1mdb 2在该数据库内创建一个表 emp 插入一条数据 3打开控制面版--控制工具--数据源(ODBJ) 分别在 用户DSN 和 系统DSN 内添加 一个用户名称 msn 添加步骤: - 点击添加 选择 Driver do Microsoft Access (mdb) - 点 完成 d出对话框 在数据库源框内 输入 msn - 数据库项 选择 地址 E:Access1mdb - 确定 (两个步骤一样) ---------OK------------ / private String url = "jdbc:odbc:msn";// 打开数据库源 private String str = "sunjdbcodbcJdbcOdbcDriver"; private Connection conn; private Statement sta; private ResultSet res; public DAO() { try { ClassforName(str); conn = DriverManagergetConnection(url); sta = conncreateStatement(); Systemoutprintln("数据库连接成功"); } catch (ClassNotFoundException e) { Systemoutprintln("缺少架包支持"); eprintStackTrace(); } catch (SQLException e) { Systemoutprintln("连接错误 检查用户名密码 或 url 以及数据库是否存在"); eprintStackTrace(); } } public void close() { try { if (res != null) { resclose(); } if (sta != null) { staclose(); } if (conn != null) { connclose(); } } catch (SQLException e) { Systemoutprintln("sql不能执行"); eprintStackTrace(); } } public ResultSet querry(String sql) { try { res = staexecuteQuery(sql); } catch (SQLException e) { Systemoutprintln("sql不能执行"); Systemoutprintln(sql); eprintStackTrace(); } return res; } public int update(String sql) { int flag = -1; try { flag = staexecuteUpdate(sql); } catch (SQLException e) { Systemoutprintln("以下sql不能执行"); Systemoutprintln(sql); eprintStackTrace(); } return flag; } private Connection getConn() { return conn; } public static void main(String[] args) { DAO d = new DAO(); String sql = "select from emp as t "; ResultSet res = dquerry(sql); try { while (resnext()) { Systemoutprintln(resgetString(1)); } } catch (SQLException e) { // TODO Auto-generated catch block eprintStackTrace(); } / try{ String strURL ="jdbc:odbc:msn";myds在ODBC中建的一个用户DSN ClassforName("sunjdbcodbcJdbcOdbcDriver"); Connection connAcce=DriverManagergetConnection(strURL); Statement stmt=connAccecreateStatement(); ResultSet rs=stmtexecuteQuery("SELECT FROM emp"); while(rsnext()){ Systemoutprintln(rsgetString(2)); } stmtclose(); connAcceclose(); } catch(Exception ex){ exprintStackTrace(); } } / }}
byte[] bts=null;
String other = null;
bts = rsgetBytes(i); //读取other字段
if(bts != null)
{
other = new String(bts,"gbk");
}
Access数据库必须先一beyet取出来然后进行转码
这个问题我今天解决了
但是我还有个问题,当表名为中文时,查询会出问题,还有列名为中文时取出来的列名也是乱码。帅哥你知道怎么解决这问题不
1 先建立一个access文件a1mdb,并放在D:/下;
2 在数据库文件a1mdb中建立一个表Table1;
3 为Table1添加一列,并插入至少一条记录;
4 一个完整的类,直接拿去运行就可以。
import javasql;
public class ConnectAccess {
public static void main(String args[]) throws Exception {
ConnectAccess ca=new ConnectAccess();
caConnectAccessFile();
caConnectAccessDataSource();
}
public void ConnectAccessFile() throws Exception
{
ClassforName("sunjdbcodbcJdbcOdbcDriver");
/
直接连接access文件。
/
String dbur1 = "jdbc:odbc:driver={Microsoft Access Driver (mdb)};DBQ=d://a1mdb";
Connection conn = DriverManagergetConnection(dbur1, "username", "password");
Statement stmt = conncreateStatement();
ResultSet rs = stmtexecuteQuery("select from Table1");
while (rsnext()) {
Systemoutprintln(rsgetString(1));
}
rsclose();
stmtclose();
connclose();
}
public void ConnectAccessDataSource()throws Exception {
ClassforName("sunjdbcodbcJdbcOdbcDriver");
String dbur1 = "jdbc:odbc:dataS1";// 此为ODBC连接方式
Connection conn = DriverManagergetConnection(dbur1, "username", "password");
Statement stmt = conncreateStatement();
ResultSet rs = stmtexecuteQuery("select from Table1");
while (rsnext()) {
Systemoutprintln(rsgetString(1));
}
rsclose();
stmtclose();
connclose();
}
}
曾经看到过一种最简单的连接access数据库的方法,不需要配置数据源,也不需要安装驱动======================================================================
import javasql;
public class ToAccess {
public static void main(String args[]) {
try {
String url = \"jdbc:odbc:driver={Microsoft Access Driver (mdb)};DBQ=D:\\\\bookshopmdb\";
ClassforName(\"sunjdbcodbcJdbcOdbcDriver\");
Connection conn = DriverManagergetConnection(url);
Statement stmt = conncreateStatement();
ResultSet rs = stmtexecuteQuery(\"select from books\");
while (rsnext()) {
Systemoutprintln(\"The book\'s name is:\" + rsgetString(\"book\"));
Systemoutprintln(\"The author is: \" + rsgetString(\"author\"));
}
rsclose();
stmtclose();
connclose();
} catch(Exception e) {
Systemoutprintln(egetMessage());
}
}
}
以上就是关于1.java读取access数据库里数据类型为”文本”的字段内容无法做为字串比较.全部的内容,包括:1.java读取access数据库里数据类型为”文本”的字段内容无法做为字串比较.、java访问access数据库异常 java.sql.SQLException: No data found、java中怎样连接ACCESS数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)