Fork me on GitHub

Java连接数据库的基本操作

Java连接数据库的基本操作

  1. 如何对数据库进行连接
  2. DriverManager的使用
    • 注册驱动
    • 获取数据库的连接
  3. Connection的使用
    • 获取执行SQL的对象
    • 管理事务
  4. Statement的使用
    • 执行SQL语句

    • executeUpdate() 执行DML、DDL语句,返回值为int的整型

      ①DML语句影响的行数(当返回值为0时说明sql语句可能出现编写错误或其他原因)

      ②DDL语句执行后,执行成功也可能返回0

    • executeQuery(sql) 执行DQL数据查询语句,返回值为ResultSet结果集对象


一、连接数据库

首先需要一个关于数据库的接口导入到项目中,这里我用的是 mysql-connector-java-5.1.49.jar

其次需要编写Java代码来对数据库进行连接

	String url = "jdbc:mysql://127.0.0.1:3306/JavaWeb";
        String user = "root";
        String password = "123456";
        Connection connection = DriverManager.getConnection(url, user, password);
二、编写SQL语句内容,并执行

这里用到了connection.createStatement()方法先获取执行SQL的对象Statement,后进行事务的处理,防止在执行sql语句中出现异常而丢失或者数据错误的情况

     try{
         开启事务(false代表手动开启)——connection.setAutoCommit(false);
         sql执行语句
         提交事务——connection.commit();
     }catch (Exception e) {
         事务回滚——connection.rollback();
          e.printStackTrace();
三、最后需要释放掉相对应的内存资源
	stmt.close();
        connection.close();

代码如下:

package Bean;

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

/**
 * 明白事务回滚使用方法
 * 如果sql执行语句出错,可不会改变数据库中的数据
 * try{
 * 开启事务(false代表手动开启)——connection.setAutoCommit(false);
 * sql执行语句
 * 提交事务——connection.commit();
 * }catch (Exception e) {
 * 事务回滚——connection.rollback();
 * e.printStackTrace();
 */
public class jdbcOne1 {
    public static void main(String[] args) throws Exception {
        /*
        1、注册驱动
        jdbc5.7版本后可省略这一句
         */
        Class.forName("com.mysql.jdbc.Driver");

        /*
        2、获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/JavaWeb";
        也可以写成String url = "jdbc:mysql:///JavaWeb";
        如果想要下方输出不显示安全提示也可以这样写
        String url = "jdbc:mysql:///JavaWeb?useSSL=false";
         */
        String url = "jdbc:mysql://127.0.0.1:3306/JavaWeb";
        String user = "root";
        String password = "123456";
        Connection connection = DriverManager.getConnection(url, user, password);

        //3、定义sql语句
        String sql1 = "update student set 年龄=18  where 学号=1";
        String sql2 = "update student set 年龄=12  where 学号=2";

        //4、获取执行sql的对象Statement
        Statement stmt = connection.createStatement();

        try {
            //开启事务(false代表手动开启)
            connection.setAutoCommit(false);

            //5、执行sql语句,返回结果为执行后的完成的条数
            int count1 = stmt.executeUpdate(sql1);
            //6、处理结果
            System.out.println(count1);

            //报错代码,测试是否有回滚效果
            int num = 3 / 0;

            //执行sql语句,返回结果为执行后的完成的条数
            int count2 = stmt.executeUpdate(sql2);

            //处理结果
            System.out.println(count2);

            //提交事务
            connection.commit();

        } catch (Exception e) {
            //事务回滚
            connection.rollback();
            System.out.println("信息已复原");
            e.printStackTrace();
        }

        //6、释放资源
        stmt.close();
        connection.close();
    }

}

posted @ 2022-03-26 00:06  嘻瓜沁  阅读(392)  评论(0)    收藏  举报