日期:2014-05-20  浏览次数:20746 次

用SQL语句把数据插入MySQL的问题
本帖最后由 u012145885 于 2014-04-13 16:24:30 编辑
我用JDBC操作MySQL,程序如下:

import java.io.*;
import java.sql.*;

public class Test9 {
    public static void main(String[] args) {
        String driver="com.mysql.jdbc.Driver",
               url="jdbc:mysql://localhost:3306/test?zeroDateTimeBehavior=convertToNull",
               user="root",
               password="111";
        try{
            Class.forName(driver).newInstance();
            Connection conn=DriverManager.getConnection(url, user, password);
            if(conn!=null) {
                Statement st=conn.createStatement();
                String s="22222234X"; //系统提示这个字符串不能插入,但是把X换成数字或者去掉就可以成功插入
                                          //我研究了下,这个字符串里不能含有英文字母或其他,只能是数字
                st.executeUpdate("insert into 供应商(编号) values("+s+")");
                st.close();
                conn.close();
                System.out.println("插入成功");
            }else{
                System.out.println("连接失败");
            }
        }catch(Exception e){
            e.printStackTrace();
        }
     }
}
}

供应商"中“编号”的格式为:VARCHAR(30),并且是主键。请问为什么s字符串的内容只能是阿拉伯数字,不能掺入其他字符?
------解决方案--------------------
改成(少了单引号)
st.executeUpdate("insert into 供应商(编号) values('"+s+"')");