连接数据库
在连接数据库之前先要添加连接数据库的主机地址(加粗有下划线内容)添加到pg_hba.conf(此文件在安装目录下的datanode文件夹下)中,格式如下所示:
host all all 127.0.0.1/32 sha256
JDBC提供了三个方法,用于创建数据库连接。
语句执行常用的方式为通过Statement和PreparedStatement两种方式:
-
Statement:
- execute:返回值是boolean类型,执行查询语句看不到返回值。
- executeQuery:返回值是ResultSet类型,通常用于查询,使用方法为在里面直接写SQL语句。
-
PreparedStatement:
包含Statement两个方法,但使用不太一样,要先在conn.prepareStatement()中写入语句,之后根据需要再执行execute或executeQuery,这两个方法里面入参为空。如果SQL语句中有变量,建议使用PreparedStatement进行操作可以有效防止SQL注入,使用?替换掉变量,之后使用setObject方法对其赋值。
示例:
说明: 下面示例中黑体加下划线的字段需要替换成用户自己的信息,其中:
- 127.0.0.1:数据库所在的主机地址。
- 8080:数据库连接的端口。
- test:连接的数据库名称。如果数据库不存在会报错,使用前请先确认该数据库是否存在。
- myuser:连接数据库的用户名。
- myPassWord:连接数据库用户的密码。
-
DriverManager.getConnection(String url);
此连接方法需要在url上面拼接上用户名密码。
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) { getConnect(); } public static Connection getConnect() { String driver = "org.opengauss.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; } } }
-
DriverManager.getConnection(String url, Properties info);
此方法的用户名密码等参数均在Properties 对象的实例通过setProperty添加。
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) { getConnect(); } public static Connection getConnect() { String driver = "org.opengauss.Driver"; String sourceURL = "jdbc:opengauss://127.0.0.1:8080/test"; Properties info = new Properties(); info.setProperty("user","myuser"); info.setProperty("password","myPassWord"); Connection conn = null; try { Class.forName(driver); } catch (Exception var9) { var9.printStackTrace(); return null; } try { conn = DriverManager.getConnection(sourceURL, info); System.out.println("连接成功!"); return conn; } catch (Exception var8) { var8.printStackTrace(); return null; } } }
-
DriverManager.getConnection(String url, String user, String password);
此方法需要将用户名和密码作为变量输入。
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) { getConnect(); } public static Connection getConnect() { String driver = "org.opengauss.Driver"; String sourceURL = "jdbc:opengauss://127.0.0.1:8080/test"; String username="myuser"; String passwd="myPassWord"; Connection conn = null; try { Class.forName(driver); } catch (Exception var9) { var9.printStackTrace(); return null; } try { conn = DriverManager.getConnection(sourceURL, username, passwd); System.out.println("连接成功!"); return conn; } catch (Exception var8) { var8.printStackTrace(); return null; } } }