站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题SQL之低级问题

SQL之低级问题

摘要: SQL之低级问题


在做Struts项目的时候...连接SQL是通过的...不过一写上下面的语句就有错误了:
stmt.execute("insert into userInfo values('aa','aa')");
就说找不到 userInfo对象...连接没问题~~~这个userInfo名字也没错....
到底是什么问题呢?~~~


可能是数据库不对吧````

把错误的详细信息贴出来好不``?~!``


连接SQL是通过的...不过一写上下面的语句就有错误了:
stmt.execute("insert into userInfo values('aa','aa')");

光这一条有问题吗? 有试过别的表吗,否则怎么知道连接没问题


数据库表属主的问题?加上用户名.呢


你可以用完整的格式试一下:

insert into usrInfo (column1,column2,colunm3) values ('a','a','a')

试试行不行.


我试过其它数据库和其它表...完整的格式也试过了...可它就是说找不到userInfo对象~~~郁闷了...


测试的程序如下:
import java.sql.*;
import javax.sql.*;
import java.io.*;

public class UserBean {
private Connection conn=null;
private Statement stmt=null;
private ResultSet rs=null;
private String reg="sun.jdbc.odbc.JdbcOdbcDriver";
private String url="jdbc:odbc:shop;DatabaseName=shop";
private String user="sa";
public UserBean()
{
try{
Class.forName(reg);
conn=DriverManager.getConnection(url,user,"");
System.out.println("连接成功...");
}catch(Exception e){e.printStackTrace();}
try{
stmt = conn.createStatement();
stmt.execute("insert into userInfo values('d','ddddd')");
System.out.println("添加成功");
}catch(Exception e){e.printStackTrace();}
}

public static void main(String args[])
{
new UserBean();
}
}
第一个try{}是连接的...通过了..
第二个try{}是操作的...不行了...去年这句就行了:stmt.execute("insert into userInfo values('d','ddddd')");
错误如下:
java.sql.SQLException:[ Microsoft ODBC Sql Server Driver][SQL Server]对象名"userInfo"无效.
为什么连接通过...操作却不行了呢?


写成select语句也不行...


用的是SqlServer2000??
改成这样试试:
stmt.execute("insert into dbo.userInfo values('aa','aa')");


表结构贴出来!!!


用pstmt试试
private PreparedStatement pstmt;
sql="insert into userinfo values(?,?)";
pstmt = conn.preparedStatement(sql);
pstmt.setString(1,"d");
pstmt.setString(2,"ddd");
pstmt.executeUpdate();
可能有些拼写错误,你用IDE根据提示就出来正确的了,用原始JDBC操作数据库很久没用了,现在一直用Hibernate。^o^



表结构贴出来!!!



用的是SqlServer2000??
改成这样试试:
stmt.execute("insert into dbo.userInfo values('aa','aa')");
~~~这样不行~~~
表结构就是简单的要命:
UserName char(25)
Password char(20)


很久之前就写过这种语句了....想不到今天才给黑了~~~


stmt.execute("insert into dbo.userInfo values('aa','aa')");写成
stmt.executeSql("insert into dbo.userInfo values('aa','aa')");试试!


有这样一个方法?还是自己定义的~~~


表名[userInfo]
用这个试试看


up


语句没问题啊,我照着你的做了一下是成功的,不过我用的是oracle数据库,你应该检查一下你的数据库配置。
package test;
import java.sql.*;

public class UserBean {
private Connection conn=null;
private Statement stmt=null;
private String reg="oracle.jdbc.driver.OracleDriver";
private String url="jdbc:oracle:thin:@localhost:1521:oradp";
private String user="scott";
public UserBean()
{
try{
Class.forName(reg);
conn=DriverManager.getConnection(url,user,"tiger");
System.out.println("连接成功...");
}catch(Exception e){e.printStackTrace();}
try{
stmt = conn.createStatement();
stmt.execute("insert into t_users values(1,'gao','d','ddddd')");
System.out.println("添加成功");
}catch(Exception e){e.printStackTrace();}
}

public static void main(String args[])
{
new UserBean();
}
}



什么方法都试过了~~~还是不行...


哎呀~~~各位!!!折腾了整天...我终于找到了解决方法...:
stmt.execute("insert into [userInfo] values('d','ddddd')");--不行
stmt.execute("insert into shop.userInfo values('d','ddddd')");--不行--shop是数据库名.
stmt.execute("user shop insert into userInfo values('d','ddddd')");--行了~~~
唉...这次真是TMD的变态了....在查询分析器里面才用的语句...居然要在这里加上了~~~
希望大家以后多多小心了...
oracle我也编了不少...之前我也确定语句没什么问题的~~~但还是给黑了...
再爱你一次--------------



↑返回目录
前一篇: 关于联接数据库的一个问题!description The server encountered an internal error () that prevented it from fulfilling this request.
后一篇: Hibernate的分页技术