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

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本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,使用JDBC的好处是数据库与java语言建立连接,访问数据库只需实现接口即可。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
导入的包是数据库厂商提供的驱动包,它包含JDBC中接口的实现类。
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
用new创建对象在更换数据库时也要相应改变对应的数据库信息。用反射的方式可以动态加载配置文件注册驱动,解耦。
4.请简述JDBC编程的步骤
导入jar包,注册驱动,定义sql语言,获取数据库连接对象,获取执行对象,执行sql获取结果,对结果进行处理,释放资源
5.JdbcUtils存在的目的?
减少代码冗余,封装好方法简化书写。
6.什么是SQL注入问题,该怎样解决?
通过特殊的sql语句字符串传回给数据库,是结果异常。
用prepareStatment方法
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
  1)  程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
2)  使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
注册驱动后使用包里面的接口实现类,实现驱动
2.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
方便以后更改其他数据库厂家的使用,更灵活
3.请简述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 注入问题,解决方法用预处理statement。
回复 使用道具 举报
邵倩



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

2. mysql数据库驱动包  
实现Java程序访问mysql数据库的前提  
其中的实现类实现了JDBC接口

3.反射是对一个类的主动使用,会触发类的初始化过程,在jvm定义中,凡是主动对一个类的使用,就会触发初始化,既然初始化触发,那么“加载,连接,初始化”肯定都执行了。
所谓初始化,就是调用其静态代码块,为静态变量赋值。
只要是对com.mysql.jdbc.Driver 的主动使用都会触发注册操作,因为反射是运行时根据全类名动态生成的Class对象,因此可以把这个全类名写到配置文件中去,实现了解耦和,更换数据库时,也不需要重新编译代码
如果在代码里直接new 个mysql的Driver,那换数据库时还要修改代码中new 的Driver

4.贾琏欲执事

5.将注册驱动,获取连接,释放资源等重复的代码抽取出来 进行复用

6.利用拼接字符串的弊端 username= '' or 1=1  由于1=1永远成立,所以这句SQL将肯定成功返回  直接绕过登录
  使用PreparedStatement  预编译sql语句的方式解决
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
答:可以操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,
提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是
驱动jar包中的实现类。

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
答:注册驱动后则可以用里面的类,进行少量的修改就可以访问其他JDBC支持的数据库,
可以使我们可以用java语言操作数据库.

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
答:反射只需要字节码文件就可以创建对象从而使用方法,解耦度较高,new对象很麻烦,又占内存
提高程序的可扩展性,更换数据库时比较方便

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

5.JdbcUtils存在的目的?
答:可以将重复代码进行封装,提高代码复用性,可以简化代码,提高效率

6.什么是SQL注入问题,该怎样解决?
答:就是输入的sql通过字符串拼接改变原有sql真正意义,避开了sql的检测。
    解决SQL注入问题的方法是使用预处理Statement.



(黄嘉欣)
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
jdbc是java和数据库对接的一种规则(接口),好处:只定义了规则,只要符合规则就可以操作
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
让java和jdbc连接,是mysql定义的一个规则接口
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
不用频繁的创建对象,不需要修改代码直接在运行过程操作
4.请简述JDBC编程的步骤
导包—>注册驱动—>获得sql语句—>获取执行对象->执行语句->释放资源
5.JdbcUtils存在的目的?
解决代码的冗余问题
6.什么是SQL注入问题,该怎样解决?
利用字符串的拼接规则和SQL语句的特点,将定义的SQL语句逻辑改变,造成数据安全问题;
使用prepareStatement接口结局,用通配符代替传统拼接,避免了sql注入问题。
周家乾




回复 使用道具 举报
1.JDBC 是java连接数据库的一种规则,好处1.访问数据库,只需要调用JDBC接口方法即可,不用关注类是如何实现的2.使用同一套代码,进行少量修改 就可以访问其他JDBC支持的数据库
2.提供驱动,注册驱动,jar包是由数据库厂商提供
3.灵活 解耦
4.导入Jar包. 注册加载驱动,连接数据库对象,定义sql,获取执行sql语句对象,执行sql,处理结果,释放资源
5.工具类,目的是简化代码,在不同的地图重用
6.用户输入的密码和 SQL 语句进行字符串拼接。用户输入的内容作为了 SQL 语句语法的一部分,改变了 原有 SQL 真正的意义
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?

  是JAVA和数据库连接的规则(接口),可以通过实现接口来把数据库连接JAVA。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?

mysql数据库厂商写的
实现JDBC接口的实现类,可以把数据库连接JAVA,用java语言调用。
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?

   因为各数据库的驱动不同,不把代码写死,
使用反射的方式
可以提高代码的复用性。
4.请简述JDBC编程的步骤

  导入jar包,建立依赖,注册驱动,创建连接对象,定义sql语句,创建执行sql语句对象,调用执行执行sql语句的方法,释放资源
5.JdbcUtils存在的目的?

  体现JAVA的封装性,简化书写。
6.什么是SQL注入问题,该怎样解决?

sql的某些特殊关键字拼接字符串会造成安全问题。
使用PrepareStatement对象解决
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处? Java规范定义 接口 ,具体的实现由各大数据库厂商来实现。
1)  程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
2)  使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
jar包中的有JDBC接口的实现类
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
  可以用class文件直接调用类的方法,降低代码的耦合性
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的好处?
     JDBC是一套关系型数据库的规则,即接口,用于Java与数据库的连接
    使用JDBC可以连接更多的数据库,只需稍加修改就可以被Java语言所使用
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
      导入的包中包含了数据库厂商定义的接口的具体实现类,Jar包中的类 实现了JDBC。
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
       注册驱动的实现是通过注册驱动中的静态代码块来实现的。使用反射可以是代码的复用性变得更强
4.请简述JDBC编程的步骤
     分为8个步骤:1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
   1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下右键-->Add As Library
   2. 注册驱动
   3. 获取数据库连接对象 Connection
   4. 定义sql
   5. 获取执行sql语句的对象 Statement
    6. 执行sql,接受返回结果
    7. 处理结果
    8. 释放资源
5.JdbcUtils存在的目的?
      简化代码的书写
6.什么是SQL注入问题,该怎样解决?
     SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
     解决办法:使用PreparedStatement对象来解决

田浪
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
  JDBC是一套所有关系型数据库的规则,即接口,使用jdbc就是使用不同产商提供的接口实现对象来对不同的数据库进行操作。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
   导包的作用是mysql针对自己的数据库的特性去实现了jdbc的接口,我们们导入jar包其实就是为了使用jar包中的一些类对象来简化操作,jar包是对jdbc义的数据库规则的实现。
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
  以反射形式加载的一个好处是当驱动jar包不存在时,我们可以做更多的操作,好处:使用反射创建出来的对象耦合性更低,更加通用。
4.请简述JDBC编程的步骤
1.导jar包
2.注册驱动
3.获取数据库连接对象connection
4.定义sql
5.获取执行sql语句的对象,statement
6.执行sql,接收返回结果
7.处理结果
8.释放资源                                                                       
5.JdbcUtils存在的目的?
  利用jdbc对数据库进行操作,每次都会有重复的代码为了去除冗余,将一些常用的操作封装在jdbc工具类中
6.什么是SQL注入问题,该怎样解决?
早期的sql语句采用字符串拼接的手段,当刻意的在密码使用一些sql的特殊关键字参与字符串的拼接,让其返回值必定为ture这样就可以随意的访问数据库造成安全性问题。使用PreparedStatement对象来解决采用预编译的SQL参数使用?作为占位符,用户在输入特殊关键字进行字符串拼接的时候只会作为判断是否相等的信息,不会改变原sql的定义。
回复 使用道具 举报
郭林源


1.什么是JDBC,使用JDBC的好处?-->JDBC就是sun公司定义的一套所有关系型数据库的操作规则,我们可以使用这个接口将数据库与JAVA进行连接

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?-->jar包是数据库厂商对JDBC接口的实现,我们可以使用jar包中的实现类,对数据库进行数据操作

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?-->反射是运行时根据全类名动态生成的Class对象,可以把这个全类名写在xml或者properties中,从代码上解耦和,而且需要更换数据库时,不需要进行代码的重新编译,new对象则不能实现

4.请简述JDBC编程的步骤-->1、导入jar包  2、注册驱动  3、获取数据库连接对象  4、定义SQL操作语句   5、获取执行sql语句的对象并执行sql   6、对数据结果进行处理  7、释放资源

5.JdbcUtils存在的目的?-->简化代码,对共性代码进行抽取,更方便使用

6.什么是SQL注入问题,该怎样解决?-->利用数据库的漏洞,使用特殊sql语句,绕过安全机制,从而非法获得数据库的数据
回复 使用道具 举报
回复 使用道具 举报
本帖最后由 小鱼七 于 2021-9-1 17:50 编辑

1.什么是JDBC,使用JDBC的好处?
JDBC是数据库与Java联系的规则,好处是如果所有数据库产商使用此规则,可以与所有的数据库联系
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
使Java可操作musql,他是按照JDBC规则编写的
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?

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





回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
SUN公司定义的一套操作所有关系型数据库的规则,即接口
好处:可以让Java接收不同数据库中的数据

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
各个数据库厂商去实现数据库接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
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的特殊关键字参与字符串的拼接。会造成安全性问题
使用PreparedStatement对象来解决:预编译的SQL:参数使用?作为占位符

回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
JDBC是Java与数据库连接的规则,及接口。
好处:不需要我们关注如何去实现接口,有数据库厂商去实现。

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

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
可以避免频繁更改代码,需要更改时直接在配置文件修改


4.请简述JDBC编程的步骤
导入jar包;注册驱动;获取连接对象;定义SQL语句;获取执行对象;执行;结果处理;释放资源

5.JdbcUtils存在的目的?
简化书写
6.什么是SQL注入问题,该怎样解决?
回复 使用道具 举报
文字不能发

AAA.jpg (823.93 KB, 下载次数: 12)

AAA.jpg
回复 使用道具 举报
本帖最后由 yangshixian 于 2018-9-6 09:46 编辑

1.什么是JDBC,使用JDBC的好处?JDBC是Java语言操作数据库。本质其实是官方定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口。
好处
一、如果要开发访问数据库程序,只需要调用JDBC接口中的方法即可,不用关注类是如何实现的
二、使用同一套Java代码,进行少量的修改就可以访问其他JDBC支持的数据可

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
用来提供mysql的驱动和实现类
和JDBC是实现类与接口的关系

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
因为如果不用反射机制,注册驱动的代码必须写死掉,使用反射机制,代码不用写死,增加扩展性
好处在于1、可以解耦,提供程序的扩展性 2、在程序运行过程,可以操作这些对象

4.请简述JDBC编程的步骤
1. 导入驱动jar包
2. 注册驱动
3. 获取数据库连接对象 Connection
4. 定义sql
5. 获取执行sql语句的对象 PreparedStatement
6. 给?赋值:
7. 执行sql,接受返回结果,不需要传递sql语句
8. 处理结果
9. 释放资源

5.JdbcUtils存在的目的?
以工具类的形式存在,在于抽取许多重复的代码,在不同的地方重用,简化代码

6.什么是SQL注入问题,该怎样解决?
SQL的注入问题即为用户输入的内容作为SQL语句语法的一部分,改变原有SQL的真正意义
通过使用PreparedStatement对象


杨式贤

回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
    JDBC是一套操作关系型数据库的规范,即接口;通过JDBC能够用java语言操作数据库;
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
   jar包中提供的是JDBC的实现类 , 依靠这些实现类才能执行代码;
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
   通过反射的方式可以根据全类名动态生成class对象 , 当更换数据库时不用重写编译代码;
4.请简述JDBC编程的步骤
  1.导入 .jar包,建立依赖关系 ;
   2.注册驱动 ;
   3.获得网络连接对象 ;
   4.定义sql语句 ;
   5.获得执行sql语句的对象 ;
   6.执行sql语句 ;
   7.处理结果 ;
   8.关闭资源 ;
5.JdbcUtils存在的目的?
   不用每次都写重复的代码 , 减少冗余的代码 , 提高效率 ;
6.什么是SQL注入问题,该怎样解决?
   通过一些关键字让sql语句顺利欺骗数据库;
   使用PreparedStatement( ) 替代createStatement( )可以解决;





回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
sun公司 定义的一套操作所有关系型数据库的规则     好处 可以用 java代码 只会数据库 做事
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
  JDBC是一组接口,该jar包为mysql数据库开发者提供的一组符合JDBC接口规范的驱动包,包含了一系列的JDBC中各种接口的实现类。
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
   因为该包为从外部导入,并且由于实际使用中并不需要取直接手动调用构造方法新建相应的对象,而是通过一系列的静态方法和成员方法去获取对象,所以的话,在一开始只要直接将类加载后由其中的静态代码块就可以完成相应的初始化工作。而且使用反射加载相对来说也较为灵活,日后可以配合配置文件和更换jar包来实现对不同数据库的支持。
4.请简述JDBC编程的步骤
--1.导入驱动包
--2.注册驱动
--3.获取数据连接对象 Connection
--4.定义sql 语句字符串
--5.获取执行sql语句对象 statment
--6.statment 对象 执行sql语句
--7.处理结果
--8.释放资源
5.JdbcUtils存在的目的?
抽取冗余代码 进行封装 达到 简化代码的目的
6.什么是SQL注入问题,该怎样解决?
在拼接sql语句时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
使用 PreparedStatement 来执行sql语句 会解决掉该问题




回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马