Por que o valor de retorno é falso após executar cria a tabela na instrução SQL?
Primeiro, olhe para os problemas encontrados:
execute a instrução sql, crie a tabela e execute sem erros, indicando que nosso código não é problema, e no banco de dados, a tabela do aluno também foi criada com sucesso, o que mostra ainda que nosso código é não há problema. Mas a saída do console é falsa, não é verdade.
Não sei o motivo, então precisamos olhar o código-fonte de execução.
Pressione e segure Ctrl e clique em executar para
ver aqui, descobrimos que isso é uma desculpa e não podemos ver nada.
Portanto, devemos pensar se há alguma indicação
em sua classe de implementação de que estamos pressionando Ctrl + H e encontrar sua classe de implementação
Como resultado, descobrimos que ainda não há explicação aqui, mas aqui, não temos nenhuma ideia e temos que ir para seu documento de explicação.
Podemos encontrar esta frase, que provavelmente significa:
execute 方法返回一个 boolean 值,并没有返回结果,所以返回的是false,如果返回有结果则输出true。再联系我们创建表,我们只是在数据库中完成了表的创建,没有返回结果,所以为false。
到这里我们也终于搞懂了,着实有点不容易呀!
Aqui está meu código, se você quiser experimentar, pode estudá-lo!
private Connection con;
@Before //每次单元测试之前都会执行
public void init() throws Exception {
//2,注册驱动 Driver
Class.forName("com.mysql.cj.jdbc.Driver");
//3,DriverManager 获取连接数据库对象
String url="jdbc:mysql://localhost:3306/long ?useSSL=false&serverTimezone=UTC";
con = DriverManager.getConnection(url, "root", "123456");
}
@Test // dml--新增
public void test01() throws SQLException {
//1,定义sql
String sql="insert into account values(NULL,'关羽',1000)";
//2,获取执行sql的对象,Statement
Statement statement = con.createStatement();
//3,执行sql,并返回表格影响的行数
int i = statement.executeUpdate(sql);
System.out.println(i);
}
@Test // ddl--创建表
public void test02() throws SQLException {
//1,定义sql
String sql="CREATE TABLE student(id INT,NAME VARCHAR(20));";
//2,获取执行sql的对象,Statement
Statement statement = con.createStatement();
//3,执行sql,并返回表格影响的行数
boolean i = statement.execute(sql);
System.out.println(i);
}
O código de criação da tabela de contas:
-- 创建账户表
CREATE TABLE account(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
balance DOUBLE
);
INSERT INTO account VALUES (NULL,'曹操',1000), (NULL,'刘备',1000);