查询步骤
1.准备连接数据库需要的变量 (库名称,库用户名,库密码) 2.提前写好查询数据库的命令 3.声明一个存参数的list 4.连接数据库(创建连接,准备指令,连接) 5.拿到容器,循环容器拿到内容 6.把内容发给前端
1. 建立数据库连接
需要知道数据库名称,用户名,密码
// 1. 配置连接信息(必须改成你自己的) String url = "jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"; String user = "root"; String password = "你的MySQL密码";2. 提前写好数据库命令(编写 SQL 查询语句)
String sql = "SELECT id,name FROM user";3. 声明一个存参数的list
List<Map<String, Object>> list = new ArrayList<>();4. 连接数据库(预编译SQL=创建 PreparedStatement 对象)
创建数据库连接 接水管 Connection conn = DriverManager.getConnection(url, user, password); // 创建预处理语句(准备一下) PreparedStatement ps = conn.prepareStatement(sql); // 执行查询并获取结果(开水龙头、接水) ResultSet rs = ps.executeQuery()注:rs打印出来是容器,不是数据库具体内容,要内容只能循环。
5. 循环容器拿到内容
while (rs.next()) { Map<String, Object> obj = new HashMap<>(); obj.put("id", rs.getInt("id")); obj.put("name", rs.getString("name")); list.add(obj); } // 打印给前端的数组对象格式 System.out.println("发给前端的数据:"); System.out.println(list);6. 把数据发给前端
等我后面添加,感觉有点麻烦。休息休息
整体代码
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class TestQuery { public static void main(String[] args) { // -------定义连接数据库需要的变量------- String url = "jdbc:mysql://localhost:3306/userlist?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"; String user = "root"; String password = "123456"; // 先从表中,拿到数据 String sql = "SELECT id,name FROM user"; // 【关键】list 必须声明在 try 外面,保证作用域正确 // 1.List 声明这是一个有序列表 // 2.<Map<String, Object>> 定义列表的元素是键值对组合的对象 // 3.这个数组包对象的组合叫做list // 4.new ArrayList<>();创建一个空的、真实可用的列表,里面专门存放你左边规定的那种键值对数据。 // 123部分属于规定,4才是创建 List<Map<String, Object>> list = new ArrayList<>(); try ( // 创建数据库连接 接水管 Connection conn = DriverManager.getConnection(url, user, password); // 创建预处理语句(装水龙头 / 准备指令) PreparedStatement ps = conn.prepareStatement(sql); // 执行查询并获取结果(开水龙头、接水) ResultSet rs = ps.executeQuery() ) { // 打印的rs只是容器,并没有具体内容,要拿到数据库所有内容,只能循环 System.out.println(rs); while (rs.next()) { Map<String, Object> obj = new HashMap<>(); obj.put("id", rs.getInt("id")); obj.put("name", rs.getString("name")); list.add(obj); } // 打印给前端的数组对象格式 System.out.println("发给前端的数据:"); System.out.println(list); } catch (Exception e) { e.printStackTrace(); } } }