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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区 黑马粉丝团   /  2018-9-5 20:50  /  3881 人查看  /  48 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

48 个回复

倒序浏览

1.什么是JDBC,使用JDBC的好处?
JDBC 是 Java 访问数据库的标准规范
好处:如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
加载驱动,他服从jdbc规则

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
通过Class 对象生成对应类的 对象,使用反射创建出来的对象耦合性更低,更加通用
4.请简述JDBC编程的步骤
                1. 导入驱动jar包
                2. 注册驱动
                3. 获取数据库连接对象 Connection
                4. 定义sql
                5. 获取执行sql语句的对象 Statement
                6. 执行sql,接受返回结果
                7. 处理结果
                8. 释放资源
5.JdbcUtils存在的目的?
工具类。试操作更方便。减少代码冗余
6.什么是SQL注入问题,该怎样解决?

使用 PreparedStatement
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
1) 程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
2) 使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
所有与 JDBC 访问数据库相关的接口和类

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
为什么一定要使用反射呢?因为反射是运行时根据全类名动态生成的Class对象,完全可以把这个全类名写在xml或者properties中去,不仅从代码上解耦和,而且需要更换数据库时,不需要进行代码的重新编译,这比直接new一个com.mysql.jdbc.Driver 不知高明到哪里去了~

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存在的目的?
减少冗余的代码
方便重复利用
回复 使用道具 举报
.什么是J,使用C的好处?
j是操作java与数据库相连接的规则(接口),实现了java与数据库的连接
2.我们导入的 my  s   q  l-connector-java-5.1.37-bin.jar包,有什么用,他和JD   BC有什么关系?
jar包是一个工具包,里面有大量于j d b c有关的操作等
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
字节码文件可以在运行时改变
4.请简述JD BC编程的步骤
导包—>注册—>获取连接对象—>定义s q l—>获取执行对象—>执行并且返回结果—>处理结果—>释放资源
5.J d b c U til s存在的目的?
简化代码书写过程,将需要重复写的代码包装起来
6.什么是SQL注入问题,该怎样解决?
使用事务可以解决
回复 使用道具 举报
.什么是J,使用C的好处?
j是操作java与数据库相连接的规则(接口),实现了java与数据库的连接
2.我们导入的 my  s   q  l-connector-java-5.1.37-bin.jar包,有什么用,他和JD   BC有什么关系?
jar包是一个工具包,里面有大量于jdbc有关的操作等
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
字节码文件可以在运行时改变
4.请简述JD BC编程的步骤
导包—>注册—>获取连接对象—>定义s q l—>获取执行对象—>执行并且返回结果—>处理结果—>释放资源
5.J d b c U til s存在的目的?
简化代码书写过程,将需要重复写的代码包装起来
6.什么是SQL注入问题,该怎样解决?
使用事务可以解决
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC是java database connectivity,是定义数据库产商语言规则的接口,
好处:各个厂商可以实现JDBC接口,生成jar包供java用户使用,可以利用java对数据库数据进行封装等扩展

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

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
反射可以将jar包内实现类的部分抽离出来使用

4.请简述JDBC编程的步骤
注册、获取连接对象、创建sql语句、通过连接对象获取执行sql语句的对象、执行sql语句、处理结果、释放资源

5.JdbcUtils存在的目的?
JdbcUtils是为了减少代码量,而抽取代码,对其进行工具类化
6.什么是SQL注入问题,该怎样解决?
SQL注入问题是利用  ' "+数据+" ' 的  ' '  对数据的判断进行引导,使其判断为真,如写入 a'or'a'='a 后,执行sql语句判断时会是  'a'or'a'='a'


回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。
1) 程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
2) 使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库。

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
jar包是java针对MySQL实现的驱动程序包,是对 JDBC 接口实现的类。

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
反射是运行时根据全类名动态生成的Class对象,完全可以把这个全类名写在properties中去,不仅从代码上解耦和,而且需要更换数据库时,不需要进行代码的重新编译。
4.请简述JDBC编程的步骤
1.导入jar包,关联jar包,添加依赖
2.注册驱动
3.获取数据库连接对象Connection
4.定义sql语句
5.获取执行sql语句的对象statement
6.执行SQL语句,接收返回结果
7.处理结果
8.释放资源

5.JdbcUtils存在的目的?
JDBC编程代码中出现了很多重复的代码,把这些公共代码抽取出来,定义一个JdbcUtils类,可以提高代码的复用率。
6.什么是SQL注入问题,该怎样解决?
用户输入的内容作为了 SQL 语句语法的一部分,改变了原有 SQL 真正的意义,以上问题称为 SQL 注入问题。
要解决 SQL 注入就不能让用户输入的密码和我们的 SQL 语句进行简单的字符串拼接,可以prepareStatement()先将 SQL 语句发送给数据库预编译,减少 SQL 编译次数,提高效率,提高安全性,消除SQL 注入的隐患。


回复 使用道具 举报
.什么是J,使用C的好处?
j是操作java与数据库相连接的规则(接口),实现了java与数据库的连接
2.我们导入的 my  s   q  l-connector-java-5.1.37-bin.jar包,有什么用,他和JD   BC有什么关系?
jar包是一个工具包,里面有大量于jdbc有关的操作等
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
字节码文件可以在运行时改变
4.请简述JD BC编程的步骤
导包—>注册—>获取连接对象—>定义s q l—>获取执行对象—>执行并且返回结果—>处理结果—>释放资源
5.J d b c U til s存在的目的?
简化代码书写过程,将需要重复写的代码包装起来
6.什么是SQL注入问题,该怎样解决?
使用事务可以解决

点评

用事务怎么解决  发表于 2018-9-9 16:09
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?  jdbc时一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包.
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
    mysql-connector-java-5.1.37-bin.jar时家va官方提供的jar包,里面时一些接口的具体实线类对象.
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
   因为驱动里面是被编译好的class字节码文件,无法用普通的方法直接new对象, 反射可以拿到想要的类的字节码问价加载到内存,因为虚拟机最终执行的是机器码.
4.请简述JDBC编程的步骤
   1 关联jar包
   2 注册驱动
   3 获取connetion 对象
   4 使用connetion对象调用执行SQL语句的statement对象
   5 使用statement对象的方法对数据库执行 ddl,dml,及dql语句
    6 释放资源
5.JdbcUtils存在的目的?
   因为在操作数据库的过程中有大量的操作是重复的, 所有因一个工具类来提取这些重复的操作,这也体现了Java的封装性
6.什么是SQL注入问题,该怎样解决?

  SQL注入就是例如SQL语句的的返回值的"漏洞"来达到绕过数据验证来获取数据库中的数据.
   可以使用 preparedstatement来动态的预编译SQL语句对象
回复 使用道具 举报
1.        什么是JDBC,使用JDBC的好处?
JDBC是java跟数据库连接的一个规则(接口)
好处:
1.程序员如果要开发访问数据库的程序,只需要会调用JDBC接口中的方法即可,不用关注类是如何实现的。
2. 使用同一套Java代码,进行少量的修改就可以访问其他JDBC支持的数据库

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
  是mysql开发的,对接Java的JDBC实现类.可以使我们可以用java语言操作数据库.
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
反射只需要字节码文件就可以创建对象从而使用方法,可以解耦,提高程序的可扩展性,更换数据库时比较方便
4.请简述JDBC编程的步骤
1.        导入驱动jar包2.添加依赖3.注册驱动4.获取数据库连接对象
5.定义sql语句6.获取执行sql语句的对象7.执行sql语句,接受返回结果
8.处理结果9.释放资源
5.JdbcUtils存在的目的?
将重复代码进行封装,提高代码复用性,简化代码
6.什么是SQL注入问题,该怎样解决?
   就是输入的sql通过字符串拼接改变原有sql真正意义,避开了sql的检测。解决方法是使用预处理Statement.
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC就是用java连接操作数据库的规范,JDBC好处在于面向接口编程,会用JDBC接口中的方法就可以操作JDBC支持的数据库。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
我们导入的 mysql-connector-java-5.1.37-bin.jar包,是数据库厂商提供的驱动包,它包含JDBC中接口的实现类。
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
用new创建对象在更换数据库时也要相应改变对应的数据库信息。用反射的方式可以动态加载配置文件注册驱动,还可以节省代码量。
4.请简述JDBC编程的步骤
导入jar包,注册驱动,定义sql语言,获取数据库连接对象,获取执行对象,执行sql获取结果,对结果进行处理,释放资源
5.JdbcUtils存在的目的?
JdbcUtils就是自定义工具类用来简化代码
6.什么是SQL注入问题,该怎样解决?
SQL注入问题就是在定义sql语言时是字符串拼接,容易出现安全性问题。
===================================================周楠
回复 使用道具 举报

1.什么是JDBC,使用JDBC的好处?
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
4.请简述JDBC编程的步骤
5.JdbcUtils存在的目的?
6.什么是SQL注入问题,该怎样解决?
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
一种规则(接口)实现 数据库与java的连接
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
包实现JDBC接口
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
反射机制低耦合在程序运行中可以对程序进行操作。

4.请简述JDBC编程的步骤
                1. 导入驱动jar包
                2. 注册驱动
                3. 获取数据库连接对象 Connection
                4. 定义sql
                5. 获取执行sql语句的对象 Statement
                6. 执行sql,接受返回结果
                7. 处理结果
                8. 释放资源
5.JdbcUtils存在的目的?
工具类将常用的方法封装在一个类中,简化书写

6.什么是SQL注入问题,该怎样解决?
当sql语句是一个字符串,条件判断 or 上一个true 判断语句 使结果始终为true 安全性差
回复 使用道具 举报
======吴齐宾======

1.什么是JDBC,使用JDBC的好处?
可以使用JAVA链接数据库,方便我们查询数据库.
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
jar包是JDBC的子实现类,我们通过调用jar里面的方法进行对mysql的操作
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
因为我们得到是.class文件,只能使用反射的方式获得对像.使用反射我们能得到jar包里面的所有属性和方法
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注入问题,该怎样解决?
问题:通过字符串的拼接,改变判断的条件,使用prepareStatement方法
回复 使用道具 举报

1.什么是JDBC,使用JDBC的好处?
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
4.请简述JDBC编程的步骤
5.JdbcUtils存在的目的?
6.什么是SQL注入问题,该怎样解决?
回复 使用道具 举报
本帖最后由 黄艺纯 于 2018-9-6 09:22 编辑

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

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
    因为JAVA提供的JAR包内容是有限的,JAVA是开源编码,很多优秀的框架,方法都可以由第3方提供。比如数据库有很多种,那么就有很多中java操作数据库语言,但如果有人事先做好,并生成了相应JAR包,你只要在你的代码里引入,并且按之前开发的人的要求对其初始化,那么就直接能用了,你自己一行算法代码,展现代码可能都不用写。简单来说就是引用别人的东西
   该包是mysql公司按照JDBC的标准规范的实现类,也就是数据库驱动

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
JDBC提供的DriverManager类用于跟踪所有可用的JDBC驱动,并在用户需要时选择合适的驱动提供给用户,但是其跟踪不是自动的,必须由可用的JDBC驱动的Driver类自己在DriverManager上进行注册,但是这个注册过程一般是由Driver类加载的时候自动完成的
Class.forName("数据库全类名驱动");这句就是为了加载这个类进入内存用的。而在一个类加载入内存的时候,类中的静态初始化过程会执行。而刚才所说的Driver类在DriverManager上注册的过程,事实上就是在这个静态初始化块中完成的,也就是说Class.forName(“数据库全类名驱动”");这句话在这里的用处就是,强制JVM将,数据库.Driver这个类加载入内存,以便将其注册到DriverManager类上去。
好处:因为反射是运行时根据全类名动态生成的Class对象,完全可以把这个全类名写在xml或者properties中去,不仅从代码上解耦和,而且需要更换数据库时,不需要进行代码的重新编译,这比直接new一个com.mysql.jdbc.Driver 不知高明到哪里去了。

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

5.JdbcUtils存在的目的?
    如果一个功能经常要用到,把这个功能做成一个工具类,可以在不同的地方重用,提高代码的复用率,降低代码的冗余,提高编程效率。

6.什么是SQL注入问题,该怎样解决?
    SQL 注入问题:用户输入的密码和 SQL 语句进行字符串拼接。用户输入的内容作为了 SQL 语句语法的一部分,改变了原有SQL真正的意义。
    使用PreparedSatement接口。



点评

有 · 优秀  发表于 2018-9-5 21:46
有丶东西  发表于 2018-9-5 21:43
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
Java和关系型数据库连接的接口;操作数据库,统一、方便。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
用于连接数据库,注册驱动;它是数据库厂商按照JDBC规则定义的接口
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
使用反射方式获取Connection接口,从而在JDBC的规范的支持下,全程数据库操作;以反射形式加载的好处是当驱动jar包不存在时,我们可以做更多的操作
4.请简述JDBC编程的步骤
1).导入jar包
2).注册驱动
3).获取数据库连接对象Connection
4).定义SQL
5).获取执行sql语句的对象 Statement
6).执行SQL
7).处理结果
8).释放资源
5.JdbcUtils存在的目的?
为了简化书写。
6.什么是SQL注入问题,该怎样解决?
在拼接SQL时,有一些SQL的特殊关键字参与字符,会造成安全问题;使用PreparedStatement对象来解决。
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC是官方定义的一套操作所有关系型数据库的规则,即接口,通过实现接口可以使用java操作数据库
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
是厂商对jdbc的实现,连接java和数据库
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
驱动是厂商提供的jar包,new对象需要找到类和其所在的包,通过反射可以直接找到该对象
4.请简述JDBC编程的步骤
        //1. 导入驱动jar包
        //2.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //3.获取数据库连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
        //4.定义sql语句
        String sql = "update account set balance = 500 where id = 1";
        //5.获取执行sql的对象 Statement
        Statement stmt = conn.createStatement();
        //6.执行sql
        int count = stmt.executeUpdate(sql);
        //7.处理结果
        System.out.println(count);
        //8.释放资源
        stmt.close();
        conn.close();
5.JdbcUtils存在的目的?
减少代码冗余,提高代码复用率
6.什么是SQL注入问题,该怎样解决?
使用Statement执行sql的对象时,如果使用到关键词会使sql语句失真,得到数据异常,通过PreparedStatement执行sql的对象可以解决这个原因
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?是java访问数据库的标准规范(接口 由各大数据库厂商实现)
开发者直接调用JDBC中的方法即可
同一套java代码,进行少量的修改就可以访问其他 JDBC 支持的数据库

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
存储了mysql实现类的压缩包,可以使用java语言操作数据库,Jar包中的类 实现了JDBC

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
增加程序的灵活性,避免将程序写死,并且jar包中的文件时.class文件

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

5.JdbcUtils存在的目的?
简化书写,偷懒

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

用户输入的内容作为了 SQL 语句语法的一部分,改变了 原有 SQL 真正的意义  例如 输入错误的账号和密码却成功登陆
使用PreparedSatement 接口可以解决该问题 ,该接口中的方法会先将 SQL 语句发送给数据库预编译,减少 SQL 编译次数,提高效率,安全性更高,没有 SQL 注入的隐患。
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
Java DataBase Connection, 是接口,是规则。
可以通过java连接多个厂商的数据库。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
  mysql-connector-java-5.1.37-bin.jar 是mysql 与java连接的规则细节。是JDBC的一个小类。
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
    使用反射可以再运行期间修改代码。
4.请简述JDBC编程的步骤
      1.导包获得依赖
      2.Class.forName ( 全类名 MySQL是com.mysql.jdbc.Driver)驱动
      3. DriverManager.getConnection 获得连接对象conn
      4.定义sql语句(sql可用拼接或占位符)
      5. conn调用createStatement获得对象stmt或调用Preatestatement获得对象pt,传入sql
      6. 传入sql语句或占位符定义,调用sql相应方法。
      7.    next确认数据,get方法获取  或者放回int,通过int确定是否成功。
5.JdbcUtils存在的目的?
简化代码,提高代码的复用性
6.什么是SQL注入问题,该怎样解决?
用 Statement 的对象 执行动态sql语句的时候容易发生和预期值不符合的情况称为SQL注入。用PrepareStatement 对sql语句预加载。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马