Tag: jdbc

JDBC插入错误

我试图用jdbc将一些数据插入我的数据库。 我正在使用正确的表,数据库名称和参数。 一切都经过检查。 码 public static void main(String[] args) throws IOException/*, ClassNotFoundException, SQLException*/ { DataInputStream d = new DataInputStream(System.in); System.out.println(“Enter employee ID : “); @SuppressWarnings(“deprecation”) int empid = Integer.parseInt(d.readLine()); System.out.println(“Enter employee name : “); @SuppressWarnings(“deprecation”) String empname = d.readLine(); System.out.println(“Enter employee ID : “); @SuppressWarnings(“deprecation”) double empsalary = Double.parseDouble(d.readLine()); try { Class.forName(“com.mysql.jdbc.Driver”); } catch (ClassNotFoundException […]

在应用程序中,我有JDBC驱动程序(exceptionjava.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver)

相同的项目servlet应用程序不起作用,但“hello world”方法,在同一个项目中,是的。 这是项目的图片。 版本: Intellij IDEA – 2018.2 mySQL驱动程序版本: 8.0.11 ,驱动程序com.mysql.cj.jdbc.Driver servlet 9.0.81 在代码中: Class.forName(dbDriver).newInstance(); dbConnection = DriverManager.getConnection(connectionUrl, userName, password); 例外: java.lang.ClassNotFoundException:com.mysql.cj.jdbc.Driver … BTW: 我收到的同样exception也没有PON.xml中的 mysql依赖 所以,这是问题,或者我遗漏了一些东西。 谢谢 UPDATE 已解决:我们需要在Artifact中添加库 。

sqlite数据库连接:java.Lang.ClassNotFoundException:org.sqlite.JDBC

首先让我说我是编码的初学者。 我只在高中的最后几个学习java,所以不要害怕过于简化的解释。 我正在尝试使用BlueJ创建并连接一个sqlite数据库作为我的IDE。 我真的不明白我在做什么,但我在youtube上遵循了一些说明。 无论如何,当我运行程序时,我得到一个“java.Lang.ClassNotFoundException:org.sqlite.JDBC”。 我已经完成了几次谷歌搜索,但大多数解决方案都是指错误放置的jar文件。 他们说“确保包裹在类路径中”,我这样做了……至少我想我做到了。 它位于BlueJ的java> extensions文件夹中。 请让我知道语法有什么问题或者问题是什么。 如果您需要更多信息,请随时提出! 非常感谢,谢谢! 这是我的代码: import java.sql。*; import javax.swing。*; public class javaconnect2 { public static Connection ConnecrDB() { Connection conn = null; try { Class.forName(“org.sqlite.JDBC”); Connection conn = DriverManager.getConnection(“jdbc:sqlite:/Users/aaronyih/Desktop/TEA/LearningGUI/TEA DATABASE.sqlite”); JOptionPane.showMessageDialog(null, “Connection Established!”); return(conn); } catch(Exception e) { JOptionPane.showMessageDialog(null, e); return(null); } } }

使用jdbc访问excel作为数据库

我必须设计一个应用程序来访问excel应用程序作为数据库。 我的问题是我必须为每个事务创建多个连接,如果我错过任何关闭它,excel不会更新。 我想设计模式,我可以访问excel。 任何人帮助我设计一个我不会遇到问题的共同模式。 我想要这样的东西,但是我们无法使用它来访问excel。 提前致谢! 我在实用程序类中有这个方法 static ResultSet getExcelData(String filePath,String sqlQuery){ ResultSet rs=null; try{ conn = DriverManager.getConnection(“jdbc:odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=”+filePath+”;READONLY=false”); stmt= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); rs=stmt.executeQuery( sqlQuery ); }catch (Exception e) { e.printStackTrace(); return null; // TODO: handle exception }finally{ } return rs; } 而我这样称呼它 ResultSet rs=JdbcUtil.getExcelData(“D:\\AB_demo\\AB_demo\\test.xls”, “Select max(int(ID)) from [MAIN$] where HEADER_IND […]

“类型不匹配:无法从int转换为ResultSet”

我正在使用JCBC API连接到mySQL服务器以执行一些SQL查询(创建表,删除行等)。 但是,我在以下函数中收到“类型不匹配:无法从int转换为ResultSet”错误: private static void deleteUnpopularArtists(Statement statement, int min_rank) throws SQLException { String rank = Integer.toString(min_rank); ResultSet resultSet = statement.executeUpdate(“DELETE FROM record_artist WHERE high_chart_pos < " + rank + ";"); } 我试过使用String.valueOf(min_rank); 和int rank = min_rank + “”; 所以我的问题是,为什么我会收到此错误? 我该怎么做才能解决它?

JTable中的ResultSet

如何在JTable中显示ResultSet。 我正在使用此代码 String [] record= new String[ColCount]; for (i=0; i<ColCount; i++) { record[i]=rset1.getString(i+1); } cell[i] = rset1.getString("loginname"); cell[i] = rset1.getString( "role"); System.out.println(cell[i][0]); //ItemGroup = rset1.getString( "Status"); } System.out.println(ItemCode); JTable jt = new JTable( cell[i], headers); 但我只得到一行最后插入数据库。

PreparedStatement忽略查询中的参数:java.sql.SQLException:参数索引超出范围(1>参数个数,为0)

我使用java和jdbc驱动程序(java.sql),我得到了这段代码: String clinetIP = “220.181.108.89”; String sql = “SELECT * FROM `as` WHERE `as`.ip_range LIKE ‘%?%'”; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1, clinetIP); 我明白了: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0). 执行statement.setString(1,clinetIP)时。 这是为什么? 是不是statement.setxxx在语句字符串中查找问号? 我在声明中使用了一个问号,但它似乎被忽略了!

显示SQL错误消息

我在我的java项目中使用JDBC连接到MySQL。 我在mySQL表中实现了一些检查约束。 我有一个表单,用户输入一些值并将其提交到MySQL表。 如果违反约束,Java会给出SQLException。 我的目的是显示一个弹出消息,告知我的表中违反了哪些条件。 如何在java中检索此信息? 我尝试了一个记录器,但它只在控制台中显示一条冗长的错误消息。

如何处理callableStatement.registerOutParameter(1,java.sql.Types.BOOLEAN);

在Oracle 10g / 11g中有一个存储过程,如下所示: CREATE OR REPLACE PROCEDURE SP_SOME_PROC ( PRM_ID IN NUMBER , START_DATE IN DATE, RESULT OUT BOOLEAN) is… 使用以下代码调用它并获得结果: String sql = “{call SP_SOME_PROC(?,?,?) }”; callableStatement = conn.prepareCall(sql); callableStatement.setLong(1, theid); callableStatement.setDate(2, new java.sql.Date(startDate.getTime())); callableStatement.registerOutParameter(3, java.sql.Types.BOOLEAN); callableStatement.executeUpdate(); Boolean result = callableStatement.getBoolean(3); 但是,上面的代码会产生如下例外情况 [10/8/13 2:28:24:736 EEST] 0000009a SystemErr R java.sql.SQLException: Invalid column type: 16 […]

Oracle RAW id列和JDBC

我正在尝试开发一个调用Oracle 11g XE数据库的简单Java servlet。 我提供的数据库使用RAW列类型作为所有表的ID。 最初我试图从JDBC获取数据,并且base64编码返回的VARBINARY字节数组,这样我就可以通过JSON将结果传递给前端系统。 但是,在base64解码并尝试将字节数组设置回列之后,Oracle / JDBC没有返回数据。 我决定尝试让Oracle进行编码/解码,并且能够使用SQL Developer 2在Oracle中获取以下查询。 SELECT utl_encode.base64_encode(IDCOLUMN), FIRST_NAME FROM TABLENAME SELECT utl_encode.base64_encode(IDCOLUMN), FIRST_NAME FROM TABLENAME WHERE IDCOLUMN = utl_encode.base64_decode(‘BASE64STRING’) 但是在使用JDBC执行这些queires时: conn = isConnSupplied ? userConn : ResourceManager.getConnection(); Statement stmt = conn.createStatement(); try { ResultSet rset = stmt.executeQuery(“SELECT utl_encode.base64_encode(IDCOLUMN), FIRST_NAME FROM TABLENAME”); try { while (rset.next()) System.out.println (rset.getString(1)); // […]