jdbc

    科技2022-07-13  128

    前言

    调用数据库需要下载对应数据库的驱动

    建议把参数写到properties中

    JDBC编程六大步骤

    1.注册驱动(连接对应品牌的数据库)

    2.获取连接(表示JVM的进程和数据库进程之间的通道打开,使用完后一定要关闭)

    3.获取数据库操作对象(专门执行sql语句的对象)

    4.执行sql语句(DQL,DML…)

    5.处理查询结果集(只有当第四步执行的是select语句时才有这一步)

    6.释放资源(使用完资源之后一定要关闭资源)

    1.注册驱动

    DriverManager类的registerDriver(Driver driver)注册所需驱动

    Driver driver = new com.mysql.cj.jdbc.Driver(); DriverManager.registerDriver(driver);

    常用方式

    Class.forName(“com.mysql.cj.jdbc.Driver”);加载这个类来运行静态代码块实现驱动的注册

    常用原因:参数是一个字符串,字符串可以写到properties中

    2.获取连接

    DriverManager类的getConnection(String url, String root, String password)获取到与数据库连接的Connection类

    Connection con = null; con=DriverManager.getConnection( url, user, password);

    3.创建可执行sql语句的对象(Statement对象)

    通过连接connection对象的creatStatement()创建可执行sql语句对象

    Statement statement = null; statement=con.createStatement();//创建对象

    4.执行sql语句

    使用String sql=" …"传递sql语句到数据库并执行返回结果

    jdbc中的sql语句不能有分号

    statement对象中executeUpdate(sql)专门执行DML语句(insert delete update) 返回值为受影响的数据库中记录条数

    插入

    insert into …

    删除

    delete

    更新

    update

    -------

    statement对象中executeQuery(sql)专门执行DQL语句(select)返回值为查询结果集

    查询

    select

    5.处理查询结果集

    getString()方法的特点是:不管数据库中数据类型是什么,都以String形式返回;下标都是从1开始

    6.释放资源

    先释放ResultSet再释放statement最后释放connection

    7.使用ResourceBundle类调用propreties文件(重点)

    使用ResourceBundle类的getBundle(String basename)来实现调用,通过getString(String key)来获取所需数据

    8.代码

    public void JDBCTest(){ Connection con = null; Statement statement = null; ResultSet set = null; try { //获取属性值 ResourceBundle bundle = ResourceBundle.getBundle("jdbc"); String driver = bundle.getString("Driver_Name"); String url = bundle.getString("url"); String user = bundle.getString("user"); String password = bundle.getString("password"); //1.注册驱动(反射) Class.forName(driver); //2.获取连接 con = DriverManager.getConnection(url, user, password); //3.创建可执行sql语句对象(statement) statement = con.createStatement(); //4.执行sql语句 String sql = "select * from s"; set = statement.executeQuery(sql); //5.处理查询结果集 while(set.next()){ System.out.println(set.getString(1)+"|"+set.getString(2)+"|"+set.getString(3)+"|"+set.getString(4)); } } catch (SQLException | ClassNotFoundException e) { e.printStackTrace(); }finally {//6.关闭资源(先关statement再关connection) if(set!=null){ try { set.close(); } catch (SQLException e) { e.printStackTrace(); } } if(statement!=null){ try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if(con!=null){ try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
    Processed: 0.010, SQL: 8