求助!jsp,servlet,javabean向数据库中插入数据,数据库SQL2000.请朋友们给看看哪里有问题。
大家好~我用MVC模式想实现一个简单的注册,即jsp注册页面的数据要传到数据库中。我的数据库users:createtableusers(idintprimarykey,...
大家好~我用MVC模式想实现一个简单的注册,即jsp注册页面的数据要传到数据库中。
我的数据库users:
create table users(
id int primary key,
username varchar(20) not null,
password varchar(20) not null,
tel varchar(20) not null,
email varchar(50) not null,
realname varchar(20) not null,
)
数据库:public class DB{
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=systembaoming";
String user="zxh";
String password="123";
Connection connect=null;
ResultSet rs=null;
public DB(){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(final java.lang.ClassNotFoundException e){
e.printStackTrace();
}
}
public int executeUpdate(String sql){
int result=0;
try {
connect=DriverManager.getConnection(url,user,password);
Statement stmt=connect.createStatement();
result=stmt.executeUpdate(sql);
}
catch(SQLException ex){
System.err.println(ex.getMessage());
}
return result;
}
插入语句:
public class insert{
public int setusers(String username, String psw, String realname, String email,String tel)throws Exception{
int inn;
String strSql=null;
// try{
strSql="INSERT (username,password,realname,email,tel) INTO users " +
" VALUES("+username+","+psw+","+realname+","+email+","+tel+")";
DB db = new DB();
inn=db.executeUpdate(strSql);
db.close();
return inn ;
}
}
处理表单的:
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException, IOException{
resp.setContentType("text/html");
req.setCharacterEncoding("gb2312");
resp.setCharacterEncoding("gb2312");
String username=(String)req.getParameter("uername");
String psw =(String)req.getParameter("password");
String tel=(String)req.getParameter("tel");
String email=(String)req.getParameter("email");
String realname=(String)req.getParameter("realname");
//DB db=new DB();
insert bm=new insert();
int in = 0;
try {
in = bm.setusers(username,psw,realname,email,tel);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//执行具体的业务逻辑
if(in!=-1){
resp.sendRedirect("ok.jsp");//注册成功,跳转到ok.jsp页面
}
else{
System.out.println("注册失败!");
resp.sendRedirect("wrong .jsp"); //注册失败,跳转到wrong.jsp页面
}
}
}
只贴了关键代码,希望大家能明白意思,帮我看看怎么回事啊,表单提交的数据就是传不到数据库里面去。谢谢! 展开
我的数据库users:
create table users(
id int primary key,
username varchar(20) not null,
password varchar(20) not null,
tel varchar(20) not null,
email varchar(50) not null,
realname varchar(20) not null,
)
数据库:public class DB{
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=systembaoming";
String user="zxh";
String password="123";
Connection connect=null;
ResultSet rs=null;
public DB(){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(final java.lang.ClassNotFoundException e){
e.printStackTrace();
}
}
public int executeUpdate(String sql){
int result=0;
try {
connect=DriverManager.getConnection(url,user,password);
Statement stmt=connect.createStatement();
result=stmt.executeUpdate(sql);
}
catch(SQLException ex){
System.err.println(ex.getMessage());
}
return result;
}
插入语句:
public class insert{
public int setusers(String username, String psw, String realname, String email,String tel)throws Exception{
int inn;
String strSql=null;
// try{
strSql="INSERT (username,password,realname,email,tel) INTO users " +
" VALUES("+username+","+psw+","+realname+","+email+","+tel+")";
DB db = new DB();
inn=db.executeUpdate(strSql);
db.close();
return inn ;
}
}
处理表单的:
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException, IOException{
resp.setContentType("text/html");
req.setCharacterEncoding("gb2312");
resp.setCharacterEncoding("gb2312");
String username=(String)req.getParameter("uername");
String psw =(String)req.getParameter("password");
String tel=(String)req.getParameter("tel");
String email=(String)req.getParameter("email");
String realname=(String)req.getParameter("realname");
//DB db=new DB();
insert bm=new insert();
int in = 0;
try {
in = bm.setusers(username,psw,realname,email,tel);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//执行具体的业务逻辑
if(in!=-1){
resp.sendRedirect("ok.jsp");//注册成功,跳转到ok.jsp页面
}
else{
System.out.println("注册失败!");
resp.sendRedirect("wrong .jsp"); //注册失败,跳转到wrong.jsp页面
}
}
}
只贴了关键代码,希望大家能明白意思,帮我看看怎么回事啊,表单提交的数据就是传不到数据库里面去。谢谢! 展开
4个回答
展开全部
是不是数据库最后没关闭的事?
stmt和connect在DB类的最后给close()一下看看。
-----------
哦, 我看错了 你已经调用了db.close();
但是你这个close()方法写在哪儿了?
---------
还有users表的ID是主键,INSERT语句里需要写出来。ID也插入值。
stmt和connect在DB类的最后给close()一下看看。
-----------
哦, 我看错了 你已经调用了db.close();
但是你这个close()方法写在哪儿了?
---------
还有users表的ID是主键,INSERT语句里需要写出来。ID也插入值。
追问
close方法写在了数据库DB里面的 只是字数限制 就没有贴上来了
uers表中的id主键 我在数据库中设置了自动增加的
所以insert不需要插入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
strSql="INSERT (username,password,realname,email,tel) INTO users " +
" VALUES("+username+","+psw+","+realname+","+email+","+tel+")";
其中“+psw+”应该改成"+password+"吧?~~我觉得~你用的SQL我也用过,`只是我只学过ASP脚本,``但还是看得懂你这些代码!你用DW做的吗?
" VALUES("+username+","+psw+","+realname+","+email+","+tel+")";
其中“+psw+”应该改成"+password+"吧?~~我觉得~你用的SQL我也用过,`只是我只学过ASP脚本,``但还是看得懂你这些代码!你用DW做的吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般如果链接正确的话,错误都出在sql语句的拼写上了,比如改用单引号包住的地方你没包住,字段名称没有拼对。
仔细检查吧~
仔细检查吧~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你得看有没有抛出异常?把异常贴出来才知道问题在哪里呀,你写的这个代码可以知道你是刚学java的吧,写得太烂了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询