您的位置:首页 > 编程语言

JDBC基础编程

2016-08-12 21:49 465 查看
今天学习JDBC的基础编程,主要是弄清楚JDBC的基础内容,以及如何用Java操作mysql

JDBC(Java  Data  Base  Connectivity)是一种Java为了和数据库连接而提供的支持sql的接口,说白了就是Java中可以和数据库连接并且操作数据库的API,

这样就可以在Java中使用sql语句,实现数据库的增删改查。

1.Java中实现JDBC的抽象接口

JDBC通过Java中接口实现了三个基本功能:建立数据库连接、执行sql语句和执行处理结果,现在介绍Java中sql包中的抽象接口

Java.sql.DriverManager:管理驱动器,支持驱动程序和数据库连接的创建。

java.sql.Connection:代表与某一数据库的连接。

java.sql.Statement:在连接中执行静态sql声明并且取得结果

java.sql.ResultSet:代表sql执行后的结果集。

2.JDBC编程

创建一个连接数据库的程序需要以下几步:

(1)加载JDBC驱动程序:

在连接数据库之前要先加载JDBC的驱动程序,可以通过Class.forName("com.mysql.jdbc.Driver")来加载:

try{

Class.forName("com.mysql.jdbc.Driver");

}

catch(ClassNotFoundException e){

System.out.println("找不到驱动程序类,加载驱动失败");

e.printStackTrace();

}

(2)提供JDBC连接的URL,用户名以及密码

URL书写形式:协议:子协议:数据源标识

以mysql为例:jdbc:mysql://localhost:3306/Students

(3)创建数据库连接

要连接数据库就要java.sql.DriverManager请求并获得Connection对象,该对象代表一个数据库连接

使用DriverManager(String  URL,String  name,String  password)连接,以mysql为例:

String  URL  =  “jdbc:mysql://localhost:3306/students”;

String  name  =  "root";

String  pass  =  "root";

try{   

    Connection con =    

             DriverManager.getConnection(URL, name , pass ) ;   

     }catch(SQLException se){   

    System.out.println("数据库连接失败!");   

    se.printStackTrace() ;   

     }   

(4)创建一个Statement,要执行sql语句,必须获得java.sql.Statement的实例。有三种类型,一般选用下面这种:

Statement  stmt  =  conn.creataStatement();

(5)执行sql语句,有三种方法:executeQuery(查询语句)、executeUpdate(增删改语句)、execute(两者都行),

同时返回一个ResultSet(结果集对象)

ResultSet  rs =  stmt.executeQuery(sql);

(6)处理结果,有两种情况,一种是将查询结果返回ResultSet结果集,一种是更新操作后返回的记录数。

while(rs.next()){   

         String name = rs.getString("name") ;   

     String pass = rs.getString(1) ;    

     }   

(7)关闭JDBC对象,关闭连接对象释放JDBC资源,一般和创建顺序相反。

rs.close();

stmt.close();

conn.close();

完整的代码:

package JDBC;

import java.sql.ResultSet;

import java.sql.DriverManager;

import java.sql.*;

public class JDBCTest {

//创建JDBC的驱动名和URL

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";

static final String DB_URL = "jdbc:mysql://localhost/students_information";

//创建database credentials

static final String USER = "root";

static final String PASS = "root";

public static void main(String[] args)

{

Connection conn = null;

Statement stmt = null;

try

{

//注册JDBC驱动程序

Class.forName(JDBC_DRIVER);

//打开一个连接

System.out.println("Connecting database.....");

conn = DriverManager.getConnection(DB_URL,USER,PASS);

//执行一个查询

System.out.println("Creating satement.....");

stmt = conn.createStatement();

String sql = "select Sno,Sname,Ssex,Sage from students";

ResultSet rs = stmt.executeQuery(sql);

//把数据从结果集中取出

while(rs.next())

{

//用列名检索

int Sno = rs.getInt("Sno");

int Sage = rs.getInt("Sage");

String Sname = rs.getString("Sname");

String Ssex = rs.getString("Ssex");

//显示值

System.out.print("Sno:"+Sno);

System.out.print(", Sname:"+Sname);

System.out.print(", Ssex:"+Ssex);

System.out.println(", Sage:"+Sage);

}

//关闭资源

rs.close();

stmt.close();

conn.close();

}

catch(SQLException se)

{

//JDBC异常

se.printStackTrace();

}

catch(Exception e)

{

//Class.forName异常

e.printStackTrace();

}

finally

{

try

{

if(stmt!=null)

stmt.close();

}

catch(SQLException se2)

{

try

{

if(conn!=null)

conn.close();

}

catch(SQLException se)

{

se.printStackTrace();

}

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: