实现第一个JDBC程序
1.搭建数据库环境
在MySQL中创建一个名称为jdbc的数据库,然后在该数据库中创建一个users表,创建
数据库和表的SQL语句如下所示。
CREATE DATABASE jdbc;
USE jdbc;
CREATE TABLE users(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(40),
password VARCHAR(40),
email VARCHAR(60),
birthday DATE
)CHARACTER SET utf8 COLLATE utf8_general_ci
数据库和表创建成功后,再向users表中插入3条数据
INSERT INTO users (NAME, PASSWORD, email, birthday)
VALUES('zs', '123456','zs@sina.com','1980-12-04');
INSERT INTO users (NAME, PASSWORD, email,birthday)
VALUES('lisi','123456','lisi0sina.com','1981-12-04');
INSERT INTO users (NAME, PASSWORD, email,birthday)
VALUES('wangwu','123456','wangwu@sina.com','1979-12-04');
为了查看数据是否添加成功,使用SELECT语句查询users表中的数据,执行结果如图
2.创建项目环境,导入数据库驱动
在Eclipse中新建一个名称为chapter09的Web项目,将MySQL的数据库驱动文件mysql-connector-java-5.1.13-bin.jar复制到项目的lib目录中,并发布到类路径下(MysQL驱动文件可以在其官网地址:http://dev.mysql.com/downloads/connector/j/页面中下载,在浏览器中输入该地址后即可进入下载页面,单击页面Generally Available(GA)Releases窗口中的Looking for previous GA versions 超链接后,在显示出的下拉框中下载所需的驱动版本即可)。
3.编写JDBC程序
在项目chapter09的src目录下,新建一个名称为rabbit.jdbc.example的包,在该包中创建类Example01,该类用于读取数据库中的users表,并将结果输出到控制台
ackage rabbit.jdbc.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
public class Example01 {
public static void main(String[] args) throws SQLException{
Statement stmt=null;
ResultSet rs = null;
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/jdbc";
String username = "root";
String password = "123456";
conn = DriverManager.getConnection(url,username,password);
stmt = conn.createStatement();
String sql = "select * from users";
rs= stmt.executeQuery(sql);
System.out.println("id\t |name |password\t |email\t |birthday");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String psw = rs.getString("password");
String email = rs.getString("email");
Date birthday =rs.getDate("birthday");
System.out.println(id + "\t |" + name + "\t |"+ psw + "\t |" + email +"\t |" +birthday);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if(stmt!=null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null;
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
}
}
}
首先注册了MySQL数据库驱动,通过DriverManager获取一个Connection对象,然后使用Connection对象创建一个Statement对象,Statement对象通过executeQuery()方法执行SQL语句,并返回结果集ResultSet。接下来,通过遍历ResultSet得到最终的查询结果,最后关闭连接,回收了数据库资源。程序执行成功后,控制台的打印结果如图
在chapter09项目的rabbit.jdbc.example包中创建一个名称为Example02的类,在该类中使用PreparedStatement对象对数据库进行插入数据的操作
package rabbit.jdbc.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Example02 {
public static void main(String[] args) throws SQLException{
Connection conn = null;
PreparedStatement preStmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/jdbc";
String username =