JDBC介绍及使用

目录

JDBC介绍

常用API介绍

JDBC使用

JDBC处理事务


JDBC介绍

JDBC(Java Data Base Connection),Java中提供的一套操作数据库的API接口,用于Java语言连接操作数据库

常用API介绍

DriverManager:驱动管理类,管理一系列数据库驱动程序,用于建立和数据库的连接

Connection:该接口具有接触数据库所有的方法,表示和数据库通信的上下文对象

Connection接口:数据库连接的对象

获取Statement对象:

PreparedStatement prepareStatement(String sql) :获取PreparedStatement对象

Statement createStatement() :获取Statement对象

CallableStatement prepareCall(String sql) :获取CallableStatement对象

Statement:该对象将SQL提交的数据库

boolean execute(String sql):提交SQL语句 返回Boolean类型 可以提交变更操作(插入、删除、修改)

int executeUpdate(String sql) :提交执行DML语言,返回结果表示影响数据库数据行数

ResultSet executeQuery(String sql):执行查询操作,返回的结果在ResultSet中

ResultSet:SQL查询语句的结果集通过resultSet返回给用户

SQLException:和数据库交互中的任何错误

JDBC使用

jdbc连接数据库编程的步骤

  1. 引入myql-connector-java依赖包
  2. 引入MySQL驱动
  3. DriverManager连接数据库获取Connection对象
  4. 通过Connection获取Statement对象进行SQL操作
  5. 如果是查询操作处理结果集:ResultSet
  6. 关闭资源

通过maven引入依赖包myql-connector-java

version (版本)根据选择mysql版本(在mysql启动时,就有mysql版本)选择,如果mysql是5.····的版本,以下依赖就可,如果是8.···就要选择8开头的依赖。

    <!--MySQL的驱动依赖-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.39</version>
    </dependency>

代码引入MySQL驱动

//1、加载数据库驱动  MySQL-> com.mysql.jdbc.Driver
            Class.forName("com.mysql.jdbc.Driver");

DriverManager连接数据库获取Connection对象

Connection connection = DriverManager.getConnection
                    ("jdbc:mysql://127.0.0.1:3306/java_test",
                            "root", "passwd");
Connection getConnection(String url, String user, String password)
参数介绍:
url:jdbc:mysql://127.0.0.1:3306/java_test  127.0.0.1被默认配置为localhostIP地址。                3306为mysql端口,java_test为数据库库名
user:用户名
password:数据库自己设置的密码

 通过Connection获取Statement对象进行SQL操作

// 获取Statement结果
Statement statement = connection.createStatement();

//修改表中数据
String sql1 = "update test1 set B = 'b2' where A = 'a2'";
int i = statement.executeUpdate(sql1);
System.out.println(i);

如果是查询操作处理结果集:ResultSet

//查询操作
String sql = "select * from test1";

//ResultSet处理结果集
ResultSet resultSet = statement.executeQuery(sql);

//getString(属性名,拿到表中的一列数据)
while (resultSet.next()){
    String s = resultSet.getString("A");
    System.out.print(s+" ");
}

 关闭资源

connection.close();
statement.close();
resultSet.close();

完成一系列操作的完整代码

public class test1 {
    public static void main(String[] args) {
        try {
            //1、加载数据库驱动  MySQL-> com.mysql.jdbc.Driver
            Class.forName("com.mysql.jdbc.Driver");
            Connection connection = DriverManager.getConnection
                    ("jdbc:mysql://127.0.0.1:3306/java_test",
                            "root", "2005829");
            System.out.println("连接成功");

            // 获取Statement结果
            Statement statement = connection.createStatement();
            String sql = "select * from test1";

            String sql1 = "update test1 set B = 'b2' where A = 'a2'";
            int i = statement.executeUpdate(sql1);
            System.out.println(i);


            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()){
                String s = resultSet.getString("A");
                System.out.print(s+" ");
            }
            connection.close();
            statement.close();
            resultSet.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

JDBC处理事务

将事务修改为手动提交

connection.setAutoCommit(false);  //true 自动提交  false 手动提交

事务提交

connection.commit(); 

事务回滚

connection.rollback(); // 事务回滚

完整步骤:

将事务设置为手动提交后,SQL操作,写完后进行事务提交,若出现问题,则进行事务回滚。引入MySQL驱动和连接数据库产生statement对象等操作和以上一样。

try {
    connection.setAutoCommit(false);
    sql操作
    connection.commit();
}  catch (Exception e){
    connection.rollback();
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值