Java查询数据库
查询一个
注: next()指向的是下一行是否有数据
private static Connection connection;
public static void queryOne(String sql) throws SQLException {
//1. 获取连接对象
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
//3. 创建一个sql对象
Statement statement = connection.createStatement();
//4.发送sql给mysql服务器执行
ResultSet rs = statement.executeQuery(sql);
//5.输出结果看是否有结果集
if (rs.next()){
String id = rs.getString("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
System.out.println(id+name+sex);
}
if (rs.next()){
String id = rs.getString("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
System.out.println(id+"--"+name+"--"+sex);
}
//6.释放资源
rs.next();
statement.close();
connection.close();
}
结果集进行查询
public static void queryMore(String sql) throws SQLException {
//1. 获取连接对象
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
//3. 创建一个sql对象
Statement statement = connection.createStatement();
//4.发送sql给mysql服务器执行
ResultSet rs = statement.executeQuery(sql);
//5.输出结果看是否有结果集
while (rs.next()){
String id = rs.getString("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
System.out.println(id+"--"+name+"--"+sex);
}
//6.释放资源
rs.next();
statement.close();
connection.close();
}
//测试
public static void main(String[] args) throws SQLException {
// queryOne("select * from t_emps where id='a0001' or id='a0002'");
queryMore("select * from t_emps ");
}
注:需要一个pojo包
package com.frr.utlis;
import com.frr.pojo.Emps;
import java.sql.*;
import java.util.ArrayList;
import java.sql.Date;
public class JdbcUtils {
public static void main(String[] args) throws SQLException {
queryMore("select * from t_emps");
}
public static void queryMore(String sql) throws SQLException {
//1. 获取连接对象
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
//3. 创建一个sql对象
Statement statement = connection.createStatement();
//4.发送sql给mysql服务器执行
ResultSet rs = statement.executeQuery(sql);
ArrayList<Emps> empList = new ArrayList<>();
//5.输出结果看是否有结果集
while (rs.next()){
String id = rs.getString("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
Date birth=rs.getDate("birth");
double salary=rs.getDouble("salary");
int deptId=rs.getInt("deptId");
//一行数据封装在一个对象中
Emps emps= new Emps(id,name,sex, birth,salary,deptId);
//对象依次存入集合
empList.add(emps);
}
// System.out.println(empList);
empList.stream().forEach(System.out::println);
//6.释放资源
rs.next();
statement.close();
connection.close();
}
}
empList.stream().forEach(System.out::println);
通过流依次输出信息并换行
一般使用: empList.stream().forEach(System.out::println);
通用的结果集查询
public static void main(String[] args) throws SQLException {
queryMore2("select * from t_emps ");
}
private static void queryMore2(String sql) throws SQLException {
//1. 获取连接对象
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
//3. 创建一个sql对象
Statement statement = connection.createStatement();
//4.发送sql给mysql服务器执行
ResultSet rs = statement.executeQuery(sql);
ResultSetMetaData md = rs.getMetaData();
int count = md.getColumnCount();
while (rs.next()){
for (int i = 1; i <count ; i++) {
Object value = rs.getObject(i);
System.out.print(value+"\t");
}
System.out.println();
}
//关闭资源
rs.close();
statement.close();
connection.close();
}