Java连接数据库的基本操作
Java连接数据库的基本操作
-
如何对数据库进行连接
-
DriverManager的使用
- 注册驱动
- 获取数据库的连接
-
Connection的使用
- 获取执行SQL的对象
- 管理事务
-
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();
}
}

浙公网安备 33010602011771号