1.在数据库建立表tab_stud,并插入一些测试数据:
CREATE TABLE tab_stud
(
stud_no INT primary key,
stud_name VARCHAR(20) not null,
birthday DATE not null
);
INSERT INTO tab_stud VALUES(1001, 'huey', '2001-01-01');
INSERT INTO tab_stud VALUES(1002, 'sugar', '2002-02-02');
INSERT INTO tab_stud VALUES(1003, 'jing', '2003-03-03');
2.Student实体:
package com.huey.jdbc;
import java.text.DateFormat;
import java.util.Date;
/**
* @version 2013-07-14
* @author huey2672
*
*/
public class Student {
private int number;
private String name;
private Date birthday;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Student() {
}
public Student(int number, String name, Date birthday) {
setNumber(number);
setName(name);
setBirthday(birthday);
}
@Override
public String toString() {
return String.format("No.%d: %s, %s",
number, name,
DateFormat.getDateInstance().format(birthday));
}
}
3.JDBC示例代码:
package com.huey.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
/**
* @version 2013-07-14
* @author huey2672
*
*/
public class TestDB {
public static void main(String[] args) {
Connection conn = null;
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 数据库连接url
String url = "jdbc:mysql://localhost:3306/mydb";
// 获取数据库连接
conn = DriverManager.getConnection(url, "root", "******");
String sql = "SELECT stud_no, stud_name, birthday FROM tab_stud";
// 获取PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 执行查询获取结果集
ResultSet rs = ps.executeQuery();
// 迭代结果集
while (rs.next()) {
int number = rs.getInt("stud_no");
String name = rs.getString("stud_name");
Date birthday = rs.getDate("birthday");
Student student = new Student(number, name, birthday);
System.out.println(student);
}
if (rs != null) {
// 关闭结果集
rs.close();
}
if (ps != null) {
// 关闭PreparedStatement对象
ps.close();
}
if (conn != null) {
// 关闭数据库连接
conn.close();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4.结果输出:
No.1001: huey, 2001-1-1
No.1002: sugar, 2002-2-2
No.1003: jing, 2003-3-3
5.补充:
几种流行的JDBC数据库URL格式:
RDBMS
数据库URL格式
MySQL
jdbc:mysql://hostname:portNumber/databaseName
ORACLE
jdbc:oracle:thin:@hostname:portNumber/databaseName
DB2
jdbc:db2:hostname:portNumber/databaseName
PostgreSQL
jdbc:postgre://hostname:portNumber/databaseName
SQL Server
jdbc:sqlserver://hostname:portNumber;databaseName=databaseName
Sybase
jdbc:sybase:Tds:hostname:portNumber/databaseName