但为了N年后改行了,又想拿回这些技术,所以还是有必要做个简单的例子的。
所有的JDBC应用程序都具有下面的基本流程:
(1)加载驱动类
(2)建立到数据库的连接
(3)创建语句对象(Statement或PreparedStatment)
(4)利用语句对象执行SQL语句得到结果
(5)处理结果
(6)关闭结果集、从数据库断开连接
例子一:
package ccp330.jdbc.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestOne {
public static void main(String[] args) {
// 在此之前应该加入驱动包到项目里
// 定义数据库驱动程序串
String DBdriver = "com.mysql.jdbc.Driver";
// 定义数据库的连接IP地址、端口以及数据库名
String DBip = "127.0.0.1";
String DBport = "3300";
String DBname = "mysql";
// 定义数据库连接地址
String DBurl = "jdbc:mysql://" + DBip + ":" + DBport + "/" + DBname;
// 数据库用户名和密码
String user = "root";
String password = "";
// 定义数据库连接对象
Connection conn = null;
// 定义语句对象,用于操作数据库
Statement stmt = null;
// 定义接收的结果集
ResultSet rs = null;
// 定义要执行的SQL语句
String sql_createTable = null;
String sql_insert1 = null;
String sql_insert2 = null;
String sql_insert3 = null;
String sql_select = null;
String sql_drop = null;
try {
// 加载驱动程序
Class.forName(DBdriver);
// 连接数据库
conn = DriverManager.getConnection(DBurl, user, password);
// 通过Connection对象实例化Statement对象
stmt = conn.createStatement();
// 给SQL语句赋值
sql_createTable = "create table admin(name varchar(25), password varchar(25))";
sql_insert1 = "insert into admin(name, password) values('ccp330','ccp330')";
sql_insert2 = "insert into admin(name, password) values('古城','古城')";
sql_insert3 = "insert into admin(name, password) values('123','123')";
sql_select = "select * from admin";
sql_drop = "drop table admin";
// 进行SQL语句中的建表和插入语句
stmt.execute("drop table if exists admin");
stmt.execute(sql_createTable);
stmt.executeUpdate(sql_insert1);
stmt.executeUpdate(sql_insert2);
stmt.executeUpdate(sql_insert3);
// 用ResultSet来接收查询到的结果集
rs = stmt.executeQuery(sql_select);
while (rs.next()) {
System.out.println("name : " + rs.getString(1)
+ " password : " + rs.getString(2));
}
stmt.execute(sql_drop);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if( stmt != null) {
stmt.close();
}
if( conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}