JDBC里面关于元数据的问题
代码如下:importjava.sql.Connection;importjava.sql.ParameterMetaData;importjava.sql.Prepar...
代码如下:
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//参数的数据源信息publicclass PMMD {
publicstaticvoid main(String[] args) throws SQLException {
read("select id,name,birthday,money from user1 where name=? and birthday<? and money>?",null);
}
staticvoid read(String sql,Object[] params) throws SQLException{
Connection conn =null;
PreparedStatement ps =null;
ResultSet rs =null;
try {
conn = JdbcUtilsSing.getInstance().getConnection();
ps = conn.prepareStatement(sql);
ParameterMetaData pmd = ps.getParameterMetaData();
int count = pmd.getParameterCount();
for(int i =1;i<=count;i++){
System.out.print(pmd.getParameterClassName(i)+"\t");
System.out.print(pmd.getParameterType(i)+"\t");
System.out.println(pmd.getParameterTypeName(i));
}
} finally{
JdbcUtils.free(rs,ps,conn);
}
}
}
错误消息如下:
Exception in thread "main" java.sql.SQLException: 不支持的特性
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:119)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:115)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:221)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:293)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:574)
at oracle.jdbc.driver.DatabaseError.throwUnsupportedFeatureSqlException(DatabaseError.java:1009)
at oracle.jdbc.driver.OracleParameterMetaData.getParameterClassName(OracleParameterMetaData.java:193)
at com.jdbc.PMMD.read(PMMD.java:27)
at com.jdbc.PMMD.main(PMMD.java:12)
我用的oracle,数据库驱动是ojdbc6和ojdbc14 展开
import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//参数的数据源信息publicclass PMMD {
publicstaticvoid main(String[] args) throws SQLException {
read("select id,name,birthday,money from user1 where name=? and birthday<? and money>?",null);
}
staticvoid read(String sql,Object[] params) throws SQLException{
Connection conn =null;
PreparedStatement ps =null;
ResultSet rs =null;
try {
conn = JdbcUtilsSing.getInstance().getConnection();
ps = conn.prepareStatement(sql);
ParameterMetaData pmd = ps.getParameterMetaData();
int count = pmd.getParameterCount();
for(int i =1;i<=count;i++){
System.out.print(pmd.getParameterClassName(i)+"\t");
System.out.print(pmd.getParameterType(i)+"\t");
System.out.println(pmd.getParameterTypeName(i));
}
} finally{
JdbcUtils.free(rs,ps,conn);
}
}
}
错误消息如下:
Exception in thread "main" java.sql.SQLException: 不支持的特性
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:119)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:115)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:221)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:293)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:574)
at oracle.jdbc.driver.DatabaseError.throwUnsupportedFeatureSqlException(DatabaseError.java:1009)
at oracle.jdbc.driver.OracleParameterMetaData.getParameterClassName(OracleParameterMetaData.java:193)
at com.jdbc.PMMD.read(PMMD.java:27)
at com.jdbc.PMMD.main(PMMD.java:12)
我用的oracle,数据库驱动是ojdbc6和ojdbc14 展开
2个回答
展开全部
JdbcUtilsSing 这个类你加载进来了么?我没有看到这个类 被加载~
更多追问追答
追问
这个类我写在同一个包里面的,就是和数据库的连接,这里是没有错的。
追答
package cgi_bin.user;包名你看下 是不是当前的包 刚才我直接导入你的程序 也有这个问题 我把包名导入就好了 程序是没问题的!
我的是这么改的~
package cgi_bin.user;
import java.sql.SQLException;
public class PMMD {
public static void main(String[] args) throws SQLException {
read("select id,name,birthday,money from user1 where name=? and birthday?",null);
}
static void read(String sql,Object[] params) throws SQLException{
}
方法没问题~
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
能把你的工具类也贴上来么?JdbcUtilsSing 和JdbcUtils
追问
哥啊,真的没错啊,而且也没报他们的错,错误行是在
System.out.print(pmd.getParameterClassName(i)+"\t");
System.out.print(pmd.getParameterType(i)+"\t");
System.out.println(pmd.getParameterTypeName(i));
这三行。
主要是他说不支持的特性是什么意思?oracle里面不支持?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询