不用 这个问题baidu搜一下就可以了吧
比如:
String strurl="jdbc:odbc:driver={Microsoft Access Driver (mdb)};DBQ=H:/Tomcat41/Tomcat 41/webapps/examples/jsp/lyb/%22datamdb;";
完整的是:
String strurl="jdbc:odbc:driver={Microsoft Access Driver (mdb)};DBQ=mdb;USERID=;PWD=";
连接名称:自己起个名字就行
驱动程序:sunjdbcodbcJdbcOdbcDriver
URL:jdbc:odbc:DRIVER={Microsoft Access Driver (mdb)};DBQ=F:\\Db_ColligateStatistic\\ColligateStatisticmdb;
用户名:admin
密码:不用填
几个问题
首先,你是MS access数据库,那就缺少access驱动和地址路径
其次,你在构造函数的时候已经建立了connection和statement,下面的方法你又加上,那构造函数里的就没有意义了
第三,sql语句不严格,缺少;结尾
第四,在你的定义中,excute只能执行查询语句,因为他要返回一个resultset,如果你是删除,更改,创建那就需要使用excuteUpdate(sql)的句法了
第五,只有rs关闭,没有stmt,conn的关闭,产生内存滞留
第六,异常抛出没有处理
综合以上几点,无论是程序设计,代码归法都不合格。
下面附access 可复用代码
import javasql;
public class dbAction
{
String sDBDriver = "sunjdbcodbcJdbcOdbcDriver";
String sConnStr = "jdbc:odbc:bka";
String dbq = "DBQ=E:\\Java\\database\\dbmdb";
String driver = "Driver={Microsoft Access Driver (mdb)}";
String connectionString = "jdbc:odbc:"+driver+";"+dbq;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
public dbAction(){
try {
ClassforName(sDBDriver);
}
catch(javalangClassNotFoundException e) {
Systemerrprintln("bka(): " + egetMessage());
}
}
public ResultSet executeQuery(String sql) {
rs = null;
try {
conn = DriverManagergetConnection(connectionString);
stmt = conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,ResultSetCONCUR_UPDATABLE);
rs = stmtexecuteQuery(sql);
}
catch(SQLException ex) {
Systemerrprintln("aqexecuteQuery: " + exgetMessage());
}
return rs;
}
public Boolean updateQuery(String sql) {
rs = null;
boolean su;
try {
conn = DriverManagergetConnection(connectionString);
stmt = conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVE,ResultSetCONCUR_UPDATABLE);
stmtexecuteUpdate(sql);
su = true;
}
catch(SQLException ex) {
Systemerrprintln("aqexecuteQuery: " + exgetMessage());
su=false;
}
return su;
}
public void closeStmt()
{
try
{
stmtclose();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
eprintStackTrace();
}
}
public void closeLink()
{
try
{
connclose();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
经无数测试与使用,完全可执行。
记得更改你的绝对地址路径,还要记得rs执行完后关闭是stmt和conn。
其实可以不用装,可以连到网络上的ACCESS,但一定要有ACCESS给你连。
F:\tomcat\work\DEFAULT\ROOT\DB_1java:105: 'try' without 'catch' or 'finally'
他说你 DB_1 这个类105行try完没有catch或者finally哦;Type expected,他说“}”这个东西不知道是啥!!你要改改 DB_1 这个类;你的jsp没错,只不过少些了一个e:
rs=stmtexcuteQuery("select from student");
应该是:
rs=stmtexecuteQuery("select from student");
-------------^
以上就是关于用Jsp连接Access数据库还用装驱动吗全部的内容,包括:用Jsp连接Access数据库还用装驱动吗、我想问你关于jsp中用DW连接access的问题、jsp连接access出错的问题--囧等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)