创建一个JDBC链接数据库的程序

创建一个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();
        }

    }

}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值