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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区   /  2019-4-13 18:36  /  4462 人查看  /  64 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.什么是JDBC,使用JDBC的好处?
JDBC是关系型数据库连接Java的标准规范,即接口,每个数据库厂商会提供编写好的数据库驱动jar包。
使用JDBC的好处:
1)程序员如果要开发访问数据库的程序,只需要调用JDBC接口中的方法,不用关注类是如何实现的;
2)使用同一套Java代码,进行少量的修改就可以访问其它的数据库。

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
jar包是JDBC接口的实现类,导入jar包后,程序员只需要调用JDBC中的方法就可以访问数据库

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
1)如果new对象的话会产生硬编码问题,就是将创建的对象写死了,如果切换数据库驱动,就需要重写修改源代码,就必须重启服务器。这就会造成我们的对象java代码练习的太紧密;
2)注册驱动方法中静态代码定义了创建驱动对象语句,如果new对象会创建两次对象;
3)使用反射方式的话解决了硬编码问题,它可以避免修改源代码的情况,我们只需要修改配置文件即可进行换库换驱动的操作。

4.请简述JDBC编程的步骤
1)导入驱动jar包;
2)使用Class.forName方法注册驱动;
3)使用DriverManager.getConnection方法获取数据库连接对象Connection;
4)定义sql语句;
5)通过Connection对象获取执行sql语句的对象Statement;
6)执行sql语句;
7)处理结果;
8)释放资源

5.JdbcUtils存在的目的?
抽取经常使用的,多次重复的代码做成一个工具类,可以提高代码的复用性,简化代码的书写

6.什么是SQL注入问题,该怎样解决?
sql注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接,会造成安全性问题
解决sql注入问题:使用PreparedStatement对象来解决
回复 使用道具 举报
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异常;
好处: 当驱动jar包不存在时,我们可以做更多的操作(如捕获异常)

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是官方定义的一套操作所以数据库的规则,即接口。
好处:
1、程序员如果要开发访问数据库的程序,只需要会调用JDBC接口中的方法即可,不用关注类是如何实现的。
2、使用同一套java代码,进行少量的修改就可以访问其他JDBC支持的数据库。
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
jar是具体某个数据库的驱动程序。它是JDBC接口的实现类。
如果没有导入这个包,java本身并没有内置访问数据库的驱动程序,我们是没办法通过java和数据库进行连接的。
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
因为使用反射来注册驱动,当我们更换数据库时候,不需要更改程序代码,只需要修改配置文件即可。
如果使用了new来创建对象,每次更改数据库都要重新修改代码,重新编译。
4.请简述JDBC编程的步骤
1、导入驱动jar包
2、注册驱动--将字节码文件加载到内存中
3、获取数据库连接对象
4、定义sql
5、获取执行sql语句的对象
6、执行sql,接受返回的结果
7、处理结果
8、释放资源
5.JdbcUtils存在的目的?
提高代码的复用性,使编码更为简洁。
6.什么是SQL注入问题,该怎样解决?
SQL注入:用户输入的内容作为SQL语句语法的一部分,改变了原有SQL真正的意义。使用PreparedSatement接口预编译原理,使用占位符解决。
回复 使用道具 举报
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的好处?
是关系型数据库连接Java的一套规则(接口)可以给我们JDK中内置的 Connection Statement 进行赋值 创建子实现类对象 (由各大数据库厂商实现 jar包)
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
他是jdbc接口的实现类,我们通过包内的实现方法对数据库进行操作

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
因为反射是动态编译的,程序运行期间生成指定类的对象,这样就可以程序运行期间生成不同的数据库驱动程序对象。省去了固定写死一个数据库驱动对象(通过new 构造函数的方法),造成每更换一个数据库,要重新编译代码的问题。
4.请简述JDBC编程的步骤
(1)导入jar包 (2)注册驱动 (3)获取数据库连接对象 (4)获取执行sql语句对象 (6)执行SQL语句 (7)处理结果 (8)释放资源
5.JdbcUtils存在的目的?
将每次jdbc编程过程中共性的代码抽取出来,提高代码的复用性
6.什么是SQL注入问题,该怎样解决?
在拼接SQL语句时由于手动输入的参数改变了条件,造成安全问题
使用preparedstatement对象方法解决。
回复 使用道具 举报
1、理解JDBC相关概念
        这是关系型数据库连接Java的一套规则(接口),可以给我们JDK中内置的 Connection Stament 进行赋值 创建子实现类对象 。
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()
回复 使用道具 举报
王佳盛
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语言操作数据库,其本质其实是官方定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套JDBC编程,真正执行的代码是驱动jar包中的实现类。所以使用JDBC可以在不同的关系型数据库中操作数据库,因为实现接口的那些实现类是厂商已经写好了的,我们只要会用这些方法来实现想要的功能操作就可以了,这就是使用JDBC的好处。

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的好处?
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是Java DataBase Connectivity Java 的缩写,指Java与数据库的连接。本质上是一个官方提供的接口,定义了所有关系型数据库的操作规则,各个数据库厂商通过实现这套接口,实现了数据库和Java的互动。我们可以使用各个数据库厂商提供的驱动jar包完成Java中操作数据库的各项功能。
好处:程序员通过使用JDBC接口中的方法,可以直接访问数据库,不需要关注功能是如何实现的。同时,满足同一套JDBC标准的java代码,进行少量的修改就可以适用于其他JDBC支持的数据库

2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,他和JDBC有什么关系?
答:通过导入mysql的jar包,我们可以使用驱动jar包中的实现类完成操作数据库的功能。
jar包是JDBC接口的实现类,实现了JDBC的核心API功能。

3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
答:因为Driver接口的源码中,有静态代码块能够直接生成注册驱动对象:static{DriverManager.registerDriver(new Driver());}。使用反射可以提高程序的灵活性,降低耦合性。

4.请简述JDBC编程的步骤
答:
1. 导入驱动jar包
2. 注册驱动:Class.forName("com.mysql.jdbc.Driver");
3. 获取数据库连接对象 Connection
Connection conn = DriverManager.getConnection(String url, String user, String password);
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. 处理结果
8. 释放资源 stmt.close(); conn.close();

5.JdbcUtils存在的目的?
答:JDBCUtils提取了JDBC过程中重复出现的【获取Connection对象】和【释放资源】的代码,降低代码的冗余性。同时,通过配置文件引入Connection方法的参数,降低了程序的耦合性。

6.什么是SQL注入问题,该怎样解决?
答:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接,会造成安全性问题。PreparedStatement对象可以解决这个问题,预编SQL语句时使用“?”作为占位符,可以防止SQL注入。
回复 使用道具 举报
1.什么是JDBC,使用JDBC的好处?
关系型数据库连接java的一套规则(接口)
好处:
                程序员在开发数据库时,只用调用JDBC接口中的方法即可,不用再去关注类是如何实现的;
                具有多态的好处,即一套代码可以使用多种数据库;
2.我们导入的 mysql-connector-java-5.1.37-bin.jar包,有什么用,作用:里面有实现了JDBC接口之后的实现类
        关系:我们在使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类;
3.注册驱动为什么使用反射的方式,而不是像以前一样,我们new对象?使用反射又有什么好处?
作用:直接nwe的话,不管有没有用都会创建对象,而使用反射是只有要用到时才会创建对象,这样更节省内存,而且还有解耦作用;
        好处:
                可以在程序运行过程中,操作这些对象;
                可以解耦,提高程序的可扩展性;


4.请简述JDBC编程的步骤
1.注册驱动
2.获取连接对象
3.sql语句的书写
4.使用connection获取执行对象statement
5.statement.executorupdate(执行dml或ddl语句)
statement.executorquery(执行dql语句)
5.JdbcUtils存在的目的?
简化代码
6.什么是SQL注入问题,该怎样解决?
使用preparestatement
回复 使用道具 举报
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是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是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对数据库操作,能够使用同一套代码,去连接不同的关系型数据库,解放了程序员的双手,让程序员去做更有意义的事情

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:是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是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对数据库操作,能够使用同一套代码,去连接不同的关系型数据库,解放了程序员的双手,让程序员去做更有意义的事情

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的好处?
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注入问题。
回复 使用道具 举报
123
您需要登录后才可以回帖 登录 | 加入黑马