java通过JDBC连接mysql和postgres数据库实现读写数据
通过JDBC 连接mysql需要JDBC驱动程序包,本例子使用的是:mysql-connector-java-5.1.43-bin.jar
通过JDBC 连接postgres需要JDBC驱动程序包,本例子使用的是:postgresql-42.7.4.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 {// TODO Auto-generated method stub//jdbcMysqlSelect();//jdbcMysqlWrite();jdbcPostgresSelect();jdbcPostgresWrite();}/** 通过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、定义SqlString 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");//03、定义SqlString sql = "insert into student_t(stu_id,stu_name,stu_sex,stu_age) values("+"6" + "," + "'王五'" + "," + "'男'" + "," + "20" + ")";//04、获取执行者对象Statement stat = conn.createStatement();//05、执行Sql并获取结果boolean resultFlag = stat.execute(sql);//06、判断执行结果if(resultFlag){System.out.println("插入数据成功");}//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 = (Connection) DriverManager.getConnection("jdbc:postgresql://localhost:5432/mydb1", "liyongjie", "liyongjie");//03、定义SqlString sql = "SELECT * FROM schema1.student_t";//04、获取执行者对象//在 PostgreSQL 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连接Postgres数据* 实现数据读写操作*/public static void jdbcPostgresWrite() throws ClassNotFoundException,SQLException{//01、注册驱动Class.forName("org.postgresql.Driver");//02、获取连接,数据库连接URL,格式为:jdbc:postgresql://主机名:端口/数据库名Connection conn = (Connection) DriverManager.getConnection("jdbc:postgresql://localhost:5432/mydb1", "liyongjie", "liyongjie");//03、定义SqlString sql = "insert into schema1.student_t(stu_id,stu_name,stu_sex,stu_age) values("+"1" + "," + "'王五'" + "," + "'男'" + "," + "20" + ")";//04、获取执行者对象Statement stat = conn.createStatement();//05、执行Sql并获取结果boolean resultFlag = stat.execute(sql);//06、判断执行结果if(resultFlag){System.out.println("插入数据成功");}//07、关闭资源stat.close();conn.close();}}
