其他分享
首页 > 其他分享> > JDBC四大对象

JDBC四大对象

作者:互联网

   DriverManger:驱动管理对象
        功能
            1,注册驱动
             static void registerDriver(Driver driver)
             Class.forName("com.mysql.jdbc.Driver")代码实现
             com.mysql.jdbc.Driver类中存在静态代码块
            注意:mysql5之后的jar包可以省略注册驱动的过程
            2,获取数据库连接
        url:指定连接的路径
        语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
        user:用户名
        password:密码
        如果连接的是localhost 则ip端口号可以不写
    Connection:数据库连接对象
          功能
        1,获取执行sql对象
         createStatement()
        2,管理事务
        开启事务
        提交事务
        回滚事务
    Statement:执行sql对象
         执行sql
        executeUpdate执行DML语句(增删改)DDL语句
        返回值:影响的行数 返回值大于0 成功
        executeQuery 执行DQL语句
    ResultSet:结果集对象,封装查询结果
         next()游标(指向表头)向下移动一行
         getXxx(参数):获取数据  Xxx代表数据类型  例如getInt 返回值int
         参数:
        Int:代表列的编号 从1开始 getString(1)
        String:代表列名称  getDouble("id")
    **定义一个方法,查询emp表的数据将其封装为对象,然后装载集合,返回、
        1,定义Emp类
        2,定义方法 public list<Emp> findAll{}
        3,  实现方法 select * from emp;
    PreparedStatement:执行sql对象
    SQL注入问题  在拼接sql时,有一些SQL的关键字参与字符串拼接。会造成安全性问题
        1,输入用户随便,输入密码a' or 'a'='a
        2,解决SQL注入问题:使用PreparedStatment对象来解决
        3,预编译SQL:参数使用?作为占位符
        1,导入驱动jar包
        2,注册驱动
        3,获取数据库连接对象 Connection
        4,定义sql
        5,获取执行sql语句对象 PreparedStatement connection.prepareStatement(String sql)
        6,  方法:setXxx(参数1,参数2)
        *?的位置编号从1开始
        *参数2 值
        7,  执行sql,接收返回结果
        8,处理结果
        9,释放资源

public boolean login(String username,String password){
        if(username==null||password==null)
            return false;
        Connection connection = null;
//        Statement statement=null;
        ResultSet resultSet1=null;
        PreparedStatement preparedStatement =null;
        try {
            connection = Jdbcutils.getConnection();
//            statement = connection.createStatement();
            String sql= "select * from user where username = ? and password = ?";
            preparedStatement = connection.prepareStatement(sql);
            //给?赋值
            preparedStatement.setString(1,username);
            preparedStatement.setString(2,password);
            resultSet1 = preparedStatement.executeQuery();
//            resultSet1 = statement.executeQuery(sql);
            return resultSet1.next();

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            Jdbcutils.close(resultSet1,preparedStatement,connection);
        }

       ** 注意 后期都会使用PreparedStatement来完成增删改查的所有操作
        1,可以防止SQL注入
        2,效率更高

       web项目下需要将驱动jar包
          *复制mysql-connector-java-5.1.37-bin.jar到Tomcat服务器的lib文件夹下

标签:password,JDBC,对象,connection,preparedStatement,四大,sql,null
来源: https://blog.csdn.net/qq_50352386/article/details/120400612