i am trying to connect my java project to the database .
i am creating a method to create a table using this code
`
package DataBaseConnectivity;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;
public class DataBaseConnectivity {
public static void main(String args[]) {
// Creating the connection using Oracle DB
// Note: url syntax is standard, so do grasp
String url = "jdbc:sqlserver://localhost:1433;databaseName=SchoolMgt;encrypt=true;trustServerCertificate=true";
// Username and password to access DB
// Custom initialization
String user = "sa";
String pass = "root";
// Entering the data
Scanner scanner = new Scanner(System.in);
String tableCreationsql = " create table Students ( id integer PRIMARY KEY,fname VARCHAR (8),birthdate date,lname VARCHAR (8))";
Connection con = null;
// Try block to check for exceptions
try {
Driver driver = (Driver) Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
// Registering drivers
DriverManager.registerDriver(driver);
// Reference to connection interface
con = DriverManager.getConnection(url, user, pass);
// Creating a statement
Statement st = con.createStatement();
// Executing query
int Executing = st.executeUpdate(tableCreationsql);
if (Executing >= 1) {
System.out.println("Created Successfully : " + tableCreationsql);
} else {
System.out.println("Creation Is Failed");
}
// Closing the connections
con.close();
}
// Catch block to handle exceptions
catch (Exception ex) {
// Display message when exceptions occurs
System.err.println(ex);
}
}
}
the code works fine but it never enters the if condition
it directly move to the else
Also the table is some how is created even tho it goes to else
i am expecting to get Creation is successful and table shall be created in db.
>Solution :
executeUpdate
returns the number of rows affected (see the documentation)
Since you are creating a table (DDL statement) 0 rows are affected, hence Executing
equals 0