java通过JDBC连接mysql、postgres、oracle数据库实现读写数据

7 篇文章 0 订阅
1 篇文章 0 订阅

通过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();
	}

	

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值