我们这边讲的更新是指数据库里面的数据有变化,那么怎么样属于有变化呢?就是有增加、修改、删除。Java 语言对数据库操作需要借住于 Statement 类。
它有 Connection 连接类创建。通过 Statement 里面的方法,可以对数据库进行简单的操作。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class MysqlTest {
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/haicoder";
public static final String DBUSER = "root";
public static final String PASSWORD = "123456";
public static void main(String[] args) throws Exception {
System.out.println("嗨客网(www.haicoder.net)");
Connection connection = null;
//加载驱动
Class.forName(DBDRIVER);
//创建连接
connection = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);
//创建 statement 对象
Statement statement = connection.createStatement();
String sql = "insert into person (username,age) values (\"嗨客网\",100)";
//执行sql
statement.execute(sql);
//关闭操作
statement.close();
//关闭数据库连接
connection.close();
System.out.println("结束");
}
}
运行结果如下:
执行完代码之后,我们可以查询数据库,看到里面添加了一条记录。和我们在 mysql 客户端写 sql 执行效果一样。
我们看到代码里面有两个关闭,一个是操作关闭,一个是连接关闭。一般的情况下,只要连接关闭,其他的所有操作都会关闭,但是 JDBC 代码里面有一个习惯,就是按照顺序关闭,先打开后关闭。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class MysqlTest {
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/haicoder";
public static final String DBUSER = "root";
public static final String PASSWORD = "123456";
public static void main(String[] args) throws Exception {
System.out.println("嗨客网(www.haicoder.net)");
Connection connection = null;
//加载驱动
Class.forName(DBDRIVER);
//创建连接
connection = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);
//创建 statement 对象
Statement statement = connection.createStatement();
String sql = "update person set age = 200 where username = '嗨客网'";
//执行sql
statement.execute(sql);
//关闭操作
statement.close();
//关闭数据库连接
connection.close();
System.out.println("结束");
}
}
运行结果如下:
和 insert 语句一样,就是 sql 语句变化了。sql 语句和我们在 mysql 客户端操作的 sql 一样。
通过前两个例子,我们就可以知道,其实基本上代码都一样,就一个 sql 语句不同。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class MysqlTest {
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://localhost:3306/haicoder";
public static final String DBUSER = "root";
public static final String PASSWORD = "123456";
public static void main(String[] args) throws Exception {
System.out.println("嗨客网(www.haicoder.net)");
Connection connection = null;
//加载驱动
Class.forName(DBDRIVER);
//创建连接
connection = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);
//创建 statement 对象
Statement statement = connection.createStatement();
String sql = "delete from person where username = '嗨客网'";
//执行sql
statement.execute(sql);
//关闭操作
statement.close();
//关闭数据库连接
connection.close();
System.out.println("结束");
}
}
运行结果如下
和我们猜想的一样,我们看到数据库里面的数据被删掉了。
通过上面的例子我们看到,大多数代码都是一样的,就只有 sql 语句不同。我们需要记住数据库操作的几个步骤:加载驱动,打开链接,进行操作和关闭连接。
这个是万年不变的,缺少任意一步系统将会出现问题,甚至不能对数据库进行操作。