A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.什么是JDBC,使用JDBC的好处?
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
4.请简述JDBC编程的步骤
5.JdbcUtils存在的目的?
6.什么是SQL注入问题,该怎样解决?

64 个回复

倒序浏览
1.什么是JDBC,使用JDBC的好处?
Java对数据库操作,能够使用同一套代码,去连接不同的关系型数据库,解放了程序员的双手,让程序员去做更有意义的事情

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
我们导入的jar包其实就是mysql数据库里面提供的各种接口的实现类,我们用idea去使用JDBC定义的这套规则,就是接口,不需要我们写实现类,在导入的jar包中已经写好了,我们只需要会使用这些功能就好了。

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
1.使用反射的方式可以解决耦合度高的问题,如果使用new对象的话,当我们需要更换成其他库的话new对象这个方式必须要改动源码,这就要关闭服务器。而使用反射的话可以通过properties集合来设置配置文件读取信息,这种情况下只要更改配置文件就可以了,不需要关闭服务器改源码。2、jar包的实现类中,已经有new对象的语句了,如果用new来实现的话相当于new了两次对象。

4.请简述JDBC编程的步骤
1、导入要用的数据库驱动jar包 2、注册驱动 3、获取数据库连接对象Connnection 4、定义要操作的sql语句 5、获取执行sql语句的对象Statement或者PreparedStatement,但是最好使用后者,因为前者会出现sql注入问题。6、执行sql语句获得结果。7、处理结果。最后释放资源。

5.JdbcUtils存在的目的?
因为执行jdbc的代码操作中有很多的代码都是重复代码,我们将这些重复代码封装到jdbcUtils工具类中可以提高代码的复用性,减少编程时的代码量,符合java的编程思想。

6.什么是SQL注入问题,该怎样解决?
使用statement执行sql语句的情况下,在拼接sql语句时,有一些sql的特殊关键字参与字符串的拼接的时候,会造成安全性问题,例如登入数据库的时候即使账户和密码都是错的,但是带上一些特殊字符串拼接也能登录成功。使用PreparedStatement对象来替代statement对象执行sql语句就可以解决sql注入问题。
回复 使用道具 举报

1.什么是JDBC,使用JDBC的好处?JDBC是sun公司定义的一套数据库标准规范,也就是一套接口,这套接口需要各个数据库的厂商去自己完成实现类,从而让自己的数据库能够通过JAVA语言访问,将实现类封装到jar包中,我们只需要调用jar包中接口的实现类就好了;
使用 JDBC 的好处:
1)  程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
2)  使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
这个jar包是数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动和JDBC的实现类,我们通过打开包中的驱动,就能够用JAVA语言去访问数据库;
他是根据JDBC这套标准,由mysql厂商写的.
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
因为直接new对象的话,容易把代码写死,以后如果我们这套代码要访问别的数据库,就需要改动代码,耦合性太高;
使用反射能够降低耦合性.
4.请简述JDBC编程的步骤
1) 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
                        1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
                        2.右键-->Add As Library
2) 注册驱动
3.)获取数据库连接对象 Connection
4) 定义sql
5.)获取执行sql语句的对象 Statement
6) 执行sql,接受返回结果
7) 处理结果
8) 释放资源
5.JdbcUtils存在的目的?
如果一个功能经常要用到,就将这个功能抽取出来做成一个工具类,这样是为了减少代码的重复性;
6.什么是SQL注入问题,该怎样解决?
我们让用户输入的密码和 SQL 语句进行字符串拼接。用户输入的内容作为了 SQL 语句语法的一部分,改变了原有 SQL 真正的意义,以上问题称为 SQL 注入。要解决 SQL 注入就不能让用户输入的密码和我们的 SQL 语句进行简单的字符串拼接。
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC是java官方定义的操作所有关系型数据库的接口,各个数据库厂商想连接java得去实现这些接口。
好处:使用同一套java代码,进行少量的修改就可以访问其他的数据库了,而不用去学每个数据的规则了;

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
是mysql数据对jdbc接口的实现类包,免去程序员去自定义实现类

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
使用反射原理是为了使注册驱动的过程解耦和,因为如果new对象的话,耦合度太高,会存在硬编码问题,而且通过创建对象的方式注册驱动的话会把这个过程写死,当需要切换数据库的时候,就只能关闭数据库之后修改原代码才能切换。
而使用反射的方式的话,会把注册的信息放到配置文件中,如果要切换数据库,只需要改变配置文件中的内容,不需要修改源代码。
使用反射的好处有2处:1.使程序解耦和,解决了硬编码问题,2.避免了重复创建对象引用。

4.请简述JDBC编程的步骤
1.导入jar包
2.注册驱动
3.获取数据库连接对象 Connection
4.编写sql语言
5.获取sql语句对象,传入sql语言 Statement
6.执行sql语句,接受返回结果
7.处理结果
8.释放资源

5.JdbcUtils存在的目的?
工具类,可以帮我们免去jdbc编程的注册驱动、连接对象、释放资源的重复编写

6.什么是SQL注入问题,该怎样解决?
sql注入问题:当我们输入的密码不正确的时候还可以登入数据库成功
解决办法:使用PreparedStatement 接口,因为有预先编译的功能,提高 SQL 的执行效率。
可以有效的防止 SQL 注入的问题,安全性更高。
回复 使用道具 举报
1、理解JDBC相关概念
        JDBC : 是关系型数据库连接Java的一套规则(接口)
       
        可以给我们JDK中内置的 Connection Stament 进行赋值 创建子实现类对象 (由各大数据库厂商实现 jar包)
       

2、掌握JDBC连接数据库基本步骤
        1) 导入jar包 (mysql jar包  oracle jar包)
        2) 注册驱动
                mysql5版本之前
                        Class.forName("com.mysql.jdbc.Driver"); // 代码的向下兼容
                mysql5版本之后
                        DriverManager.registerDriver(new Driver());
        3) 获取数据库连接对象
                        以哪一个账号 访问哪一个数据库
                        Connection conn = DriverManager.getConnection(url,username,psswrod);
                                url:
                                        格式 : jdbc:mysql://ip地址:端口号/数据库名称
                                                如果访问的是本地的数据库 并且端口号是默认的
                                                        jdbc:mysql:///数据库名称
                                username: 访问数据库的用户名称
                                password: 访问数据库对应的密码
       
        4) 获取执行sql语句的对象,通过Connection对象获取到的
                        Stament      
                        PreparedStament 是 Stament 的子接口  解决的是SQL注入问题
       
        5) 执行sql语句 PreparedStament对象来执行
       
        6) 处理结果
                DML DDL 语句 : int  executeUpdate
                        返回值 : 返回的是受影响的行数 如果该返回值大于0 说明执行成功
                DQL 语句 : ResltSet  executeQuery
                        返回值 : ResltSet
                                ** 案例 : 读取数据库中的数据,将每一行数据封装为一个对象,并放入集合中返回
        7) 释放资源
                ResltSet
                PreparedStament
                Connection
                分别调用各自的close方法
               
                自定义JDBCUtils


3、掌握JDBC的CRUD操作
                DML DDL 语句 : int  executeUpdate
                        返回值 : 返回的是受影响的行数 如果该返回值大于0 说明执行成功
                DQL 语句 : ResltSet  executeQuery
                        返回值 : ResltSet
                                ** 案例 : 读取数据库中的数据,将每一行数据封装为一个对象,并放入集合中返回

4、能够完成JDBC的事务操作
        Connection对象可以进行事务操作  
        * 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
                * 在执行sql之前开启事务
        * 提交事务:commit()  
                * 当所有sql都执行完提交事务
        * 回滚事务:rollback()
                * 在catch中回滚事务
回复 使用道具 举报
本帖最后由 陈驰煜 于 2019-4-14 08:50 编辑

1.什么是JDBC,使用JDBC的好处?
JDBC是Java访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用JDBC接口中的方法即可,数据库驱动由数据库厂商提供.
好处:
a.程序员如果要开发访问数据库的程序,只需要会调用JDBC接口中的方法即可,不用关注类是如何实现的。
b.使用同一套Java代码,进行少量的修改就可以访问其他JDBC支持的数据库

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
此jar包是由mysql数据库厂商提供的一套实现了JDBC内的接口的实现类, 我们使用此实现类创建对象就可以实现使用Java代码与mysql数据库交互, 完成增删改查、开始事务、释放资源等操作。

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
mysql5版本之前都是使用反射的方式进行注册驱动, 在运行期以反射的方式来检查JDBC驱动的主类com.mysql.jdbc.Driver是否存在,若不存则表示运行环境中没有这个驱动,可以手动catch异常, 此外可以降低代码的耦合度, 将驱动的全类名写在配置文件中可以方便于日后更换数据库时只需修改配置文件就能更换驱动;

4.请简述JDBC编程的步骤
1.导入jar包
2.注册驱动
        Class.forName("com.mysql.jdbc.Driver");        //mysql 5版本之前
        mysql5版本之后, Driver内置静态代码块, 可以不写注册驱动,会随着类加载而注册驱动, 但为了向下兼容, 建议写
3.获取数据库连接对象
        DriverManager.getConnection(url, username, password)
        url: jdbc: mysql: // ip: 端口号/数据库名称
4.获取执行sql语句的对象
        conn.prepareStatement(sql语句);
5.执行sql语句
        使用Statement的子接口Preparedment对象的方法执行sql语句
        增删改语句: executeUpadte()
        查询语句: executeQuery()
6.处理结果
        executeUpadte()返回值是受影响的数据行数
        executeQuery()返回值是一个ResultSet类型的结果集
7.释放资源

5.JdbcUtils存在的目的?
简化代码, 提升效率, 将注册驱动, 连接数据库, 释放资源的代码封装起来, 既提升了编写代码的效率又减少了代码的冗余情况

6.什么是SQL注入问题,该怎样解决?
使用字符串拼接执行sql语句时, 会产生sql注入的安全问题.
解决方式:
使用PreparedStatement对象实现增删改查操作, 防止sql注入问题, 且效率更高
使用预编译sql语句, 其中参数使用?作为占位符
        pstate = conn.prepareStatement(String sql);
        pstate.setString();
使用setXxx()方法按顺序设置?的值, 即可避免sql注入.
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?JDBC是sun公司定义的一套数据库标准规范,也就是一套接口,这套接口需要各个数据库的厂商去自己完成实现类,从而让自己的数据库能够通过JAVA语言访问,将实现类封装到jar包中,我们只需要调用jar包中接口的实现类就好了;
使用 JDBC 的好处:
1)  程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
2)  使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
这个jar包是数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动和JDBC的实现类,我们通过打开包中的驱动,就能够用JAVA语言去访问数据库;
他是根据JDBC这套标准,由mysql厂商写的.
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
因为直接new对象的话,容易把代码写死,以后如果我们这套代码要访问别的数据库,就需要改动代码,耦合性太高;
使用反射能够降低耦合性.
4.请简述JDBC编程的步骤
1) 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
                        1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
                        2.右键-->Add As Library
2) 注册驱动
3.)获取数据库连接对象 Connection
4) 定义sql
5.)获取执行sql语句的对象 Statement
6) 执行sql,接受返回结果
7) 处理结果
8) 释放资源
5.JdbcUtils存在的目的?
如果一个功能经常要用到,就将这个功能抽取出来做成一个工具类,这样是为了减少代码的重复性;
6.什么是SQL注入问题,该怎样解决?
我们让用户输入的密码和 SQL 语句进行字符串拼接。用户输入的内容作为了 SQL 语句语法的一部分,改变了原有 SQL 真正的意义,以上问题称为 SQL 注入。要解决 SQL 注入就不能让用户输入的密码和我们的 SQL 语句进行简单的字符串拼接。
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
答:
        概念:是关系型数据库连接java的一套规则,即接口;
        好处:
                程序员在开发数据库时,只用调用JDBC接口中的方法即可,不用再去关注类是如何实现的;
                具有多态的好处,即一套代码可以使用多种数据库;

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
答:
        作用:里面有实现了JDBC接口之后的实现类
        关系:我们在使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类;

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
答:
        作用:直接nwe的话,不管有没有用都会创建对象,而使用反射是只有要用到时才会创建对象,这样更节省内存,而且还有解耦作用;
        好处:
                可以在程序运行过程中,操作这些对象;
                可以解耦,提高程序的可扩展性;

4.请简述JDBC编程的步骤
答:
        步骤:
                1.导入jar包;
                2.注册驱动;
                3.获取数据库连接对象;
                4.获取执行sql语句的对象;
                5.执行sql语句;
                6.处理结果;
                7.释放资源;
               
5.JdbcUtils存在的目的?
答:
        目的:简化代码的书写;

6.什么是SQL注入问题,该怎样解决?
答:
        概念:在拼接SQL语句时,如果有一些SQL特殊关键字参与字符串的拼接,则会造成安全问题;
        解决方法:使用preparedStatement 对象来解决,进行预编译的SQL;
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
        JDBC : 是关系型数据库连接Java的一套规则(接口)
        好处:同一套代码可以应用于不同数据库

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
        JAR包是实现了JDBC接口之后的类,能够使JDBC操作实现。

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
        使用反射能够节省资源,解耦。

4.请简述JDBC编程的步骤
        1.导包
        2.注册驱动
        3.创建数据库连接对象
        4.创建执行SQL语句对象
        5.根据语句选择执行方法
        6.处理结果
        7.关闭资源
5.JdbcUtils存在的目的?
        节省资源,使代码简洁

6.什么是SQL注入问题,该怎样解决?
        SQL注入问题是createStatement将某个指令代入数据库执行时,实际结果和需求不符,导致BUG,因此采用了prepareStatement方法来解决。
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
答:
JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。
好处:各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
答:用来执行对MySQL数据库的操作语句的实现类,即JDBC的实现类
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
答:好处是可以游戏的减低程序的耦合性
4.请简述JDBC编程的步骤
答:
1)注册驱动
2)获取连接对象
3)定义sql
4)获取执行sql对象
5)执行sql
6)处理结果
7)释放资源
5.JdbcUtils存在的目的?
答:
抽取共性,简化书写
6.什么是SQL注入问题,该怎样解决?
答:
在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
解决方法:使用PreparedStatement对象来解决
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC是java官方定义的操作所有关系型数据库的接口,各个数据库厂商想连接java得去实现这些接口。
好处:使用同一套java代码,进行少量的修改就可以访问其他的数据库了,而不用去学每个数据的规则了;

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
是mysql数据对jdbc接口的实现类包,免去程序员去自定义实现类

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
使用反射原理是为了使注册驱动的过程解耦和,因为如果new对象的话,耦合度太高,会存在硬编码问题,而且通过创建对象的方式注册驱动的话会把这个过程写死,当需要切换数据库的时候,就只能关闭数据库之后修改原代码才能切换。
而使用反射的方式的话,会把注册的信息放到配置文件中,如果要切换数据库,只需要改变配置文件中的内容,不需要修改源代码。
使用反射的好处有2处:1.使程序解耦和,解决了硬编码问题,2.避免了重复创建对象引用。

4.请简述JDBC编程的步骤
1.导入jar包
2.注册驱动
3.获取数据库连接对象 Connection
4.编写sql语言
5.获取sql语句对象,传入sql语言 Statement
6.执行sql语句,接受返回结果
7.处理结果
8.释放资源

5.JdbcUtils存在的目的?
工具类,可以帮我们免去jdbc编程的注册驱动、连接对象、释放资源的重复编写

6.什么是SQL注入问题,该怎样解决?
sql注入问题:当我们输入的密码不正确的时候还可以登入数据库成功
解决办法:使用PreparedStatement 接口,因为有预先编译的功能,提高 SQL 的执行效率。
可以有效的防止 SQL 注入的问题,安全性更高。
回复 使用道具 举报
黄志斌:
1.什么是JDBC,使用JDBC的好处?
        JDBC是JAVA定义的连接关系型数据库的接口(规则),
        使用JDBC可以让我们在使用不同类型的数据库时不用编写繁复的源码去连接数据库,而是使用各大厂商的jar包来实现;

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
        jar包是各大数据库厂商针对JDBC这个接口制作的实现类包,
        可以让我们更加简易的调用实现类内的方法来实现JAVA和数据库的连接,
        jar包是JDBC接口的实现类;

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
        使用反射来解决耦合度高的问题,如果我们需要更换其他库的话new对象就需要去改动源码,这样需要关闭服务器来进行操作,
        而通过反射的方式注册驱动的话,可以通过修改配置文件来达到修改整体的目的;

4.请简述JDBC编程的步骤
        1.导入jar包
        2,注册驱动
        3.获取数据库连接对象(Connection)
        4.定义sql语句
        5.获取执行sql语句的对象(Statement)
        6.执行sql语句,接收返回的结果
        7.处理返回结果
        8.释放资源

5.JdbcUtils存在的目的?
        JDBCUtils通过分别抽取三个方法和创建配置文件,来实现注册驱动、连接数据库、释放资源这三个反复需要使用到的功能,达到简化代码的目的,
        配置文件中则是几个键值对,用来代入参数;

6.什么是SQL注入问题,该怎样解决?
        在拼接sql时,有一些sql的特殊关键字参与字符串的拼接,会造成安全性问题,
        解决方式:使用PreparedStatement对象,预编译sql参数使用占位符?,然后给?赋值,来解决sql注入问题。
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC:是java DataBase Connnectivity的简称:数据库连接
本质:定义的一套规则用来连接所有关系型数据库的接口,由数据库的厂商去实现接口提供jar包。
好处:我们只要使用这一套接口就可以操作不同的数据库,用这一套代码来连接不同的数据库

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
用处:导入的jar包是用来执行我们写的SQL语句的实现类
关系:jar包里面是JDBC的实现类

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
使用反射技术可以解决耦合度高的问题,new对象的话只能使用当前数据库要用其他数据库就要改动源码,使用反射机制的话可以通过properties集合来设置配置文件读取信息,这样我们只要改动配置文件即可

4.请简述JDBC编程的步骤
步奏:
①导入数据库jar包 右键运行jar包
②获取数据库字节码文件,告诉程序使用的数据库
③获取数据库对象连接数据库
④书写SQL语句
⑤获取SQL语句对象
⑥执行SQL语句 (要分辨是DML还是DQL语句对应的执行方法不同)
⑦释放流

5.JdbcUtils存在的目的?
抽取类中共性的集成成为一个工具类,方便使用不用编写重复代码

6.什么是SQL注入问题,该怎样解决?
SQL注入问题:statement执行sql语句,拼接sql语句时候会发现有一些特殊的语句“恒等式”参与拼接时会造成安全性问题造成用户密码不对也可登陆
解决:使用PreparedStatement对象来替代statement对象执行sql语句
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC是ava DataBase Connectivity  Java语言操作数据库,本质是是关系型数据库连接Java的一套规则(接口)‘
好处:可以给我们JDK中内置的 Connection Stament 进行赋值 创建子实现类对象 (由各大数据库厂商实现 jar包)       

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
我们导入的jar包其实就是mysql数据库里面提供的各种接口的实现类,我们用idea去使用JDBC定义的这套规则,就是接口,不需要我们写实现类,在导入的jar包中已经写好了,我们只需要会使用这些功能就好了。

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
使用反射原理是为了使注册驱动的过程解耦和,因为如果new对象的话,耦合度太高,会存在硬编码问题,而且通过创建对象的方式注册驱动的话会把这个过程写死,当需要切换数据库的时候,就只能关闭数据库之后修改原代码才能切换。
而使用反射的方式的话,会把注册的信息放到配置文件中,如果要切换数据库,只需要改变配置文件中的内容,不需要修改源代码。
使用反射的好处有2处:1.使程序解耦和,解决了硬编码问题,2.避免了重复创建对象引用。

4.请简述JDBC编程的步骤
(1)导入要连接的数据库jar包
(2)调用Class.forname( )方法,随着jar包的实现类的加载,通过静态代码创建了Driver对象(注册驱动)
(3)通过DriverManager.getConnection( )方法,获取Connection连接对象(建立java语言与数据库之间的连接)
(4)通过connection类中createStatement( )方法方法,获取Statement对象执行sql语句对象
(5)定义要执行sql语句
(6)将sql语句作为方法参数,执行sql语句,获取返回结果
(7)对返回结果进行处理
(8)释放资源

5.JdbcUtils存在的目的?
目的:简化书写,因为执行jdbc的代码操作中有很多的代码都是重复代码,我们将这些重复代码封装到jdbcUtils工具类中可以提高代码的复用性,减少编程时的代码量,符合java的编程思想。

6.什么是SQL注入问题,该怎样解决?
SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题;
解决sql注入问题:使用PreparedStatement对象来解决
回复 使用道具 举报
就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用 JDBC 接口中的方法即可, 数据库驱动由数据库厂商提供
好处:
1) 程序员如果要开发访问数据库的程序, 只需要会调用 JDBC 接口中的方法即可, 不用关注类是如何实现的。
2) 使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
答:
可以用java驱动此jar包,对mysql数据库内的数据进行操作,
他是JDBC的实现类

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
答:
使用反射可以不修改程序,修改注册驱动类,以适应不同的数据库:使用反射可以通过通过类路径获取指定的数据库连接对象,而类路径可以是一个变量,通过参数传递或则读取配置文件获取,这样可以灵活指定需要创建的数据库连接对象;
反射的好处就是可以指定需要加载的类对象,并且可以获取类中的所有成员;

4.请简述JDBC编程的步骤
答:
1. 注册驱动
2.获取连接对象
3.定义sql
4.获取执行sql对象
5.执行sql
6.处理结果
7.释放资源

5.JdbcUtils存在的目的?
答:
JDBCUtils将连接数据库的的固定的代码提取出来,形成一个工具类,通过工具类连接获取数据库连接,简化代码,提高了代码的复用性

6.什么是SQL注入问题,该怎样解决?
答:
SQL注入问题是通过恒等式,让sql判断条件为true,导致SQL注入问题
解决:是使用Statement执行类的子类PreparedStatement,该类的执行方法传入的sql语句中可变的部分用占位符?代替,获取PreparedStatement对象的时候就把sql语句传入进行预编译,然后再设置可变参数,从而保证不会出现安全问题
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?

JDBC就是关系型数据库连接java的规则(接口)
好处(1)代码不依赖于任何数据库
      (2)只需要少量的修改就可以访问其他数据看

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?

这个jar包是mysql数据库连接java的一种规则,它只是JDBC的一种规则

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?

数据库驱动并不是有java提供的,它是由数据库供应商提供的,我们直接使用即可,不需要创建对象
使用反射可以降低程序的耦合性,并且在数据库更换的时候我们只需更改少量代码即可。

4.请简述JDBC编程的步骤

(1)导包
(2)加载驱动
(3)创建数据库连接对象(DriverManager.getConnection)
(4)创建数据库执行对象
(5)执行数据库语句
(6)使用执行结果
(7)释放资源

5.JdbcUtils存在的目的?

抽取重复出现的功能,可以避免代码重复出现,提高程序的执行效率

6.什么是SQL注入问题,该怎样解决?

当我们输入用户密码时我们如果使用的是字符串连接方式会将我们的SQL语句发生改变
当我们输入用户密码为字符串“ a' or '1'='1”时,我们原本引用的单引号会与字符串组合形成 'a' or '1'='1' ,password ='a' or '1'='1' ,'1'='1' 是true,中间是or连接,则密码就是true。这造成无论账号是什么密码都是true,这个问题就是SQL注入问题
结果:可以通过占位符“?”与PreparedStatment接口解决
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC是Java DataBase Connectivity,是Java连接数据库的语言。
好处:只需要使用一套代码,就可以操纵不同的数据库。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
用来将JDBC里的class文件加载进内存中,相当于JDBC的驱动。
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
new对象要传参,比较麻烦。
使用反射反射配置文件,可以灵活地修改各项配置而无需改动源代码。
4.请简述JDBC编程的步骤
(1)导入要连接的数据库jar包
(2)调用Class.forname( )方法,随着jar包的实现类的加载,通过静态代码创建了Driver对象(注册驱动)
(3)通过DriverManager.getConnection( )方法,获取Connection连接对象(建立java语言与数据库之间的连接)
(4)通过connection类中createStatement( )方法方法,获取Statement对象执行sql语句对象
(5)定义要执行sql语句
(6)将sql语句作为方法参数,执行sql语句,获取返回结果
(7)对返回结果进行处理
(8)释放资源
5.JdbcUtils存在的目的?
简化释放资源的操作、加载驱动的操作和获取连接的操作。
6.什么是SQL注入问题,该怎样解决?
就是在输入密码登录时,通过特殊字符的拼接将密码转化成SQL表达式的一部分,使改变语义使之恒等于true,从而绕过验证直接进入数据库。
使用PreparedStatement,将sql语句预设,用户名和密码用问号作为占位符代替,避免被篡改语义。
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
答: 对关系型数据库提供java连接的规则(接口), 好处是开发只需要要去调用jdbc中的方法就可以。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
答:可以直接创建jdbc的实现类,他是jdbc的实现类
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
答:使用反射可以降低代码直接的耦合度
4.请简述JDBC编程的步骤
        1.导入驱动jar包
        2.注册驱动
        3.创建sql的对象
        4.创建connection对象
        5.创建Statement,用来执行sql
        6.执行sql
        7.释放资源
5.JdbcUtils存在的目的?
答:减少代码量,提高复用性       
6.什么是SQL注入问题,该怎样解决?
答:在拼接sql语句的时候,有一些特殊的关键字和字符串拼接,会造成安全性问题,使用PreparedStatement来解决。
回复 使用道具 举报
陈鹏涛

1.什么是JDBC,使用JDBC的好处?
    Java语言操作数据库,
    好处:
        这套接口(jdbc)编程具有多态的好处
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
   
     我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类
   JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口
                 1)jdbc很多接口定义了java连接关系型数据库规则
         2)jar包里面实现了jdbc接口之后的实现类;
         3)这套接口(jdbc)编程具有多态的好处
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
     1class.forName(mysql),这样更换数据库时,不需要更改程序代码,程序不需要重新编译就能运行。
     反射是动态编译的,程序运行期间生成指定类的对象,
     可以程序运行期间生成不同的数据库驱动程序对象。
    省去了固定写死一个数据库驱动对象(通过new 构造函数的方法)
,造成每更换一个数据库,要重新编译代码的问题。
   2.ioc容器中生成对象时,也是根据xml配置信息中的类型,
     反射生成对象的。并把这些对象存储在hashmap中,供程序调用的
4.请简述JDBC编程的步骤
    1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
               1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
                 2.右键-->Add As Library
     2. 注册驱动
    3. 获取数据库连接对象 Connection
    4. 定义sql
    5. 获取执行sql语句的对象 Statement
    6. 执行sql,接受返回结果
    7. 处理结果
   8. 释放资源
5.JdbcUtils存在的目的?
   简化书写   
              需求:不想传递参数(麻烦),还得保证工具类的通用性。
           * 解决:配置文件
6.什么是SQL注入问题,该怎样解决?
        SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
        解决sql注入问题:使用PreparedStatement对象来解决
        预编译的SQL:参数使用?作为占位符
   
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC是JAVA定义的一套所有关系型数据库的规则.
不同的数据库厂商会去以这套规则编写属于自己的数据库驱动jar包
开发者使用不同的数据库只要导入并注册该厂商的驱动就可以实现数据库与JAVA的的数据互通
减少不使用的数据库类过多.

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?

该JAR包属于MYSQL的驱动
该驱动是JAVA定义JDBC规则下的接口所实现类
开发者只需导入注册jar包
调用JAR包内的类与方法就可实现数据库与JAVA的数据互通
看得出JAVA功能强大


3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?

反射的好处之前有提到1.可以在程序运行过程中动态修改对象2.解耦,提高程序的可拓展性
具体为什么用到...母鸡

4.请简述JDBC编程的步骤

1.首先在directory目录文件夹下创建一个libs文件夹导入驱动JAR包
2.注册驱动Class.forName("com.mysql.jdbc.Driver")代码向下兼容
3.获取数据库连接对象DriverManager.getConnection("jdbc:mysql://ip地址:端口号(本机可省略)/数据库名", "用户名", "密码")
4.定义SQL语句(等同于编写在SQLyog的代码)通过Connection对象获取使用内部PreparedStament方法(Stament不推荐用)
5.获取SQL的对象
6.执行SQL对象 .executeUpdate(括号内放第四步的对象)
7.处理结果
8.释放资源(从最后调用的对象开始释放)


5.JdbcUtils存在的目的?

1.内部实现静态代码块.只会执行一次.读取一次拿到所有数据(提高性能)
2.每次JDBC编程步骤重复度过高可以通过JdbcUtils封装部分代码(读取资源文件,加载文件,注册驱动及释放资源)
3.不同的数据库或用户名密码只需在jdbc.properties文件内修改路径用户名密码就可以实现不修改JdbcUtils源代码

6.什么是SQL注入问题,该怎样解决?

用户输入的密码和 SQL 语句进行字符串拼接。用户输入的内容作为了 SQL 语句语法的一部分, 改变了
原有 SQL 真正的意义, 以上问题称为 SQL 注入。要解决 SQL 注入就不能让用户输入的密码和我们的 SQL 语句进
行简单的字符串拼接。

当验证用户名及密码是使用Stament方法拼接完成的.会导致用户输入与SQL语法有关的编码 会改变该条验证原有意义.这样的问题成为SQL注入.
解决SQL注入需要修改用户名及密码验证的方式.不能使用Stament方法拼接.使用Stament方法的子类PreparedStament方法可以解决密码导致SQL语法验证错误的问题.
回复 使用道具 举报

1.什么是JDBC,使用JDBC的好处?

JDBC就是Java数据库连接,JDBC是Java提供给各大数据库厂商的一套标准接口, 厂商只需要编写满足给定接口的规范就可以进行连接了。使用JDBC可以让更多的数据库可以被Java语言所使用。

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?

导入的包中有JDBC这套接口的具体实现类。 关系:Jar包中的类 实现了JDBC。

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?

注册驱动的实现是通过注册驱动中的静态代码块来实现的。 使用反射的好处是,可以使代码的复用性更强。

4.请简述JDBC编程的步骤

1)导入jar包; 2)注册驱动 ;3) 获取连接对象; 4) 获取操作sql语句对象 ;5) 执行sql语句 ;6) 处理结果;7)释放资源。

5.JdbcUtils存在的目的?

解决代码冗余的问题。

6.什么是SQL注入问题,该怎样解决?

就是输入的sql语句,避开了sql的检测。解决方法是使用预处理Statement.

7.事务的作用是什么?

保证数据的完整性和安全性。
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
答:JDBC指的是java数据库连接,本质上就是JAVA定义的一套操作所有关系型数据库的规则(接口)。
使用JDBC的好处是所有关系型数据库如果要再JAVA虚拟机上操作数据库,都需要实现JAVA提供的接口,生成连接数据库专用的驱动jar包,而用户就只要有数据库厂商提供的jar包就可以使用JDBC访问不同的数据库,只需要关注接口中的方法,不需要知道方法中怎么实现访问数据库的原理。

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
答:这个jar包是MySQL基于JDBC所实现的所有接口的实现类的压缩包,当我们导入这个jar包以后,就可以通过使用JDBC的语句去访问MySQL数据库。
这个jar包是JDBC的所有接口的实现类的压缩包

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
答:使用反射原理是为了使注册驱动的过程解耦和,因为如果new对象的话,耦合度太高,会存在硬编码问题,而且通过创建对象的方式注册驱动的话会把这个过程写死,当需要切换数据库的时候,就只能关闭数据库之后修改原代码才能切换。
而使用反射的方式的话,会把注册的信息放到配置文件中,如果要切换数据库,只需要改变配置文件中的内容,不需要修改源代码。
使用反射的好处有2处:1.使程序解耦和,解决了硬编码问题,2.避免了重复创建对象引用。

4.请简述JDBC编程的步骤
答:步骤为:
1.先把jar包导入项目;
2.注册驱动,使用class.forname方法,让系统知道是哪个数据库的驱动;
3.获取数据库的连接对象,使用DriverManager.getConnection()方法,获取Connection对象conn;
4.书写SQL 语句,如:String sql="sql语句";
5.调用conn对象中的方法createStatement() 获取SQL执行对象stmt;
6.调用stmt中的方法executeUpdate()或者executeResultSet()方法执行sql语句。其中executeUpdate()是用来执行DDL和DML语句的,executeResultSet用来执行DQL语句;
7.执行SQL后会接收执行的结果,并做结果的处理,例如打印出查询的结果或者收到影响的语句的数量等;
8.需要把开启的资源释放出去,包括conn对象,stmt对象,rs对象等。

5.JdbcUtils存在的目的?
答:jdbcUtils存在的目的主要是为了简化书写,同时为了解耦和,使用反射注册驱动,就可以进一步的增强代码的复用性和可移植性;

6.什么是SQL注入问题,该怎样解决?
答:SQL注入问题指的是在拼接静态的sql语句的时候会有一些sql的关键字参与字符串的拼接,就会导致sql的判断语句异常等安全问题,进而出现sql语句异常,数据库操作异常操作等情况;
SQL注入主要是因为在创建SQL执行对象的时候使用的是createStatement(),该方法所执行的语句是静态的sql语句,解决方法是使用preparedStatement()方法创建的是预编译的SQL语句,通过通配符“?”作为占位符,会先把SQL语句编译好再把参数导入?位置,从而避免出现了SQL注入的情况。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马