import java.sql.*;public class Test {
public static void main(String[] srg) {
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
String dbURL = "jdbc:sqlserver://127.0.0.1:1433; DatabaseName=db_sean"; // 连接服务器和数据库sample
String userName = "Sean"; // 默认用户名
String userPwd = "xianjiangao"; // 密码
Connection dbConn; try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
java.sql.Statement stmt = null;
stmt=dbConn.createStatement();
boolean s=stmt.execute("SET IDENTITY_INSERT STUDENT ON");//就是这句出问题
System.out.println(s);
ResultSet rs=stmt.executeQuery("select * from student");
while(rs.next())
{
System.out.print(rs.getString(1)+" ");
System.out.print(rs.getString(2)+" ");
System.out.println(rs.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
} }
}执行结果
Connection Successful!
false
3 aa 111
4 aa 111
说明可以访问数据库,可以连接,也可以取数据
但是为什么boolean s=stmt.execute("SET IDENTITY_INSERT STUDENT ON");这句执行的结果是false?谢谢高手回答
是不是这块语句有问题
你的这个表名STUDENT没写错吧。或者是你的权限不够,把SET IDENTITY_INSERT STUDENT ON 复制到别的sql工具里面看执行结果。
恕我见识少,没用过这种语句
student 是不是错误
在数据库中可以执行,所以应该不存在权限问题
用java连接用的也是相同用户登陆的
student表名确定没错
一直找不出为什么
执行给定的 SQL 语句,该语句可能返回多个结果
参数:
sql - 任何 SQL 语句
返回:
如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false ;
-------------------------
所以execute(sql)不是返回sql语句的运行是否成功,而是有ResultSet,返回true,没有ResultSet或者计数时,返回false;