00:00
好了,接下来咱们继续再往下,我来给大家举一个例子,在什么情况下必须使用它行吗?好,我们来看一下京东。京东商城呢,我们呢。随便点个手机啊,点完之后呢,我们来看一下各位啊,这里有一个什么价格,看见了吗?我点这个就升序,我再点它就是降序吧,那我问大家升序和降序这种东西。升序和降序的这个东西,是不是就相当于我们需要往circle语句的最末尾拼一个order,什么什么什么de或者是as啊,我们是不是就相当于点升序就往这拼一个as,点降序就往这拼一个DEC,是不是就是降序啊?好,我问大家,如果您用的站位符会出什么问题?
01:06
您要是用站位符调用的set string这个方法给第一个问号传值传的是什么DEC的话,它会把这个问号变成单引号,单引号DEC这个不符合S语句的执行规范,是不会报错。你懂我说的意思吧,就是说我们这个业务方面要么必须进行注入,必须支注入的时候起。什么时候用?面试官问的话什么时候用,你怎么答?当我们项目开发过程当中,如果这个地方需要SQ注入的话,需要进行SQL语句拼接的话。
02:00
必须是用来statement。如果只是单纯的给SQL语句传值。个听了吗?好,那咱们一块来做一下吧。行不行,咱们就写一个升序降序的例子,各位啊,在这块呢,咱们直接创建一个新的类class叫g dbc test的零八,然后接下来我们呢,把这块啊给它打开之后啊来写我在这里呢演示一个什么,就是用户在控制台输入什么DC就是什么,降序明白输入什么呀,A就是什么AC就是升序可以吧。好,接下来我们直接都写到闷方法里边的各位啊,我们为了节省时间怎么写scanner s等于new一个什么scanner吧,诶,这个地方是c in吧。好,接下来我们这块呢,有了它之后呢,我们可以输出一句话对吧?哎,请输入什么?哎,请输入DC或AC明白吧,哎或ancdc表示降序A。
03:18
而是什么生畜?那么接下来在这请输入可以吧,哎,叫请输入啊,请输入那s.next LA这个方法我们是不是就可以拿到用户输进去的东西啊,哎,Keyword关键字啊,拿到它之后呢,执行什么circleq。诶能看懂吗?执行是不是GD6步又来了,GDP变成六步的话,咱们写吧,是不是,哎接下来再往下是谁呀?诶我们先这个行d statement啊,然后接下来我们这块呢,加一个那可以吧,然后再往下是不是再往我们是不是点写上点circle.jd bc driver啊好,那么再往下我们这一块是不是直接加一个开啊好加一个finally吧,诶加一个finally啊finally好了,那这块的话我们就直接判断一下,如果说我们的一个RS呀,只要它不等于空,给它关闭掉,然后呢,给它加上去TRY,然后呢,把这个代码我们直接给它拿过来,放到这放到这儿,然后这块呢,咱们给它改改叫做connection是不是,然后这块呢,给它。
04:45
改成connection,然后再往上呢,我们这块给它改成prepare statement,然后再往下改成prepare statement,好改完之后呢,再往下这块怎么写啊,我们获取连接connection再写一遍driver什么manager是不是点get什么connection对吧,参数GBC冒号买circle local host3306北京power是不是,哎往后哎哟这个地方。
05:13
用户再来一个,呃,333好了。Yeah。异常。然后接下来呢,我们再往下这块怎么写啊,这不就是注册驱动吗?这个是获取连接吧,哎,获取再往下干啥?获取预编译的数据库,操作对象等于点,然后。对吧?问号这边是DC或者是什么AC吧,我们先演示一下这个问号的方式,那你编译之后需不需要给这个问号赋值啊,站位符吧,Set论吧set论给第一个问号赋值,赋什么值用户在这里输进去的是什么,你就附什么值吧,然后接下来是不是执行什么SQL吧,你先写SQL语句框架,然后编译SQ语句,给站位符号传值,传完值之后执行 SQps.X q query这个方法,返回结果集query啊,然后呢,它会返回一个结果集,对不对?好,那么结果集返回之后,电历吧,是不是遍历结果集?好Y要循环 Rs.next如果有数据的话,我们把这个一类米取出来啊,取这个的话输出r s get string呗,直接在这写示谁就行了,内白好,这个代码能看懂吗?
06:55
能不能看明白,好,那接下来这个程序能执行吗?报什么告诉我。
07:03
报什么错?你能猜出来报什么错吗?SQL语句的语法是不是错误,是不是好?D走一个。报错了,大家看,这是my circle的语法异常。对不对,他说你的买思后语法有一个错误,错误集中在哪,DC两边带了一个什么单引号吧,好各位,那这个代码您是不是就必须得用statement了,对吧?来注意啊,把这怎么着个全部注释掉,各位注释掉之后我把上面的代码我拷贝一份,我改了各位啊,我改一下注意看啊注意看来各位怎么改啊,把哪改一下就行了,把这改成谁statement,这再改回去吧,改回去之后下边是不是这个改一改,好各位这改了之后再改哪circleq语句你只能给它挪到什么地方获取,叫数据库操作对象吧,然后这块删了得了,删了吧,删了行吧,删了啊来这块删掉删掉,然后这块删掉我们重新写。
08:18
获取数据库对象等于点create statement是吧?然后接下来执行语句,是不是先把语写上啊,怎么写啊,就是这样写,然后把这个改成什么就行了,加号加谁keywords。这个keywords是不是做这块拼接。能看懂吧,好,那么SQL语句有了之后怎么执行SQL语句PPS不是诶,哦,statement.xq query是吧?执行是传进来L语句往这一传执行结果。是不是变列好,接下来大家看这种情况,我们再去执行执行来这边我们输进去什么呀,DC大家看是不是就是降序。
09:08
我们再执行一次as sc是不是就是升序呢?能看懂吧,那么大家出去面试,您可千万别贬低这个,各位啊,您一定要把这个说清楚,说如果这个确实。听懂了吧?目前这两种类型仍然都并行存在,就意味着每种类型存在,它自然有自己的道理。这个东西它有自己的用处,不能随便来啊,不是说我们学了啊,这个prepared STEM就一定好啊,不是这个意思,在不同的情况我们使用不同的类型。那你得会会会灵活变动。啊,灵魂变动。
我来说两句