java如何查询
查询数据库
使用JDBC连接数据库并执行SQL查询。需要加载数据库驱动,建立连接,创建Statement对象,执行查询并处理结果集。
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "user", "pass");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM table");
while(rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println(id + ", " + name);
}
} catch(Exception e) {
e.printStackTrace();
} finally {
try { if(rs != null) rs.close(); } catch(Exception e) {}
try { if(stmt != null) stmt.close(); } catch(Exception e) {}
try { if(conn != null) conn.close(); } catch(Exception e) {}
}
使用PreparedStatement
PreparedStatement可以防止SQL注入,提高性能。参数用问号占位,后续设置具体值。

String sql = "SELECT * FROM users WHERE age > ? AND name LIKE ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 18);
pstmt.setString(2, "%张%");
ResultSet rs = pstmt.executeQuery();
使用JPA/Hibernate查询
JPA提供了更面向对象的方式查询数据。通过EntityManager创建Query对象,使用JPQL语言查询。

EntityManager em = ...;
String jpql = "SELECT u FROM User u WHERE u.age > :age";
Query query = em.createQuery(jpql);
query.setParameter("age", 18);
List<User> users = query.getResultList();
使用Spring Data JPA
Spring Data JPA进一步简化了查询操作。只需定义Repository接口,方法名遵循约定即可自动实现查询。
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByAgeGreaterThan(int age);
List<User> findByNameContaining(String name);
}
使用MyBatis查询
MyBatis通过XML或注解配置SQL映射。创建Mapper接口,定义查询方法。
public interface UserMapper {
@Select("SELECT * FROM users WHERE id = #{id}")
User selectUser(int id);
}






