* 感谢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