大家好,今天给大家分享一下JDBC 实现增删改查的实际操作
我们还是使用的Maven的方式, 首先要创建一个干净的Maven webapps项目
看这个就可以了
要导入相关的依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
</dependencies>
这是完整的pom.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>MaDemo01</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>untitled</module>
</modules>
<!-- 定义项目的打包方式-->
<packaging>pom</packaging>
<properties>
<!-- 这是设置jdk的编译版本-->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<file.encoding>UTF-8</file.encoding>
<!-- 设置它支持中文-->
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
</configuration>
</plugin>
</plugins>
</build>
</project>
在这里创建Demo02 这个类
因为我们要在一个java类(就是Demo02)里 写增删改查四个相关的操作
所以我们要用上@Test 这个注解(目的就是让它每一个方法都可以独立的运行
)
这是我们这个类的第一部分
(作用就是添加
一个数据到我们指定的数据库当中)
public class Demo02 {
//做一个增加数据的操作
@Test
public void addtest() throws SQLException {
Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");
Statement stat = conn.createStatement();
// 这个 Statement 是用来处理sql语句
// 我们要将sql 与stat进行绑定
// String sql="";
String sql = "insert into users values (1,'zhangsan','123456','zs@sina.com','1980-12-04')";
stat.execute(sql);
//执行sql语句
conn.close();
//关闭连接
System.out.println("执行完成");
}
把上面的测试类(第一部分)写好之后
大家要在自己的可视化数据库管理工具上创建一下相应的数据库,以及字段
看上次的博客就可以了
(重要的就是字段
)
CREATE DATABASE `jdbcTest` CHARACTER SET utf8 COLLATE utf8_general_ci;
截图
运行一下我们刚刚写的方法
看一下结果
看到数据库里的结果:(这就是我们增删改查当中的
增加数据的操作
)
接下来我们写一下增删改查当中的删除数据的操作`)
这就是删除数据的操作(注意我们还是写在了Demo02这个类
当中)
因为我们在每一个方法中都使用了@Test 这个注解
, 所以它每一个方法的运行都是独立的
@Test
public void deletetest() throws SQLException {
Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");
Statement stat = conn.createStatement();
// 这个 Statement 是用来处理sql语句
// 我们要将sql 与stat进行绑定
// String sql="";
String sql = "delete from users where id=1";
stat.execute(sql);
//执行sql语句
conn.close();
//关闭连接
System.out.println("执行完成");
}
运行时的截图:
看结果:
刷新数据库
我们看见数据库里的数据已经随着刚才deleteTest方法的执行,数据库里的数据已经删除了
接下来我们写一下增删改查当中的改数据的操作
)
这里要注意 更改数据的前提是数据库里有数据
所以我们再执行一下增加数据的操作
看结果:
看数据库里的数据
数据库里已经有数据了
接下来我们来执行更改数据的操作
:
@Test
public void updatetest() throws SQLException {
Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");
Statement stat = conn.createStatement();
// 这个 Statement 是用来处理sql语句
// 我们要将sql 与stat进行绑定
// String sql="";
String sql = "update users set NAME ='李四'where id=1";
stat.execute(sql);
//执行sql语句
conn.close();
//关闭连接
System.out.println("执行完成");
}
运行这个更改数据的方法
看方法执行结果:
看见数据库里的数据已经被更改了
接下来我们写一下增删改查当中的查数据的操作
)
@Test
public void selecttest() throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动
//2、用户信息和url
//useUnicode=true&characterEncoding=utf8&useSSL=true //字符转码
String url = "jdbc:mysql://localhost:3306/jdbctest?useUnicode=true&characterEncoding=utf8&useSSL=true";
String useName = "root";
String password = "123456";// 这是你数据库密码
//3、连接成功,数据库对象 Connection代表数据库
Connection connection = DriverManager.getConnection(url, useName, password);
//4、执行SQL的对象 Statement 执行sql的对象
Statement statement = connection.createStatement();
//5、执行SQL的对象 去 执行 sql,可能存在结果,查看返回结果
//String sql = "select * from users";
String sql = "select * from users";
ResultSet resultSet = statement.executeQuery(sql);
//返回的结果集,结果集中封装了我们全部的查询出来的结果
while(resultSet.next()){
System.out.println("id="+resultSet.getObject("id"));
System.out.println("name="+resultSet.getObject("NAME"));
System.out.println("pwd="+resultSet.getObject("PASSWORD"));
System.out.println("email="+resultSet.getObject("email"));
System.out.println("birth="+resultSet.getObject("birthday"));
}
//6、释放连接
resultSet.close();
statement.close();
connection.close();
}
然后我们运行查数据的方法
看结果(查询数据成功)
这就是jdbc对于数据进行增删改查的全部操作(就是全部代码)
import org.junit.Test;
import java.sql.*;
public class Demo02 {
//做一个增加数据的操作
@Test
public void addtest() throws SQLException {
Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");
Statement stat = conn.createStatement();
// 这个 Statement 是用来处理sql语句
// 我们要将sql 与stat进行绑定
// String sql="";
String sql = "insert into users values (1,'zhangsan','123456','zs@sina.com','1980-12-04')";
stat.execute(sql);
//执行sql语句
conn.close();
//关闭连接
System.out.println("执行完成");
}
@Test
public void updatetest() throws SQLException {
Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");
Statement stat = conn.createStatement();
// 这个 Statement 是用来处理sql语句
// 我们要将sql 与stat进行绑定
// String sql="";
String sql = "update users set NAME ='李四'where id=1";
stat.execute(sql);
//执行sql语句
conn.close();
//关闭连接
System.out.println("执行完成");
}
{
}
@Test
public void deletetest() throws SQLException {
Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/jdbcTest?useUnicode=true&characterEncoding=utf8", "root", "123456");
Statement stat = conn.createStatement();
// 这个 Statement 是用来处理sql语句
// 我们要将sql 与stat进行绑定
// String sql="";
String sql = "delete from users where id=1";
stat.execute(sql);
//执行sql语句
conn.close();
//关闭连接
System.out.println("执行完成");
}
@Test
public void selecttest() throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动
//2、用户信息和url
//useUnicode=true&characterEncoding=utf8&useSSL=true //字符转码
String url = "jdbc:mysql://localhost:3306/jdbctest?useUnicode=true&characterEncoding=utf8&useSSL=true";
String useName = "root";
String password = "123456";// 这是你数据库密码
//3、连接成功,数据库对象 Connection代表数据库
Connection connection = DriverManager.getConnection(url, useName, password);
//4、执行SQL的对象 Statement 执行sql的对象
Statement statement = connection.createStatement();
//5、执行SQL的对象 去 执行 sql,可能存在结果,查看返回结果
//String sql = "select * from users";
String sql = "select * from users";
ResultSet resultSet = statement.executeQuery(sql);
//返回的结果集,结果集中封装了我们全部的查询出来的结果
while(resultSet.next()){
System.out.println("id="+resultSet.getObject("id"));
System.out.println("name="+resultSet.getObject("NAME"));
System.out.println("pwd="+resultSet.getObject("PASSWORD"));
System.out.println("email="+resultSet.getObject("email"));
System.out.println("birth="+resultSet.getObject("birthday"));
}
//6、释放连接
resultSet.close();
statement.close();
connection.close();
}
}
我们做到这里,就做完了,都是还是有几点要提醒
- 我们在
每一个方法当中使用@Test 注解
写了四个方法
2. 在 执行对数据的增删改代码之后,都要刷新数据库表
(一定要注意这个)
- 最后一个方法和前三个不一样
,将结果放到了控制台上
好了,我们JDBC 实现增删改查的实际操作就到这里了,谢谢大家