如何用java实现查询
使用Java实现查询功能
在Java中实现查询功能通常涉及数据库操作或集合数据的筛选。以下是几种常见场景的实现方法。
数据库查询(JDBC)
通过JDBC连接数据库并执行SQL查询语句:
import java.sql.*;
public class DatabaseQuery {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydb";
String username = "root";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement()) {
String sql = "SELECT * FROM users WHERE age > 18";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id") +
", Name: " + rs.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
使用JPA/Hibernate查询
对于ORM框架,可以使用JPQL或Criteria API:
@Entity
@Table(name = "users")
public class User {
@Id
private int id;
private String name;
private int age;
// getters/setters
}
// 查询示例
EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPersistenceUnit");
EntityManager em = emf.createEntityManager();
TypedQuery<User> query = em.createQuery(
"SELECT u FROM User u WHERE u.age > :age", User.class);
query.setParameter("age", 18);
List<User> users = query.getResultList();
集合数据查询(Java Stream API)
对内存中的集合数据进行查询筛选:
List<User> userList = Arrays.asList(
new User(1, "Alice", 20),
new User(2, "Bob", 17)
);
List<User> adults = userList.stream()
.filter(u -> u.getAge() > 18)
.collect(Collectors.toList());
使用Spring Data JPA
在Spring Boot项目中简化查询:
public interface UserRepository extends JpaRepository<User, Integer> {
List<User> findByAgeGreaterThan(int age);
@Query("SELECT u FROM User u WHERE u.name LIKE %:name%")
List<User> searchByName(@Param("name") String name);
}
使用MyBatis
通过XML或注解方式实现SQL映射:

public interface UserMapper {
@Select("SELECT * FROM users WHERE age > #{age}")
List<User> selectUsersOlderThan(int age);
}
每种方法适用于不同场景,数据库查询适合持久化数据操作,Stream API适合内存数据处理,而JPA/MyBatis等框架提供了更高级的抽象。选择取决于项目架构和具体需求。






