JDBC是Java Database Connectivity的简称,是Java专门用于访问数据库的标准API。它提供了一种标准的访问关系型数据库的方法,可以通过它访问MySQL、Oracle、SQL Server等数据库。Statement是JDBC中用于执行SQL语句的接口,包含了执行SQL查询、更新等操作的方法。
下面是使用Statement修改数据库的完整攻略:
- 加载数据库驱动
使用JDBC访问数据库之前,先要加载数据库驱动程序。比如MySQL的驱动程序是com.mysql.jdbc.Driver。加载驱动程序的代码如下:
Class.forName("com.mysql.jdbc.Driver");
- 连接数据库
在加载驱动程序后,需要建立与数据库的连接。建立连接的代码如下:
String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
其中url是数据库的连接字符串,"jdbc:mysql://"后面是数据库的IP地址、端口号和数据库名,useSSL=false表示不使用SSL连接。user和password分别是数据库用户名和密码。执行getConnection方法后会返回一个Connection对象,表示与数据库的连接。
- 创建Statement对象
创建Statement对象的代码如下:
Statement stmt = conn.createStatement();
- 执行SQL语句
Statement接口提供了多个方法用于执行SQL语句,包括executeUpdate和executeQuery方法。executeUpdate方法用于执行INSERT、UPDATE和DELETE语句,返回修改的记录数。executeQuery方法用于执行SELECT语句,返回查询结果集。例如,以下代码使用executeUpdate方法往表中插入一条记录:
String sql = "INSERT INTO student(name, age, sex) VALUES('张三', 20, '男')";
int n = stmt.executeUpdate(sql);
System.out.println("插入了" + n + "条记录");
而以下代码使用executeUpdate方法删除表中年龄小于18岁的记录:
String sql = "DELETE FROM student WHERE age < 18";
int n = stmt.executeUpdate(sql);
System.out.println("删除了" + n + "条记录");
- 关闭Statement和Connection
在使用完Statement和Connection后,要及时关闭它们以释放资源。关闭的代码如下:
stmt.close();
conn.close();
以上就是使用Statement修改数据库的完整攻略,下面给出两个完整的示例:
示例一:批量插入记录
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
conn.setAutoCommit(false);
for (int i = 1; i <= 1000; i++) {
String sql = "INSERT INTO student(name, age, sex) VALUES('学生" + i + "', " + i + ", '男')";
stmt.addBatch(sql);
}
int[] ns = stmt.executeBatch();
conn.commit();
System.out.println("插入了" + ns.length + "条记录");
stmt.close();
conn.close();
以上代码使用addBatch方法批量插入1000条记录,executeBatch方法一次性执行所有SQL语句,最后使用commit方法提交事务。由于开启了事务,如果有一条插入失败,整个事务都将回滚。
示例二:更新记录
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String sql = "UPDATE student SET age = age + 1 WHERE sex = '女'";
int n = stmt.executeUpdate(sql);
System.out.println("更新了" + n + "条记录");
stmt.close();
conn.close();
以上代码使用executeUpdate方法将所有性别为“女”的学生的年龄加一。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JDBC使用Statement修改数据库 - Python技术站