Java与SqlServer查询返回对象
在Java开发中,经常会遇到需要与数据库进行交互的场景,而SqlServer是常用的关系型数据库之一。本文将介绍如何使用Java与SqlServer进行查询,并将查询结果封装成Java对象返回。
连接SqlServer数据库
在进行数据库操作之前,首先需要建立Java与SqlServer数据库的连接。可以使用Java提供的JDBC(Java Database Connectivity)来实现。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SqlServerConnection {
private static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String DB_URL = "jdbc:sqlserver://localhost:1433;databaseName=testdb";
private static final String USER = "username";
private static final String PASS = "password";
public static Connection getConnection() throws SQLException, ClassNotFoundException {
Class.forName(JDBC_DRIVER);
return DriverManager.getConnection(DB_URL, USER, PASS);
}
}
上述代码中,我们使用了com.microsoft.sqlserver.jdbc.SQLServerDriver
作为SqlServer的JDBC驱动,通过getConnection
方法获取数据库连接。
查询并返回对象
在连接数据库的基础上,我们可以通过执行SQL语句来查询数据,并将查询结果封装成Java对象返回。
假设我们有一个名为User
的表,包含id
、name
和age
字段。我们希望查询出所有年龄大于等于18的用户,并将结果封装成User
对象返回。
首先,我们需要先定义User
类:
public class User {
private int id;
private String name;
private int age;
// 省略构造函数和getter、setter方法
}
然后,我们可以编写查询方法:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
public List<User> getUsersAboveAge(int age) throws SQLException, ClassNotFoundException {
Connection connection = SqlServerConnection.getConnection();
PreparedStatement statement = connection.prepareStatement("SELECT * FROM User WHERE age >= ?");
statement.setInt(1, age);
ResultSet resultSet = statement.executeQuery();
List<User> users = new ArrayList<>();
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int userAge = resultSet.getInt("age");
User user = new User(id, name, userAge);
users.add(user);
}
resultSet.close();
statement.close();
connection.close();
return users;
}
}
上述代码中,我们通过PreparedStatement
对象执行了一条带有占位符的SQL语句,使用setInt
方法设置占位符的值,然后通过executeQuery
方法执行查询,并将结果封装成User
对象。
使用返回的对象
在得到查询结果后,我们可以对返回的对象进行进一步处理。
public class Main {
public static void main(String[] args) {
UserDao userDao = new UserDao();
try {
List<User> users = userDao.getUsersAboveAge(18);
for (User user : users) {
System.out.println("Name: " + user.getName() + ", Age: " + user.getAge());
}
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
上述代码中,我们通过UserDao
的getUsersAboveAge
方法获取所有年龄大于等于18的用户,并遍历打印出用户的姓名和年龄。
结语
通过上述代码示例,我们可以看到,使用Java与SqlServer进行查询并返回对象并不复杂。首先,我们需要建立Java与SqlServer的连接,然后通过PreparedStatement
执行SQL查询语句,将结果封装成Java对象返回,最后我们可以对返回的对象进行处理。
希望本文的介绍能够帮助读者理解如何使用Java与SqlServer进行查询并返回对象。在实际开发中,我们可以根据具体需求扩展和优化代码,以满足更复杂的查询和数据操作。