1Z0-809复习 第10章 JDBC
JDBC
Introducing Relational Databases and SQL
从java访问数据库的两种方式。
相对于关系型数据库还有一种类型的数据库叫做NoSQL数据库。
存储数据不是用table,而是用某种格式。
Identifying the Structure of a Relational Database
Writing Basic SQL Statements
Introducing the Interfaces of JDBC
各个数据库的jar包里提供了四种interface的实装类。 但在编程的时候不需要指明实装类,只用接口。
Connecting to a Database
Building a JDBC URL
Getting a Database Connection
Obtaining a Statement
Statement stmt = conn.createStatement( ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
Choosing a ResultSet Type
- TYPE_FORWARD_ONLY :只能按照检索的顺序,而后两者可以任何顺序访问。
- TYPE_SCROLL_INSENSITIVE :数据库的值变化,不会会在scroll时即时反应。
- TYPE_SCROLL_SENSITIVE :数据库的值有变化会在scroll时即时反应。
Choosing a ResultSet Concurrency Mode
- CONCUR_READ_ONLY :ResultSet是只读的
- CONCUR_UPDATABLE :可以对ResultSet进行更新操作。
Executing a Statement
boolean isResultSet = stmt.execute(sql); if (isResultSet) { ResultSet rs = stmt.getResultSet(); System.out.println("ran a query"); } else { int result = stmt.getUpdateCount(); System.out.println("ran an update"); }
除了executeQuery和executeUpdate,用execute也可以。
Getting Data from a ResultSet
rs. getInt (1)
index从1开始,而不是从0开始。
Closing Database Resources
public static void main(String[] args) throws SQLException { String url = " jdbc:derby:zoo"; try (Connection conn = DriverManager.getConnection(url); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select name from animal")) { while (rs.next()) System.out.println(rs.getString(1)); } }
try-with-resources的方法来关掉这个resource。