使用 MS Sql Server Management Studio 18 我可以创建和执行所有数据库工作。没问题。
在 JDBC 端(mysql 8.0.33 和 JavaSE-17),我可以查看表,没有问题,也没有插入任何东西。
但是,无法以任何方式更改表格或创建表格。有趣的是,如果我在我的会话中创建一个表,在同一个会话中插入和选择,我会看到结果。然而,关闭连接并再次查询会产生一个抛出的错误,因为如果我尝试通过 jdbc 创建它,该表不存在。
如果我在 MS sql 服务器端创建了表,我将能够查询该表,但是将看不到来自 JDBC 的任何更新。
来自 MS sql 服务器端的任何更新都会立即在 JDBC 中看到。 这是权限问题吗?谢谢。 `包人;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
//create table
public class FollowTrail3 {
public static void main(String[] args) {
final String DATABASE_URL =
"jdbc:sqlserver://localhost;" +
"databaseName=students;integratedSecurity=true;encrypt=true;TrustServerCertificate=true";
Connection dbConnection ;
try{
Properties properties = new Properties();
properties.put("user", "login");
properties.put("password", "passwd");
dbConnection = DriverManager.getConnection(DATABASE_URL , properties );
dbConnection.setAutoCommit(false);
Statement stmt = dbConnection.createStatement();
String sql = "CREATE TABLE REGISTRATION " +
"(id INTEGER not NULL, " +
" first VARCHAR(255), " +
" last VARCHAR(255), " +
" age INTEGER, " +
" PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
System.out.println("Created table in given database...");
dbConnection.close();
//No complaints.. creates table in session - but is not persistent
}
catch(SQLException sqlE) {
sqlE.getMessage();
}
}
}
`