二、JDBC——数据库链接和创建


本章都是使用如下的数据库

这里写图片描述

二、JDBC的编程步骤(以mysql为例子)

如下

1、加载数据库驱动(jar文件):每个服务商提供包

Class.forName("com.mysql.jdbc.Driver");//加载包为mysql软件包

其他数据库软件加载包如下:

  • Oracle数据库:oracle.jdbc.driver.OracleDriver
  • SQL Server2008数据库:com.microsoft.jdbc.sqlserver.SQLServerDriver
  • DB2数据库:com.ibm.db2.jdbc.Net.DB2Driver

2、获得数据库链接

形如:

conn= DriverManager.getConnection( "url" , "user" , "password" );
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/cxg2850105498","root","cxg200888");//这里是mysql数据库链接方式
  • Oracle数据库:jdbc:oracle:thin:@localhost:1521:orcl(为数据库的SID) , sUsr(用户) , sPwd(密码)
  • SQL Server2008数据库:jdbc:sqlserver://localhost:1433;databasename=stu, sa(用户), sPwd(密码)
  • DB2数据库:jdbc:db2://localhost:5000/sample(为你的数据库名),sUsr(用户), sPwd(密码)

3、创建语句
4、执行查询
5、遍历结果集合
6、关闭数据库

以mysql为例子:

package com;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Statement;

public class Test {
    public static void main(String []args){
        java.sql.Connection conn=null;

        //1.加载注册驱动类
        try {
            Class.forName("com.mysql.jdbc.Driver");//加载驱动
        } catch (ClassNotFoundException e) {

            e.printStackTrace();
        }

        //2.创建数据库链接
        try {
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/cxg2850105498","root","cxg200888");
        } catch (SQLException e) {
            e.printStackTrace();
        }

        //3.创建语句
        String sql="select id,name,email from c";
        try {
            Statement s=(Statement) conn.createStatement();//Statement 接口需要通过Connection 接口进行实例化操作  

            //4.执行SQL查询
        ResultSet r=s.executeQuery(sql);

        //5.遍历结果集
        while(r.next()){
            //r.next()判断是否还有数据
            //按1、2、3顺序取数据库的值
            int id=r.getInt(1);
            String name=r.getString(2);
            String email=r.getString(3);
            System.out.println(id+"   "+name+"   "+email);
        }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //6.关闭数据库
        finally{
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

通过SELECT 语句,可以查询数据中的内容,在mysql 中直接查询的时候可以发现将返回全部的查询结果给用户看,那么对于程序的操作中也是一样的,所有的查询结果要返回到程序处进行输出查看,那么程序通过ResultSet 接口保存全部的查询结果,通过Statement 接口中的executeQuery()方法查询。

查询之后的数据需要分别的取出。通过 next ()方法找到返回的每一行数据,每一行中各个列的数据需要通过getXxx()方法取得,例如:

取得整型:getInt()

取得字符串:getString()

取得日期:getDate()

取得小数:getFloat()

三、第一种改进JDBC

1、将驱动和数据库链接封装在DBUtil中(创建DBUtil.java类)

这里写图片描述

package com;

import java.sql.DriverManager;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;

public class DBUtil {
    //定义成不可修改的
    private static String driver;
    private static String url;
    private static String username;
    private static String password;
    //把值都按要求填入
    static {
        driver="com.mysql.jdbc.Driver";
        url="jdbc:mysql://localhost:3306/cxg2850105498";
        username="root";
        password="cxg200888";
    }
    //打开数据库
    public static Connection open() {
        try {
            //1、注册加载驱动
            Class.forName(driver);
            //2、链接数据库
            return (Connection) DriverManager.getConnection(url,username,password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    //关闭数据库
    public static void close(Connection conn) {
        if(conn!=null)
        {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
2、将Test.java修改
package com;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class Test {
    public static void main(String []args){
        Connection conn=DBUtil.open();
        //3.创建语句
        String sql="select id,name,email from c";
        //4.执行SQL查询
        try {

            Statement s=(Statement) conn.createStatement();
        ResultSet r=s.executeQuery(sql);
        //5.遍历结果集
        while(r.next()){
            //r.next()判断是否还有数据
            int id=r.getInt(1);
            String name=r.getString(2);
            String email=r.getString(3);
            System.out.println(id+" . "+name+" || "+email);
        }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //6、关闭数据库
        finally{
            DBUtil.close(conn);
            }

    }
}

四、第二种改进JDBC

这里写图片描述

1、将加载注册和数据库链接弄到config.properties配置文件里

不能有任何空格逗号

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/cxg2850105498
username=root
password=cxg200888
2、DBUtil.java
package com;

import java.io.FileNotFoundException;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import com.mysql.jdbc.Connection;

public class DBUtil {
    //定义成不可修改的
    private static String driver;
    private static String url;
    private static String username;
    private static String password;
    //把值都按要求填入
        static {
        //此对象是用于加载properties文件数据
       ResourceBundle rb=ResourceBundle.getBundle("Config");
        driver=rb.getString("driver");
        url=rb.getString("url");
        username=rb.getString("username");
        password=rb.getString("password");
    }
    //打开数据库
    public static Connection open() {
        try {
            //注册加载驱动
            Class.forName(driver);
            //链接数据库
            return (Connection) DriverManager.getConnection(url,username,password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    //关闭数据库
    public static void close(Connection conn) {
        if(conn!=null)
        {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值