java连接数据库,SQL语句执行常用的方式为通过Statement和PreparedStatement两种方式:
-
Statement:
- execute:返回值是boolean类型,执行查询语句看不到返回值。
- executeQuery:返回值是ResultSet类型,通常用于查询,使用方法为在里面直接写SQL语句。
-
PreparedStatement:
包含Statement两个方法,但使用不太一样,要先在conn.prepareStatement()中写入语句,之后根据需要再执行execute或executeQuery,这两个方法里面入参为空。如果SQL语句中有变量,建议使用PreparedStatement进行操作可以有效防止SQL注入,使用?替换掉变量,之后使用setObject方法对其赋值。
下面以创建表为例进行说明两者的不同
通过statement执行创表操作。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JdbcConn {
public static void main(String[] args) throws SQLException {
Connection conn = getConnect();
Statement statement = conn.createStatement();
statement.execute("create table test_table (id int,name varchar (10))");
}
public static Connection getConnect() {
String driver = "com.huawei.opengauss.jdbc.Driver";
String sourceURL = "jdbc:opengauss://127.0.0.1:8080/test?user=myuser&password=myPassWord";
Properties info = new Properties();
Connection conn = null;
try {
Class.forName(driver);
} catch (Exception var9) {
var9.printStackTrace();
return null;
}
try {
conn = DriverManager.getConnection(sourceURL);
System.out.println("连接成功!");
return conn;
} catch (Exception var8) {
var8.printStackTrace();
return null;
}
}
}
通过PreparedStatement执行创表操作。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JdbcConn {
public static void main(String[] args) throws SQLException {
Connection conn = getConnect();
PreparedStatement preparedStatement=conn.prepareStatement("create table test (id int,name varchar (10))");
preparedStatement.execute();
}
public static Connection getConnect() {
String driver = "com.huawei.opengauss.jdbc.Driver";
String sourceURL = "jdbc:opengauss://127.0.0.1:8080/test?user=myuser&password=myPassWord";
Properties info = new Properties();
Connection conn = null;
try {
Class.forName(driver);
} catch (Exception var9) {
var9.printStackTrace();
return null;
}
try {
conn = DriverManager.getConnection(sourceURL);
System.out.println("连接成功!");
return conn;
} catch (Exception var8) {
var8.printStackTrace();
return null;
}
}
}