创建一个JDBC链接数据库的程序
学习Java,数据库编程是必不可少的基本功,下面将详细的讲解创建一个数据库程序的各个细节。
要想顺利编写数据库程序,需要先安装数据库服务并且进行相关配置,这部分的详细介绍参看文章:
http://blog.csdn.net/xiaolangfanhua/article/details/52477547
创建一个JDBC链接数据库的程序,包含7个步骤:
1、加载JDBC驱动程序:
2、提供JDBC连接的URL
3、创建数据库的连接
4、创建一个Statement
5、执行SQL语句
6、处理结果
7、关闭JDBC对象
具体操作步骤如下代码所示:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQLTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 1、加载JDBC驱动程序:
//在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。
try{
// 加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e)
{
System.out.println("找不到驱动程序类,加载驱动失败!");
e.printStackTrace();
}
// 成功加载后,会将Driver类的实例注册到DriverManager类中
// 2、提供JDBC连接的URL
/*
* 连接URL提供了连接数据库时的协议,子协议,数据源标识。
* 书写形式:协议:子协议:数据源标识
* 协议:在JDBC中总是以jdbc开始
* 子协议:是连接的驱动程序或者是数据库管理系统名称
* 数据源标识:标记找到数据库来源的地址与连接端口。
* 例如 MySql的连接URL
* url="jdbc:mysql://localhost/数据库名? user=用户名&password=密码"
*/
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String url=null;
String user=null;
String password=null;
String sql=null;
url="jdbc:mysql://localhost/world? user=root&password=yingwendandan";
// 3、创建数据库连接
/*
* 要连接数据库,需要向java.sql.DriverManager 请求并获得Connection对象
* 该对象就代表一个数据库的连接。
* 使用DriverManager的getConnection(String url, String userName, String password) 方法
* 传入指定的欲连接的数据库的路径,数据库的用户名和密码来获得。
*/
try{
user="root";
password="yingwendandan";
conn=DriverManager.getConnection(url,user,password);
}catch(SQLException e){
System.out.println("数据库链接错误");
e.printStackTrace();
}
// 4、创建一个Statement
/*
* 要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下三种类型:
* a、执行静态SQL语句,通常通过Statement实例实现
* b、执行动态SQL语句,通常通过PreparedStatement 实例实现
* c、执行数据库存储过程,通常通过CallableStatement 实例实现
* 具体的实现方式如下:
* Statement stmt=con.createStatement();
* PreparedStatement pstmt=con.prepareStatement(sql);
* CallableStatement cstmt=con.prepareCall("{CALL demoSp(?,?)}");
*/
try{
stmt=conn.createStatement();
}catch(SQLException e){
System.out.println("创建Statement失败");
e.printStackTrace();
}
// 5、执行SQL语句
/*
* Statement接口提供了三种执行SQL语句的方法:executeQuery, executeUpdate, execute;
* 1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet) 对象
* 2、int executeUpdate(String sqlString):用于执行 INSERT,UPDATE 或DELETE语句以及SQL DDL语句,如
* CREATE TABLE 和 DROP TABLE 等
* 3、 execute(sqlString):用于执行返回多个 结果集,多个更新计数或者二者组合的语句
* 具体实现代码如下:
* ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
* int rows = stmt.executeUpdate("INSERT INTO ...") ;
* boolean flag = stmt.execute(String sql) ;
*/
// 6、处理结果
/*
* 两种情况:
* 1、执行更新返回的是本次操作影响到的记录数。
* 2、执行查询返回的结果是一个ResultSet对象。
* • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 行中数据的访问。
* • 使用结果集(ResultSet)对象的访问方法获取数据:
*/
try{
sql="select * from city";
rs=stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getInt("ID")+" ");
System.out.println(rs.getString("Name")+" ");
System.out.println(rs.getString("CountryCode"));
}
}catch(SQLException e){
System.out.println("数据操作错误");
e.printStackTrace();
}
// 7、关闭JDBC对象
/*
* 操作完成以后要把所有使用过的JDBC对象全部关闭,以释放JDBC资源,关闭顺序和声明顺序相反。
* a、关闭记录集
* b、关闭声明
* c、关闭连接对象
*/
try{
if(rs!=null){ // 关闭记录集
rs.close();
rs=null;
}
if(stmt!=null) // 关闭声明
{
stmt.close();
stmt=null;
}
if(conn!=null){ // 关闭连接对象
conn.close();
conn=null;
}
}catch(Exception e){
System.out.println("数据关闭错误");
e.printStackTrace();
}
}
}