JSP,选择型(select-o
首先在JSP页面的数据库处理部分使用:
try {
statement(。。。。。);
}catch(SQLException e) {
int( String());
}
然后查看抛出的异常是什么样的:
1、像上面的语句中,我不知道是复制过来的还是写错了:
String sql="insert into tb_member values('"+income+"');
很明显右边少了一个引号:
String sql="insert into tb_member values('"+income+"')";
2、抛出异常中可能说明是违反主键约束:查看数据库表,将次主键约束暂时删除。
3、...全部
首先在JSP页面的数据库处理部分使用:
try {
statement(。。。。。);
}catch(SQLException e) {
int( String());
}
然后查看抛出的异常是什么样的:
1、像上面的语句中,我不知道是复制过来的还是写错了:
String sql="insert into tb_member values('"+income+"');
很明显右边少了一个引号:
String sql="insert into tb_member values('"+income+"')";
2、抛出异常中可能说明是违反主键约束:查看数据库表,将次主键约束暂时删除。
3、抛出异常可能说明字符串被截断,说明你定义的char类型太短,一般向这样的字段保持定义在varchar(20)左右。
4、本来还有可能是类型不匹配或指定参数太多或不够等,但就你题目中描述,只有一个字段就能出现这样的异常了。
出于个人开发经验的一点点建议:
以后连接数据库不要这样去连接,尽量使用Bean去完成,不然程序很混乱,以后维护非常困难。
对数据库的操作不要显示地去指定参数和表,尤其是参数,可以使用预处理方式,多步骤连贯操作,可以使用事务来达到数据操作的原子性,当然某些也可以通过数据库的事务去完成。
多步骤的非连贯信息的操作可以使用JDBC 3。0提供的批处理方式去完成以提高对数据库的批量访问成10倍得提高效率。
像在做通用模板的时候,对数据库的表的指定的动态赋予的,当然对其某些字段的操作也是动态的,那么数据库类型和参数的个数也是动态的,如果用上述过程去完成非常困难。
尤其还要对一些数据库内部的空值异常进行处理。
(在此简单说明一下为什么要用到通用模板化的设计原则:以在一个软件开发过程中对某公司报表进行处理来说,公司今天的报表可能是这样的,明天可能是那样的,这些报表都是要用来打印的,如果公司要修改报表,那么就需要开发者来修改源代码。
那么就有几种可能:
1、公司数据没有改变,就改变报表的样式。
2、公司报表总数没有变,某些报表数据有增加或删除的现象。
3、公司的报表有增加。
尤其是后面的两者,如果没有通用模板,当发生这些情况,就需要重新编码而且对程序进行从新编译的过程)
。
收起