栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

JDBC连接数据库

JDBC连接数据库

JDBC 数据库驱动, 

        java.sql

        javax.sql

        

第一个jdbc程序

        创建测试数据库 

        1. 创建一个普通项目

        2 导入数据库驱动

        3 编写测试代码

        

 //加载驱动
    Class.forName("com.mysql.cj.jdbc.Driver");//固定写法
    //用户信息和url
    String url="jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
    String username="root";
    String password="root";
    //连接成功 数据库对象 Collection代表数据库
    Connection connection=DriverManager.getConnection(url,username,password);
    //执行sql的对象 Statement执行sql对象
    Statement statement=connection.createStatement();

   // statement.executeQuery();//查询操作返回 ResultSet
   // statement.executeUpdate();//更新,插入 删除 返回一个受影响的行数
    //执行sql的对象 去执行sql 可能存在结果 查看返回结果
    String sql="select * from users";
    ResultSet resultSet=statement.executeQuery(sql);//返回结果集,结果集中封装全部查询结果

    while(resultSet.next()){
        System.out.println("id"+resultSet.getObject("id"));
        System.out.println("name"+resultSet.getObject("name"));
        System.out.println("password"+resultSet.getObject("password"));
        System.out.println("email"+resultSet.getObject("email"));
        System.out.println("birthday"+resultSet.getObject("birthday"));
    }
    //释放连接
    resultSet.close();
    statement.close();
    connection.close();
}

步骤总结

        1 加载驱动  2 连接数据库 DriverManager  3  获取执行sql的对象  Statement

        4 获得返回的结果集  ResultSet 5 释放连接

Statement 对象封装

       Statement.executeUpdate方法完成增删改方法

Connection conn=null;
    Statement st=null;
    ResultSet rs=null;

    try {
        conn= JdbcUtils.getConnection();//获取数据库连接
        st=conn.createStatement();//获得sql执行对象
        //String sql="insert into users(id,name,password,email,birthday)" +
        //        "values(4,'qqwe','123456','qw@qq.com','1999-03-23')";
        //String sql="delete from users where id=4";
        //String sql="update users set name='xiangyang',password='234567' where id=1";
        int i=st.executeUpdate(sql);
        if(i>0){
            System.out.println("插入成功");
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally {
        JdbcUtils.release(conn,st,rs);
    }
}

查询executeQuery方法

 Connection conn=null;
    Statement st=null;
    ResultSet rs=null;

    try {
        conn= JdbcUtils.getConnection();//获取数据库连接
        st=conn.createStatement();//获得sql执行对象

        String sql="select * from users where id=1";
        rs=st.executeQuery(sql);//查询返回一个结果集
        while (rs.next()){
            System.out.println(rs.getString("name"));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }finally {
        JdbcUtils.release(conn,st,rs);
    }
}

SQL注入问题

        sql存在漏洞 会被攻击导致数据泄露,sql会被拼接 or 的原因

PreparedStatement 对象可以防止sql注入 效率更高

        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/285975.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号