A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹思敏 中级黑马   /  2013-6-5 11:37  /  1969 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何解决这个java问题?

import java.sql.*;
class JdbcDemo{
public static void main(String args[]){
Connection con;
Statement st;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
System.out.println("类未找到异常!"+e);
}
try{
con=DriverManager.getConnection("jdbc:odbc:student");
DatabaseMetaData dbmd=con.getMetaData();
System.out.println("数据库的URL:"+dbmd.getURL());
System.out.println("数据库的用户名:"+dbmd.getUserName());
System.out.println("数据库驱动程序名:"+dbmd.getDriverName());
System.out.println("数据库驱动程序版本号:"+dbmd.getDriverVersion());
System.out.println("数据库产品名:"+dbmd.getDatabaseProductName());
System.out.println("数据库产品版本号:"+dbmd.getDatabaseProductVersion());
st=con.createStatement();
String query="create table 学生成绩("
+"考号 char(10),姓名 char(8),性别 char(2),出生日期 datetime,"
+"数学 integer,语文 integer,英语 integer,综合 integer)";
st.executeUpdate(query);
String s1="insert into 学生成绩 values("
+"'4201025001','王丹','女','1989-10-15',95,87,88,78)";
String s2="insert into 学生成绩 values("
+"'4201025002','李明','男','1988-12-26',96,80,88,85)";
String s3="insert into 学生成绩 values("
+"'4201025003','赵星','男','1989-5-3',90,75,84,82)";
String s4="insert into 学生成绩 values("
+"'4201025004','黄萍','女','1989-3-12',88,79,90,80)";
st.executeUpdate(s1);
st.executeUpdate(s2);
st.executeUpdate(s3);
st.executeUpdate(s4);
rs=st.executeQuery("select * from 学生成绩");
System.out.println("[学生成绩]表中的数据如下:");
System.out.println(" 考号 姓名 性别 出生日期 数 语 英 综");
while(rs.next())
System.out.println(rs.getString(1)+"|"
+rs.getString(2)+"|"
+rs.getString(3)+"|"
+rs.getString(4).substring(0,10)+"|"
+rs.getString(5)+"|"
+rs.getString(6)+"|"
+rs.getString(7)+"|"
+rs.getString(8));
rs.close();st.close();con.close();
}catch(java.sql.SQLException e){
System.out.println("SQL 错误!"+e);
}
}
}
这个java源程序JdbcDemo经java编译后显示为:
数据库的URL:jdbc:odbc:student
数据库的用户名:
数据库驱动程序名:JDBC-ODBC Bridge (VFPODBC.DLL)
数据库驱动程序版本号:2.0001 (06.81.0000)
数据库产品名:Visual FoxPro
数据库产品版本号:03.00.0000
SQL 错误!java.sql.SQLException: [Microsoft][ODBC Visual FoxPro Driver]Data type mismatch.
在其数据源所在的文件夹和java默认的文件夹都能正确创建一个学生成绩的数据表,但表的记录不能插入,异常显示为数据类型不匹配.请教如何解决这一问题?

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

5 个回复

倒序浏览
JDBC 没学到。。。虽然以前学过但是很久没看了
回复 使用道具 举报
   这个我也解决不了  还没学到那
回复 使用道具 举报
我教你一个调试的技巧,你可以先到数据库里面插入一条 insert into 学生成绩 values('4201025002','李明','男','1988-12-26',96,80,88,85);看看能成功不,

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
String s1="insert into 学生成绩 values("
+"'4201025001','王丹','女','1989-10-15',95,87,88,78)";
我感觉你的字符串写错了!应该是把values后面括号里面的""去掉
应该是:String s1="insert into 学生成绩 values('4201025001','王丹','女','1989-10-15',95,87,88,78)";
但是我感觉现在用Statement的对象来执行sql字符串没有用PreparedStatement对象执行字符串方便,这个可以进行与准备
对于你这个程序我题一点建议,对于创建表格,插入数据,查询数据和显示数据最好都封装在方法中,这样在主函数中用着比较方便和简洁,希望对你有所帮助!!!

评分

参与人数 1技术分 +1 收起 理由
夜默 + 1 很给力!

查看全部评分

回复 使用道具 举报
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马