黑马程序员技术交流社区

标题: 求助:java问题? [打印本页]

作者: 曹思敏    时间: 2013-6-5 11:37
标题: 求助:java问题?
如何解决这个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默认的文件夹都能正确创建一个学生成绩的数据表,但表的记录不能插入,异常显示为数据类型不匹配.请教如何解决这一问题?
作者: 尹丽峰    时间: 2013-6-5 11:50
JDBC 没学到。。。虽然以前学过但是很久没看了
作者: 花开花落总相似    时间: 2013-6-5 12:33
   这个我也解决不了  还没学到那
作者: Jomes    时间: 2013-6-5 13:50
我教你一个调试的技巧,你可以先到数据库里面插入一条 insert into 学生成绩 values('4201025002','李明','男','1988-12-26',96,80,88,85);看看能成功不,
作者: 杨增坤    时间: 2013-6-11 10:57
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对象执行字符串方便,这个可以进行与准备
对于你这个程序我题一点建议,对于创建表格,插入数据,查询数据和显示数据最好都封装在方法中,这样在主函数中用着比较方便和简洁,希望对你有所帮助!!!
作者: 夜默    时间: 2013-6-11 12:50
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2