能够正常的查询数据库,但是不能插入数据库,编译没错,就是不能插入数据,解决思路
发布时间:2010-06-14 18:50:25 文章来源:www.iduyao.cn 采编人员:星星草
能够正常的查询数据库,但是不能插入数据库,编译没错,就是不能插入数据,
package mybbs;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//下一次要分包了,尽量还用工厂模式
public class PersonCheckAndInsert {
DataBaseConnection dbc;
Connection con;
String sql;
PreparedStatement pstmt;
public PersonCheckAndInsert(){
dbc=new DataBaseConnection();
con=dbc.getConnection();
}
public void insert(Person p){
sql="insert into person(name,password) value(?,?)";
try {
System.out.println(p.getName()+"
"+p.getPassword());
System.out.println("执行前1");
//pstmt=con.prepareStatement(sql); //两句之
间
pstmt=con.prepareStatement(sql);
System.out.println("执行前2");
pstmt.setString(1, p.getName());
pstmt.setString(2, p.getPassword());
System.out.println("执行前3");
pstmt.executeUpdate();
System.out.println("执行后");
pstmt.close();
} catch (SQLException e) {
System.out.println("insert数据库出错,");
}finally{
dbc.close();
//实际上关的是con,
}
}
}
/*其中那句System.out.println(p.getName()+" "+p.getPassword());都能在后台
输出正常的值,然后后台还能输出“执行前1”,然后就是输出“insert出错”,
然后其他的都不能输出,其实PersonCheckAndInsert类还有一个查询的方法public
boolean check(Person p),都能够正常执行,就是这个public void insert
(Person p)方法不能正常执行*/
//以下是数据库连接类
package mybbs ;
import java.sql.* ;
public class DataBaseConnection
{
private String DBDRIVER =
"com.mysql.jdbc.Driver" ;
private String DBURL =
"jdbc:mysql://localhost/NOte?
user=root&password=root&characterEncoding=gb2312" ;
private Connection conn = null ;
public DataBaseConnection()
{
try
{
Class.forName(DBDRIVER) ;
this.conn = DriverManager.getConnection
(DBURL) ;
}
catch (Exception e)
{
}
}
public Connection getConnection()
{
return this.conn ;
}
public void close()
{
try
{
this.conn.close() ;
}
catch (Exception e)
{
}
}
}
------解决方案--------------------
} catch (SQLException e) {
System.out.println("insert数据库出错,");
}
-->
} catch (SQLException e) {
e.printStackTrace();//看什么异常
System.out.println("insert数据库出错,");
}
------解决方案--------------------
sql="insert into person([name],[password]) value(?,?)";
这样试试
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
有关 CAS 证书认证的 单点登录 问题
cas框架,证书jre中可以查看到证书,开启了ssl ,修改hosts为sso.wsria.com
输入https:\\sso.w...
-
后缀名问题
我写了一个登陆用的htmL页面 名字就叫:logion.html但是那个图标就是不变成浏览器的样子是一个未知图标,请问要怎么样解...
-
请问如何用java代码实现 ,重启tomcat6啊
请问如何用java代码实现 ,重启tomcat6啊
公司领导有个需求:需要在页面上实现一个按钮来重启...
-
IIS与TOMCAT的整合,函数不正确
我的服务器是IIS+TOMCAT整合起来的,里面挂有ASP、PHP和JAVA等网站,以前一直用得好好的,但前些天删除掉...
-
关闭tomcat时出错了!!!怎么回事
息: Stopping Coyote HTTP/1.1 on http-8080
Exception in thread "ShutdownHook" java.lang.NullPo...
-
struts2 Exception 求解答
严重: Exception starting filter strutsdangdang
java.lang.ClassNotFoundException: org.apache.str...
-
tomcat启动后无法访问localhost
2011-10-10 16:12:08 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache To...
-
JSP页面和Servlet页面不在同一个目录下,JSP页面通过表单的action如何跳转到servlet页面
我的项目的名称是Exercise,然后在src目录...
-
Apache下的DocumentRoot目录指定
apache配置文件已经指定了,但是日志里面还是报错。
<VirtualHost *:8080>
DocumentRoot /var/...
-
如何让外网访问虚拟机上的apache
apache安装在虚拟机上,通过局域网的ip地址能够在本机上对它进行访问,但是在外网就不能通过外网的I...