Skip to content
zhaopuming edited this page Mar 26, 2012 · 13 revisions

什么是JDBC

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的优缺点

Clone this wiki locally