Tag: jdbc odbc

Java Access数据库连接

我尝试创建与db(MS Access 2010)连接的项目我在CodeProject上使用本教程。 import java.sql.*; public class DbAccess { public static void main(String[] args) { try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); String database = “jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;”; Connection conn = DriverManager.getConnection(database, “”, “”); Statement s = conn.createStatement(); // create a table String tableName = “myTable” + String.valueOf((int)(Math.random() * 1000.0)); String createTable = “CREATE TABLE ” + tableName […]

使用ODBC从Java读取Visual Foxpro数据

我试图从我的Java应用程序查询dbf表。 我参考了这个post 我使用ODBC数据源管理器创建了一个系统数据源,我将数据源名称设置为VFPDS,并将数据库类型设置为.DBC,最后设置.dbc文件的路径。 以下是我的java代码: import javax.swing.* ; import java.awt.* ; import java.awt.event.* ; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.SQLWarning; import java.sql.Statement; // Import custom library containing myRadioListener import java.sql.DriverManager; public class testodbc { public static void main( String args[] ) { try { // Load the database driver Class.forName( “sun.jdbc.odbc.JdbcOdbcDriver” ) ; // […]

ResultSet:exception:set type是TYPE_FORWARD_ONLY – 为什么?

我的代码非常简单: pstat=con.prepareStatement(“select typeid from users where username=? and password=?”); pstat.setString(1, username); pstat.setString(2, password); rs=pstat.executeQuery(); int rowCount=0; while(rs.next()) { rowCount++; } rs.beforeFirst(); if(rowCount>=1) { while(rs.next()) { typeID=rs.getInt(1); } 但是当执行这段代码时我得到了…… java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY at sun.jdbc.odbc.JdbcOdbcResultSet.beforeFirst(Unknown Source) at server.ClientImpl.login(ClientImpl.java:57) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) at […]

Duke快速重复数据删除:java.lang.UnsupportedOperationException:操作尚不支持?

我正在尝试使用Duke快速重复数据删除引擎在我工作的公司的数据库中搜索一些重复记录。 我从命令行运行它,如下所示: java -cp “C:\utils\duke-0.6\duke-0.6.jar;C:\utils\duke-0.6\lucene-core-3.6.1.jar” no.priv.garshol.duke.Duke –showmatches –verbose .\config.xml 但是我收到一个错误: Exception in thread “main” java.lang.UnsupportedOperationException: Operation no t yet supported at sun.jdbc.odbc.JdbcOdbcResultSet.isClosed(Unknown Source) at no.priv.garshol.duke.datasources.JDBCDataSource$JDBCIterator.close(JD BCDataSource.java:115) at no.priv.garshol.duke.Processor.deduplicate(Processor.java:152) at no.priv.garshol.duke.Duke.main_(Duke.java:135) at no.priv.garshol.duke.Duke.main(Duke.java:38) 我的配置文件如下所示: 0.82 0.80 test ID LNAME no.priv.garshol.duke.comparators.ExactComparator 0.6 0.8 FNAME no.priv.garshol.duke.comparators.ExactComparator 0.6 0.8 MNAME no.priv.garshol.duke.comparators.ExactComparator 0.3 0.5 SSN no.priv.garshol.duke.comparators.ExactComparator 0.0 1.0 它并没有真正告诉我什么是不受支持的…我只是尝试一下,配置还没有什么严重的。

Java无法通过JDBC-ODBC从Access检索Unicode(立陶宛语)字母

我有DB,其中一些名字是用立陶宛字母写的,但是当我试图用java创建它时,它会忽略立陶宛字母 DbConnection(); zadanie=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); sql=”SELECT * FROM Clients;”; dane=zadanie.executeQuery(sql); String kas=”Imonė”; while(dane.next()) { String var=dane.getString(“Pavadinimas”); if (var!= null) {var =var.trim();} String rus =dane.getString(“Rusys”); System.out.println(kas+” “+rus); } void DbConnection() throws SQLException { String baza=”jdbc:odbc:DatabaseDC”; try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); }catch(Exception e){System.out.println(“Connection error”);} connect=DriverManager.getConnection(baza); } 在DB类型的字段中是TEXT,大小为20,不要使用任何额外的字母解码或类似的东西。 它给了我“ImonėImone”尽管在DB中写的是“Imonė”,它等于rus。

在java中获取无效的游标状态exception

我运行了select命令并使用下面的代码在system.out中打印结果。 无效的游标错误导致预期结果。 请问任何一个人告诉我,为什么在打印预期结果后发生了这个错误以及如何修复它? 码: try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); String url = “jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=” + “path”; conn = DriverManager.getConnection(url); stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); String select=”SELECT DISTINCT col1,col2 FROM Tablename”; ResultSet rs = stmt.executeQuery(select); ResultSetMetaData rsmd = rs.getMetaData(); int columnsNumber = rsmd.getColumnCount(); String columnValue; while (rs.next()) { for (int i = 1; i <= columnsNumber; i++) […]

对具有重音字符的JDBC-ODBC Bridge查询失败

我正在通过JDBC-ODBC Bridge向Java发送查询到Access数据库,如下所示: “SELECT * FROM localities WHERE locName='” + cityName + “‘” 当cityName是没有重音字符的普通字符串时,结果集是正确的。 但是当cityName恰好是LEÓN , SAHAGÚN类的东西,其中带有重音字符,那么我就没有结果。 在这些情况下,查询似乎失败了。 在MS Access中运行时相同的查询工作正常,我也尝试使用Ms Data Acces SKD并且这些查询完美运行。 它们仅在通过JDBC-ODBC Bridge时失败。 据我所知,Java使用UTF-8作为字符串,Access也是如此。 他们都使用Unicode。 有谁知道这个问题的任何解决方案?

如何从64位JVM连接到32位Access数据库?

到目前为止,当我不得不连接到32位Access数据库时,我只是使用32位JVM执行应用程序。 但是,我现在正在开发一个需要64位JVM的应用程序,但我仍然需要连接到32位Access数据库。 当我尝试连接时,我得到以下exception: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source) at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) 这是我的代码: String s = “jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=” + path; Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); conn = DriverManager.getConnection(s, user, password);

指定的DSN包含体系结构不匹配错误

我收到了这个错误: 指定的DSN包含驱动程序和应用程序之间的体系结构不匹配 尝试使用NetBeans和Java编程语言连接到数据库时 我正在使用Microsoft Access 2010和我的系统在64位Windows 7上运行。 我该如何解决这个问题? 感谢大家。

JDBC ODBC驱动程序连接

我正在为我的大学的一个class级做一个项目。 我正在学习连接和操作数据库,我们正在使用Microsoft .accdb文件。 这是我到目前为止所拥有的。 /* Perform database operations */ try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); System.out.println(“Driver loaded”); connection = DriverManager.getConnection(“jdbc:odbc:Lab3.accdb”); System.out.println(“Database connected”); statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(“”); while (resultSet.next()) { output.write(“” + resultSet.getString(1) + “\t” + resultSet.getString(2) + “\t” + resultSet.getString(3) + “”); } connection.close(); } catch (ClassNotFoundException|SQLException e) { System.out.println(“Database Access Error.”); e.printStackTrace(); } 在寻找“sun.jdbc.odbc.JdbcOdbcDriver”时,我得到以下输出。 […]