程序的主要功能是:
通过Java在sql server2005中创建一个表,然后插入数据,记录玩家一,二在各个回合中的成绩。请先看代码吧:然后请高手给我指点和建议:
import java.sql.*;
class TestDatabase
{
public static void main(String[] args)
{
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xiao7","sa","xiao7520");
System.out.println("Connection successfully!");
Statement st=con.createStatement();
st.executeUpdate("create table test2(bout int,player1 int,player2 int)");
//bout -- 回合 st.executeUpdate("alter test2 add column player3 int");
st.executeUpdate("insert into test2(bout,player1,player2) values (1,20,30)");
st.executeUpdate("insert into test2(bout,player1,player2) values (2,34,23)");
ResultSet rs=st.executeQuery("select * from test2"); while(rs.next())
{
System.out.print(rs.getString("bout"));
System.out.print(rs.getString("player1"));
System.out.println(rs.getString("player2"));
}
rs.close();
st.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
javac,java后出现:
Connection successfully!
com.microsoft.sqlserver.jdbc.SQLServerException: 'test2' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError
(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown
Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Un
known Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute
(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unkno
wn Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknow
n Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unkn
own Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(Unknown
Source)
at TestDatabase.main(TestDatabase.java:15)
请按任意键继续. . .经过测试:发现错误是应该是从“ st.executeUpdate”这里开始的!请高手指点迷津。
通过Java在sql server2005中创建一个表,然后插入数据,记录玩家一,二在各个回合中的成绩。请先看代码吧:然后请高手给我指点和建议:
import java.sql.*;
class TestDatabase
{
public static void main(String[] args)
{
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xiao7","sa","xiao7520");
System.out.println("Connection successfully!");
Statement st=con.createStatement();
st.executeUpdate("create table test2(bout int,player1 int,player2 int)");
//bout -- 回合 st.executeUpdate("alter test2 add column player3 int");
st.executeUpdate("insert into test2(bout,player1,player2) values (1,20,30)");
st.executeUpdate("insert into test2(bout,player1,player2) values (2,34,23)");
ResultSet rs=st.executeQuery("select * from test2"); while(rs.next())
{
System.out.print(rs.getString("bout"));
System.out.print(rs.getString("player1"));
System.out.println(rs.getString("player2"));
}
rs.close();
st.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
javac,java后出现:
Connection successfully!
com.microsoft.sqlserver.jdbc.SQLServerException: 'test2' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError
(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown
Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Un
known Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute
(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unkno
wn Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknow
n Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unkn
own Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(Unknown
Source)
at TestDatabase.main(TestDatabase.java:15)
请按任意键继续. . .经过测试:发现错误是应该是从“ st.executeUpdate”这里开始的!请高手指点迷津。
说明你的数据库连接成功了,
应该是st.executeUpdate("create table test2(bout int,player1 int,player2 int)"); 这个
出问题了,executeUpdate()方法执行的是数据库操作语句(update,delete,insert),好像不执行create语句吧
少了个table吧?
alter table test2 add column player3 int
这样好发现问题:请看代码:import java.sql.*;
class TestDatabase
{
public static void main(String[] args)
{
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xiao7","sa","xiao7520");
System.out.println("Connection successfully!");
Statement st=con.createStatement(); st.executeUpdate("create table test2(bout int,player1 int,player2 int)");
st.executeUpdate("alter table test2 add column player3 int");
ResultSet rs=st.executeQuery("select * from test2"); while(rs.next())
{
System.out.print(rs.getString("bout"));
System.out.print(rs.getString("player1"));
System.out.println(rs.getString("player2"));
}
rs.close();
st.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}当把这句注释掉:st.executeUpdate("alter table test2 add column player3 int");
程序不出错
如果不注释就出错了
-->st.executeUpdate("alter table test2 add player3 int")column 去掉