通过JDBC 连接mysql需要JDBC驱动程序包,本例子使用的是:mysql-connector-java-5.1.43-bin.jar
通过JDBC 连接postgres需要JDBC驱动程序包,本例子使用的是:postgresql-42.7.4.jar
通过JDBC 连接oracle需要JDBC驱动程序包,本例子使用的是:ojdbc6.jar
/**
*
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @author LYJ
*
*/
public class JDBCTest {
/**
* @param args
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// jdbcMysqlSelect();
// jdbcMysqlWrite();
// jdbcPostgresSelect();
// jdbcPostgresWrite();
// jdbcOracleSelect();
// jdbcOracleWrite();
}
/*
* 通过JDBC连接mysql数据 实现数据读写操作
*/
public static void jdbcMysqlSelect() throws ClassNotFoundException, SQLException {
// 01、注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 02、获取连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1", "root", "123456");
// 03、定义Sql
String sql = "SELECT * FROM student_t";
// 04、获取执行者对象
Statement stat = conn.createStatement();
// 05、执行Sql并获取结果
ResultSet rs = stat.executeQuery(sql);
rs.last();// 定位到最后一行
int totalRows = rs.getRow();
System.out.println("一共有:" + totalRows + "行");
rs.beforeFirst();// 定位到第一行前
// 06、处理返回结果
while (rs.next()) {
System.out.println(rs.getInt("stu_id") + "\t" + rs.getString("stu_name"));
}
// 07、关闭资源
rs.close();
stat.close();
conn.close();
}
/*
* 通过JDBC连接mysql数据 实现数据读写操作
*/
public static void jdbcMysqlWrite() throws ClassNotFoundException, SQLException {
// 01、注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 02、获取连接
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8", "root", "123456");
// 关闭自动提交
conn.setAutoCommit(false);
// 03、定义Sql
String sql = "insert into student_t(stu_id,stu_name,stu_sex,stu_age) values(" + "6" + "," + "'王五'" + "," + "'男'"
+ "," + "20" + ")";
// 04、获取执行者对象
Statement stat = conn.createStatement();
int count = stat.executeUpdate(sql);
// 06、判断执行结果
if (count > 0) {
System.out.println("插入数据成功");
}
// 提交事务
conn.commit();
// 回滚事务
// conn.rollback();
// 07、关闭资源
stat.close();
conn.close();
}
/*
* 通过JDBC连接postgress数据 实现数据读写操作
*/
public static void jdbcPostgresSelect() throws ClassNotFoundException, SQLException {
// 01、注册驱动
Class.forName("org.postgresql.Driver");
// 02、获取连接,数据库连接URL,格式为:jdbc:postgresql://主机名:端口/数据库名
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/mydb1", "liyongjie",
"liyongjie");
// 03、定义Sql
String sql = "SELECT * FROM schema1.student_t";
// 04、获取执行者对象
// 在 PostgreSQL JDBC 驱动中,如果没有指定使用可滚动的 ResultSet,那么默认创建的 ResultSet
// 是不支持滚动的。
Statement stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
// 05、执行Sql并获取结果
ResultSet rs = stat.executeQuery(sql);
rs.last();// 定位到最后一行
int totalRows = rs.getRow();
System.out.println("一共有:" + totalRows + "行");
rs.beforeFirst();// 定位到第一行前
// 06、处理返回结果
while (rs.next()) {
System.out.println(rs.getInt("stu_id") + "\t" + rs.getString("stu_name"));
}
// 07、关闭资源
rs.close();
stat.close();
conn.close();
}
/*
* 通过JDBC连接Postgres数据 实现数据读写操作
*/
public static void jdbcPostgresWrite() throws ClassNotFoundException, SQLException {
// 01、注册驱动
Class.forName("org.postgresql.Driver");
// 02、获取连接,数据库连接URL,格式为:jdbc:postgresql://主机名:端口/数据库名
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/mydb1", "liyongjie",
"liyongjie");
// 关闭自动提交
conn.setAutoCommit(false);
// 03、定义Sql
String sql = "insert into schema1.student_t(stu_id,stu_name,stu_sex,stu_age) values(" + "2" + "," + "'王五'" + ","
+ "'男'" + "," + "20" + ")";
// 04、获取执行者对象
Statement stat = conn.createStatement();
// 05、执行Sql并获取影响行数
int count = stat.executeUpdate(sql);
// 06、判断执行结果
if (count > 0) {
System.out.println("插入数据成功");
}
// 提交事务
conn.commit();
// 回滚事务
// conn.rollback();
// 07、关闭资源
stat.close();
conn.close();
}
/*
* 通过JDBC连接oracle数据 实现数据读写操作
*/
public static void jdbcOracleSelect() throws ClassNotFoundException, SQLException {
// 01、注册驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
// 02、获取连接,数据库连接URL,格式为:jdbc:oracle:thin://主机名:端口:数据库名
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:LYJDB", "liyongjie",
"liyongjie");
// 03、定义Sql
String sql = "SELECT * FROM student_t";
// 04、获取执行者对象
// 在 Oracle JDBC 驱动中,如果没有指定使用可滚动的 ResultSet,那么默认创建的 ResultSet 是不支持滚动的。
Statement stat = (Statement) conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
// 05、执行Sql并获取结果
ResultSet rs = stat.executeQuery(sql);
rs.last();// 定位到最后一行
int totalRows = rs.getRow();
System.out.println("一共有:" + totalRows + "行");
rs.beforeFirst();// 定位到第一行前
// 06、处理返回结果
while (rs.next()) {
System.out.println(rs.getInt("stu_id") + "\t" + rs.getString("stu_name"));
}
// 07、关闭资源
rs.close();
stat.close();
conn.close();
}
/*
* 通过JDBC连接Oracle数据 实现数据读写操作
*/
public static void jdbcOracleWrite() throws ClassNotFoundException, SQLException {
// 01、注册驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
// 02、获取连接,数据库连接URL,格式为:jdbc:oracle:thin://主机名:端口:数据库名
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:LYJDB", "liyongjie",
"liyongjie");
// 关闭自动提交
conn.setAutoCommit(false);
// 03、定义Sql
String sql = "insert into student_t(stu_id,stu_name,stu_sex,stu_age) values(" + "1" + "," + "'王五'" + "," + "'男'"
+ "," + "20" + ")";
// 04、获取执行者对象
Statement stat = conn.createStatement();
int count = stat.executeUpdate(sql);
// 06、判断执行结果
if (count > 0) {
System.out.println("插入数据成功");
}
// 提交事务
conn.commit();
// 回滚事务
// conn.rollback();
// 07、关闭资源
stat.close();
conn.close();
}
}