JDBC访问数据库的具体步骤(MySql + Oracle + SQLServer)

* 感谢DT课堂颜群老师的视频讲解(讲的十分仔细,文末有视频连接)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/*
    一、JDBC访问数据库的具体步骤:
    a、导入驱动,加载具体的驱动类
    b、与数据库创建链接
    c、发送Sql,执行
    d、处理结果集 
    
    二、API(接口、方法、类) 主要功能:
    a、与数据库创建链接
    b、发送Sql语句1
    c、返回处理结果  
    
    三、API的几个操做:
    a、DriverManager: 管理JDBC驱动
    b、Connection   : 链接 
    c、Statement    : 运行 Sql 语句(增删改查)
    d、CallableStatement : 调用数据库中的存储过程 / 存储函数
    e、Result       : 返回结果集
 */
public class JDBPMySqlDemo {
	/*  这些值通常都是不轻易改变的,因此设置为常量
	   
	        不一样的数据库对应的链接字符串不一样,(形式不一样,内容相似-------哪一种类型的数据库、IP地址、端口号、数据库名)
	    Oracle : jdbc:oracle:thin:@localhost:1521:数据库实例名 (你建立的数据库的名字)
	    MySql  : jdbc:mysql://localhost:3306/数据库实例名
	    SQLServer : jdbc:microsoft:sqlserver:localhost:1433;databasename = 数据库实例名
	 
	 
	  
     */
	private static final String URL = "jdbc:mysql://localhost:3306/testdate";
	private static final String USER = "root";
	private static final String PWD = "root";

	public static void update() { // 静态方法要求其内部用到的变量也应该是静态的(因此上述变量也应该设置为静态变量)
		// 由于要进行两次异常处理,因此须要将变量设置成相对于 try..catch..语句的外部变量
		Statement stam = null;         // 会抛出SQLException异常
		Connection connection = null;  // 会抛出ClassNotFoundException异常
		try {
			/* 
			       驱动在每一个数据库各自对应的 jar包中,因此须要先把各个数据库对应的包进行导入
			       
			       驱 动jar:(能够在这个连接中进行查找:https://mvnrepository.com/)
			   		Oracle:ojdbc-x.jar
			   		MySql:mysql-connector-java-x.jar
			   		SqlServer:sqljdbc-x.jar   
			   		
			       导入驱动(不一样的数据库对应的驱动不一样)
			   		Oracle : oracle.jdbc.OracleDriver
			   		MySql  : com.mysql.jdbc.Driver
			   		SqlServer : com.mircrosoft.sqlserver.jdbc.SQLServerDriver
			*/
			
		    // 导入驱动(加载具体的驱动类)
			Class.forName("com.mysql.jdbc.Driver");
			// 链接(经过DriverManager.getConnection(链接字符串,用户名,密码))方法进行链接
			connection = DriverManager.getConnection(URL, USER, PWD);
			// 运行SQL语句(想要运行SQL语句要先建立一个Statement对象,用这个实例对象进行操做)
			stam = connection.createStatement();
			
			// 将sql语句做为字符串进行执行
//			String sql = "delete from student where stuno = 2";
			String sql = "insert into student values(2,'zs',12,'s3')";
            // 经过stam的方法进行执行SQL语句进行更新数据库(返回值是影响的行数 (int) )
			int count = stam.executeUpdate(sql);
			if (count > 0) {
				System.out.println("操做成功!");
			}
		} catch (ClassNotFoundException e) {   // 出现异常时最好一个一个处理(更加安全)
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {     // 不管操做成功与否,咱们都要进行关闭操做(放在Finally一定对执行)
			try {
				// 若是尚未执行到给 stam 变量赋值就已经异常处理了,那么stam仍是 null,就会null.close(),从而出现空指针的问题
				if(stam != null) stam.close();   // 避免出现空指针
				if(connection != null)connection.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void main(String[] args) {
		// 将update() 设置为静态方法,便于调用
		update();
	}

}

若是写的不太清晰,或者有问题,能够留言,本人会认真回答。

颜大佬的视频连接:https://www.bilibili.com/video/av29086718?p=13
相关文章
相关标签/搜索