zoukankan      html  css  js  c++  java
  • JDBC

    1.java数据库操作
    如何通过JDBC访问数据库?
    说明:用于在java程序中实现数据库操作功能,提供了执行SQL语句、访问各种数据库的方法,并为数据库提供了统一的接口。

    具体步骤:1)加载JDBC驱动器(位于客户端和服务器端之间,是一种中间桥梁,将数据库驱动加载到classpath中,
    在基于javaEE的web应用的开发过程,常常要把目标数据库产品的JDBC驱动复制到web-INF/lib下。
    2)加载JDBC驱动,并将其注册到DriveManager中。一般用反射
    class.forName(String driveName).
    3)建立数据库连接,取得Connection对象。一般通过DriveManager.getConnection(url,username,passwd)方法实现,
    其中,url表示连接数据库的字符串,username连接数据库的用户名,passwd表示连接的数据库的密码。
    4)建立Statement对象或PreparedStatement对象。
    5)执行SQL语句。
    6)访问结果集ResultSet对象。
    7)依旧将ResultSet/Statement/PreparedStatement/
    Connection对象关闭,释放掉所有的资源,例如rs.close()/
    con.close()等。为什么要这么做呢?原因在于JDBC驱动底层通常
    都是通过网络IO实现SQL命令与数据传输的。

    用MySQL连接数据库:
    Class.forName(“org.gjt.mm.mysql.Driver”);//用反射加载驱动
    String url=“jdbc:mysql://localhost/sample?user=sa password=sa”;//连接数据库的字符串、用户名、密码
    Connection con=DriverManager.getConnection(url);//建立数据库连接,取得Connection对象

    import java.sql.*;
    public class TestMysqlConnection{
        public static void main(String[] args) {
            Connection conn=null;
            Statement stmt=null;
            Resultset rs=null;
    
            //导入数据库的过程,操作文件菜单
            try{
                class.forName("com.mysql.jdbc.Driver");    
                //这里是干什么的?        
                conn=DriverManager.getConnection("jdbc:mysql://localhost/mydata?user="root&password=root&password=root");
                    //连接已经存在的数据库
                stmt=conn.creatStatement();
                //获得数据
                rs=stmt.executeQuery();
                while(rs.next()){
                    System.out.println(rs.getString("deptno"));
                    //访问数据库中的表
                }
            }catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            catch(Exception ex) {
                System.out.println("sqlException:"+ex.getMessage());
                System.out.println("sqlState:"+ex.getSqlState());
                System.out.println("VendorError:"+ex.getErrorCode());
            }finally{
                try{
                     if (rs !=null) {
                         rs.close();
                         rs.null;
                     }
                }catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    再看一个例子:

    1.导入JDBC驱动,

    即首先导入.jar文件(

    a. 选中建立好的工程Test,点击右键,选择Properties,

    b. 选择Java Build Path 在右边选择Libraries,点击Add External JARs...

    c. 导入正确的驱动连接的包

    d、选择Order and Export,勾选上我们刚刚导入进来的包,最后点击OK就可以了。

    然后建立数据库、库下建表、插入值

    2.java程序访问数据库

    package com.shiyanlou;
    
    import java.sql.*;
    
    public class JdbcTest {
       // JDBC 驱动器名称 和数据库地址
       static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
       //数据库的名称为 EXAMPLE
       static final String DB_URL = "jdbc:mysql://localhost/EXAMPLE";
    
       //  数据库用户和密码
       static final String USER = "root";
    
       static final String PASS = "";
    
       public static void main(String[] args) {
           Connection conn = null;
           Statement stmt = null;
           try{
               //注册JDBC 驱动程序
               Class.forName("com.mysql.jdbc.Driver");
    
               //打开连接
               System.out.println("Connecting to database...");
               conn = DriverManager.getConnection(DB_URL,USER,PASS);
    
               //执行查询
               System.out.println("Creating statement...");
               stmt = conn.createStatement();
               String sql;
               sql = "SELECT id, name, age FROM Students";
               ResultSet rs = stmt.executeQuery(sql);
    
               //得到和处理结果集
               while(rs.next()){
                   //检索
                   int id  = rs.getInt("id");
                   int age = rs.getInt("age");
                   String name = rs.getString("name");
    
                   //显示
                   System.out.print("ID: " + id);
                   System.out.print(", Age: " + age);
                   System.out.print(", Name: " + name);
                   System.out.println();
               }
               //清理环境
               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();
               }
           }
           System.out.println("Goodbye!");
       }
    }
    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    SQL命令优化
    C# 实现快捷键几种方法
    实现把dgv里的数据完整的复制到一张内存表
    DataGridView上下方向键定位
    《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (2) : 大型网站核心架构要素(2) -- 可用性
    《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (2) : 大型网站核心架构要素(1) -- 性能
    Solr6.7 学习笔记(01) -- 目录结构
    《大型网站技术架构:核心原理与案例分析》-- 读书笔记 (1):大型网站发展历程
    浅淡Java多线程
    java 多线程学习笔记(二) -- IO密集型任务
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/8810548.html
Copyright © 2011-2022 走看看