-
Notifications
You must be signed in to change notification settings - Fork 1
JDBC
zhaopuming edited this page Mar 26, 2012
·
13 revisions
JDBC: Java DataBase Connectivity
JDBC是 Java对SQL数据库的连接驱动程序,是所有其他数据库查询库的基础。
Hibernate, MyBatis等查询库,都是对JDBC的封装,最后查询时底层都是调用JDBC的
##. 用JDBC查询
public class PlayerDAO {
public static class Player {
private int id;
private String name;
private int teamId;
private int number;
private int height;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getTeamId() {
return teamId;
}
public void setTeamId(int teamId) {
this.teamId = teamId;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
@Override
public String toString() {
return "Player [id=" + id + ", name=" + name + ", teamId=" + teamId
+ ", number=" + number + ", height=" + height + "]";
}
}
public List<Player> findTallerPlayers() throws SQLException {
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/nba", "root", "");
PreparedStatement stmt = con.prepareStatement(
" SELECT p.*"
+ " from player as p, team as t "
+ " where p.teamId = t.id "
+ " and p.height >= ?"
+ " and t.name like ?");
stmt.setInt(1, 198);
stmt.setString(2, "%Lakers");
ResultSet rs = stmt.executeQuery();
List<Player> players = new ArrayList<Player>();
while (rs.next()) {
Player p = new Player();
int id = rs.getInt("id");
String name = rs.getString("name");
int number = rs.getInt("number");
int height = rs.getInt("height");
int teamId = rs.getInt("teamId");
p.setId(id);
p.setName(name);
p.setNumber(number);
p.setHeight(height);
p.setTeamId(teamId);
players.add(p);
}
return players;
}
public static void main(String[] args) throws SQLException {
PlayerDAO dao = new PlayerDAO();
for (Player p : dao.findTallerPlayers()) {
System.out.println(p);
}
}
}
##. JDBC的优缺点