码迷,mamicode.com
首页 > 数据库 > 详细

JDBC

时间:2019-06-10 09:20:18      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:查询   系统维护   detail   mic   优点   跨平台   oid   ref   for   

一.JDBC简介

1.什么是JDBC?

  JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

  开发公司:sun

2.JDBC可以用来做什么?

  简单地说,JDBC 可做三件事:与数据库建立连接、发送、操作数据库的语句并处理结果。

3.JDBC的优劣势?

  优点:直接底层操作,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。因为是底层的操作,所以访问速度相比较快。

  缺点:sql语句修改,需要重新编译java代码,不利于系统维护。JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值保持一致。

     需要及时处理异常并正确关闭数据源。

4.JDBC的工作原理(转自百度百科)

            技术图片

 

 

    • JDBC接口(API)包括两个层次:
      • 面向应用的API:Java API,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)。
      • 面向数据库的API:Java Driver API,供开发商开发数据库驱动程序用。
    • JDBC驱动程序:各个数据库厂商根据JDBC的规范制作的 JDBC 实现类的类库
      • JDBC驱动程序总共有四种类型:
        第一类:JDBC-ODBC桥。
        第二类:部分本地API部分Java的驱动程序。
        第三类:JDBC网络纯Java驱动程序。
        第四类:本地协议的纯 Java 驱动程序。

二. JDBCD应用 

1.添加jar包:方式一:在pom.xml中<dependencies></dependencies>节点下添加依赖(https://mvnrepository.com/artifact/mysql/mysql-connector-java),<dependency>

      方式二; 或者官网上手动下载mysql-connector-java jar包  在项目WEB-INF下创建lib文件将jar包导入然后Add library

2.

public class NewsDao {
    //数据库URL
    public static final String URL = "jdbc:mysql://localhost:3306/kgcnews";
    //数据库用户名
    public static final String USER = "root";
    //数据库密码
    public static final String PASSWORD = "123456";
    //数据库连接对象
    Connection conn =null;
    //SQL执行对象
    Statement stament = null;
    //结果集对象
    ResultSet rs = null;

    //连接数据库方法
    public Connection connection(){
        try {
            //1.加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //2. 获得数据库连接
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
            System.out.println("成功连接数据库");
        } catch (ClassNotFoundException e) {
            System.out.println("数据库异常");
            e.printStackTrace();
        } catch (SQLException e) {
            System.out.println("数据库异常");
            e.printStackTrace();
        }
        return conn;
    }
    //查询方法
    public ResultSet query(String sql) throws SQLException {
        //获取数据库连接线程
        connection();
       // 3.通过connection 获取一个sql语句操作对象statement
        stament = conn.createStatement();
       // 4.执行sql获得结果
        rs = stament.executeQuery(sql);
        return rs;

    }

    //关闭资源
    public boolean destory() throws SQLException {
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
                return false;
            }
        }
        if(stament!=null){
            try {
                stament.close();
            } catch (SQLException e) {
                e.printStackTrace();
                return false;
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                return false;
            }
        }
        return true;

    }

    public static void main(String[] args) throws SQLException {
     String sql = "SELECT `userName`,`password` FROM `news_user` WHERE `id` = 4";
   String sql2 = "SELECT `title`,`createDate` FROM `news_detail`";
  NewsDao nd = new NewsDao();
  Connection conn = nd.connection();
  ResultSet rs = nd.query(sql2);
  //查询后操作结果集,得到相对应的数据
   while(rs.next()){
  System.out.println(rs.getString("title")+"-"+rs.getString("createDate"));
   }
  nd.destory();
  }
}

          



  



 

JDBC

标签:查询   系统维护   detail   mic   优点   跨平台   oid   ref   for   

原文地址:https://www.cnblogs.com/jiayiblog/p/10945992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!