• JDBC


    一.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();
      }
    }
    
    
              



      



  • 相关阅读:
    Logistic回归
    朴素贝叶斯
    决策树
    K-邻近(KNN)算法
    快速排序
    归并排序
    希尔排序
    插入排序
    选择排序
    浅谈系统服务分发
  • 原文地址:https://www.cnblogs.com/jiayiblog/p/10945992.html
Copyright © 2020-2023  润新知