Java基础(十):初识SQL数据库


前言

在Java开发中,数据库SQL是必不可少的一部分。本篇博客将介绍Java数据库SQL的一些基本知识,包括如何连接数据库、执行SQL语句、事务处理等内容。


一、连接数据库

在Java中,连接数据库通常使用JDBC(Java Database Connectivity)技术。JDBC是Java语言中用来规范客户端程序如何访问数据库的API,它提供了一套标准的接口,允许开发者通过Java程序来访问数据库。
在使用JDBC连接数据库之前,需要先下载并安装相应的数据库驱动。以MySQL为例,可以在MySQL官网上下载相应的JDBC驱动,并将其加入到项目的classpath中。

// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);

在建立连接时,需要提供数据库的URL、用户名和密码。其中URL的格式为`jdbc:mysql://主机地址:端口号/数据库名``。

连接数据库知识点总结

(1)JDBC是Java语言中用来规范客户端程序如何访问数据库的API

(2)下载并安装相应的数据库驱动,并将其加入到项目的classpath中

(3)使用Class.forName()方法加载驱动,并使用DriverManager.getConnection()方法建立连接

(4)连接时需要提供数据库的URL、用户名和密码

二、执行SQL语句

连接成功后,就可以执行SQL语句了。JDBC提供了Statement、PreparedStatement和CallableStatement三种类型的Statement对象可以用来执行SQL语句。

1.Statement

Statement是最基本的一种Statement对象,它用于执行静态SQL语句,例如SELECT、INSERT、UPDATE和DELETE等操作。

Statement stmt = conn.createStatement();
String sql = "SELECT * FROM user";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
    System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));
}```

## 2.PreparedStatement
PreparedStatement是预编译的Statement对象,它可以提高执行SQL语句的效率,并且可以避免SQL注入攻击。

```java
String sql = "INSERT INTO user(name, age) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.setInt(2, 18);
int result = pstmt.executeUpdate();
if (result > 0) {
    System.out.println("插入成功");
}

3.CallableStatement

CallableStatement用于调用存储过程或函数。

String sql = "{call add(?, ?, ?)}";
CallableStatement cstmt = conn.prepareCall(sql);
cstmt.setInt(1, 1);
cstmt.setInt(2, 2);
cstmt.registerOutParameter(3, Types.INTEGER);
cstmt.execute();
int result = cstmt.getInt(3);
System.out.println("1 + 2 = " + result);

执行SQL语句知识点总结

(1)JDBC提供了Statement、PreparedStatement和CallableStatement三种类型的Statement对象可以用来执行SQL语句

(2)Statement是最基本的一种Statement对象,用于执行静态SQL语句

(3)PreparedStatement是预编译的Statement对象,可以提高执行SQL语句的效率,并且可以避免SQL注入攻击

(4)CallableStatement用于调用存储过程或函数

三、事务处理

事务是一个操作序列,这些操作要么全部成功执行,要么全部回滚。在Java中,可以使用Connection的transaction相关方法来处理事务。

conn.setAutoCommit(false); // 关闭自动提交
try {
    // 执行一些SQL语句
    stmt1.executeUpdate();
    stmt2.executeUpdate();
    stmt3.executeUpdate();
    conn.commit(); // 提交事务
} catch (SQLException e) {
    e.printStackTrace();
    conn.rollback(); // 回滚事务
}

事务处理知识点总结

(1)事务是一个操作序列,这些操作要么全部成功执行,要么全部回滚

(2)可以使用Connection的transaction相关方法来处理事务

(3)setAutoCommit(false)方法关闭自动提交

(4)在try-catch块中执行一些SQL语句,若出现异常则回滚事务,否则提交事务
总之,Java数据库SQL是必不可少的一部分,在开发过程中需要掌握相关的基础知识。在实际应用中,需要根据具体情况选择适合的方式来处理数据库操作。


四、总结

本篇博客介绍了Java数据库SQL的一些基本知识,包括连接数据库、执行SQL语句和事务处理等内容。在实际开发中,需要根据具体情况选择适合的方式来处理数据库操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值