不要用 executeUpdate(String sql)改用execute()方法。
使用预处理.估计%应该用转义字符..用预处理安全防止sql注入..具体方法如下:
//conn = dbutil.getinstance().getconnection();这个是获取conn的一个方法
//dbutil.getinstance().close(pstmt, conn);这个是我关闭pstmt conn的方法
//关键就是使用preparedstatement 这个预处理。要导入包import java.sql.preparedstatement;
public void addstudent(bufferedreader br){
string name = null;
string sex = null;
string age = null;
string id = creatid();
connection conn =null;
preparedstatement pstmt = null;
system.out.println("请输入学生相应的信息:");
try {
//从键盘输入学生名称
system.out.println("请您输入学生姓名 :");
name = br.readline();
//从键盘输入性别
system.out.println("请您输入学生性别 :");
sex = br.readline();
//从键盘输入年龄
system.out.println("请您输入学生年龄 :");
age = br.readline();
} catch (ioexception e) {
// todo auto-generated catch block
e.printstacktrace();
}
// system.out.println(name + sex + age);
// insertstudent(name,sex,age);
conn = dbutil.getinstance().getconnection();
//通过输出判断conn是否正确
// string sql = "insert into t_student(id,name,sex,age) values(111,"+"'"+name+"','"+sex+"',"+age+")";
string sql = "insert into t_student(id,name,sex,age) values(?,?,?,?)";
try {
pstmt=conn.preparestatement(sql);
pstmt.setstring(1, id);
pstmt.setstring(2, name);
pstmt.setstring(3, sex);
pstmt.setstring(4, age);
pstmt.execute();
} catch (sqlexception e) {
// todo auto-generated catch block
e.printstacktrace();
}
dbutil.getinstance().close(pstmt, conn);
system.out.println("记录插入成功");
}
如果还有疑问联系我:qq 6 0 3 051135
……估计是代码问题吧,看你的异常应该不是驱动或者设置的问题。
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....