JDBC流程:
1、注册驱动
2、获取数据库连接对象
3、获取SQL语句的执行者对象
4、执行SQL语句
DML(增删改):executeUpdate
DQL(查询):executeQuery
5、处理结果集
next():该方法判断是否还有元素
有返回true
没有返回false
while(resultSet.next){
}
getXxx:
1、根据列的编号获取 getString(1)
2、根据列名获取getString(“name”)
6、关闭流释放资源

数据的查询

样例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.sql.*;

public class jdbc {
public static void main(String[] args) throws Exception{
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库连接对象
//如果连接是本机,并且端口号是默认的3306,则可直接写成jdbc:mysql:///jdbc
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc?serverTimezone=UTC","root","toor");
//获取SQL语句的执行对象
PreparedStatement pstmt = conn.prepareStatement("select * from tb_user");
//执行SQL语句
ResultSet resultSet = pstmt.executeQuery();
//处理结果集
while(resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String sex = resultSet.getString("sex");
String email = resultSet.getString("email");
Date date = resultSet.getDate("birthday");

System.out.println(id+" "+name+" "+sex+" "+email+" "+date);

}
conn.close();
pstmt.close();
resultSet.close();
}
}

执行效果:

当然有这个效果的前提是你需要先配好数据库,并且往数据库里面插入数据。

数据的增删改查

这里主要进行改变的是SQL的数据库语句,而代码则只需要处理语句的执行和响应结果

样例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.sql.*;

public class jdbc {
public static void main(String[] args) throws Exception{
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库连接对象
//如果连接是本机,并且端口号是默认的3306,则可直接写成jdbc:mysql:///jdbc
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc?serverTimezone=UTC","root","toor");
//获取SQL语句的执行对象
PreparedStatement pstmt = conn.prepareStatement("UPDATE tb_user set name='xiaoming' where id=?");
//问号?占位是为了保证安全性,给占位符进行填充数据
pstmt.setObject(1,"1");//如果未写,会引发异常
//执行SQL语句
int count = pstmt.executeUpdate();

//处理结果集
System.out.println(count+"行收到了影响");//返回受影响行数
conn.close();
pstmt.close();
}
}

执行结果: