我从网页上抽取回来的信息,同时往数据库中存
我把key列设置为varchar(100),value列设置为varchar(100),可是存的时候总报错:
Exception in thread "main" java.sql.SQLException: Column count doesn't match value count at row 1
应该是我设置的不对,求帮助!!拜托~package extraction;import java.io.*;
import java.sql.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class ExAllParameter extends DBCon{

public static long getFileNum(String path){
    long count=0;
File file=new File(path);
File list[] = file.listFiles();
for(int i=0;i<list.length;i++){
if(list[i].isDirectory()){
count++;
}
}
return count;
}

public static void main(String[] args) throws IOException,SQLException{
String file = ".\\source\\1\\";
conn("jdbc:mysql://127.0.0.1:3306/Extraction","root","123123");
stmt=con.createStatement();
FileReader fr = new FileReader(file+"1\\index1.txt");
BufferedReader br = new BufferedReader(fr);
String s = "";
StringBuffer sb = new StringBuffer("");
while ((s = br.readLine()) != null) {
sb.append(s);
}
String s1= "<tr><td class=\"tdTitle\">(.*?)</td><td>(.*?)</td>";
Pattern p=Pattern.compile(s1, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
Matcher m=p.matcher(sb);
while(m.find())
{
String key = m.group(1);
String value = m.group(2);
//System.out.println(key+":"+value);
String sql="insert into allparameter(key1,value1) values('"+key+","+value+"')";
stmt.execute(sql);
}
 closeCon();
}
}我试过直接输出到控制台,得到如下数据:
品牌:诺基亚(Nokia)
型号:5233
颜色:黑色
上市时间:2010年
外观设计:直板
视频通话:不支持
操作系统:Symbian S60
智能机:是
CPU型号:ARM11
CPU频率:434MHz
键盘类型:虚拟QWERTY键盘
输入方式:手写
网络制式:GSM
网络频率:GSM 850/900/1800/1900
数据业务:GPRS,EDGE
浏览器:支持
机身内存:256MB ROM+128MB RAM
可用空间:70MB 
储存卡类型:Micro SD
最大存储扩展:16GB
热插拔:支持
屏幕尺寸:3.2英寸 
屏幕色彩:1600万色
屏幕材质:TFT
分辨率:640 x 360 像素
触摸屏:电阻屏
重力感应:支持
距离感应:支持
音乐播放:MP3/AAC/eACC+/MP4/WMA等格式<br/>
视频播放:MP4/3GP/MPEG-4等格式
JAVA:支持
电子书:支持
收音机:支持
电视播放:不支持
彩信功能:支持
铃音类型:64和铉
摄像头:200万<br/>
传感器类型:CMOS
闪光灯:不支持
视频拍摄:480p(640×480,30帧/秒)视频录制
变焦模式:3倍
拍摄模式:自动,夜间 
拍摄场景:支持
照片分辨率:最大支持1600×1200像素照片拍摄
其他性能:白平衡,曝光测量,相片编辑器
GPS:不支持
Wi-Fi:不支持
蓝牙:支持
PC数据同步:支持
Office:支持
电子邮件:支持
计算器:支持
闹钟:关机闹钟
录音:支持
通话录音:支持
后台操作:支持
后台QQ:支持
炒股软件:支持
电池型号:BL-5J
电池类型:锂电池
电池容量:1320 毫安
理论通话时间:648分钟
理论待机时间:455小时
数据线:Micro USB v2.0
耳机:3.5mm
机身尺寸:111 x 51.7 x 14.5/15.5 毫米
机身重量:113 克 (不含触控笔) <br/>- 115 克 (含触控笔)

急!!

解决方案 »

  1.   

    表中的实际列数和你的提供的不一样。 String sql="insert into allparameter(key1,value1) values('"+key+","+value+"')";控件台上调试一下,看看  String sql 的实际内容。 直接到数据库中去执行一下,看看是否正确。
      

  2.   


    我又仔细检查了一遍,果然是sql语句出问题了,正确的是values('"+key"','"+value+"');
    真是不认真,很感谢你!!
    此外我能再问个问题吗?
    我想往数据库里添加新字段,用下面这个语句
    stmt.execute("alter table allparameter add key2 varchar(100),value2 varchar(100);");总是报错:Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;   您能帮我看下吗?