00:00
大家看我这个get connection to这个方法,如果再说的话,这方法还有什么毛病啊,他是不是每一次调这个方法,我都需要去读那个文件啊,哎,这个缺点有点不好,那只要就是我们在一个项目里边,我读这个文件读一次就可以。那这块的话呢,我们还可以有待加强,后边我们还有做出调整,此外的这个代码应该还是不错的,好,下面我们看哈啊,有了数据库链接以外能干什么?我们说什么都能干,比方说对对应数据表进行天山改查操作就都易如反掌了,对,我已经获取到了这个数据库链接,我就什么都可以干。瞅瞅吧,下一个public,那我们下个目标是什么呢?下一目标就是啊,我要向数据表里边插入一条支路,向指定的数据表中。
01:16
中插入一条,记住当然是什么呀,按是通过账va应用程序,而不是通过直接把那个嗯,PF circle口啊,直接通过circle口来操作,比方说直接这样写到circleq就是操作,当然不是这种,而是通过Java应用程序,通过hpc向一定的数据表记录,那我首先搞一下这个数据表吧。艾特,硅谷有个TT,这个不好。新建一张数据表,那新建数据表的话呢,一方面我们可以通过图形界面的方式来建。
02:06
创建一个吧,这样好像也比较方便,叫customer,然后加一个ID in型组件PK,加一个M银子。What two?我这长度是20,这个呢是好再写一个email。Age吧。一秒,一秒前。我差25,再写一个生日,这就行行了。
03:08
Save。OK,好了打开,哎,这就是我文建的数据表,那我们下边我们想干什么呢?我们想上这个里边去添加一条记录,好了,在添记录之前呢,我们再来看你看一下这个数据表哈,On the table,其中呢,呃,这个是主键,那在买circle里边如何生成主线值呢?它有一个特性叫autorement,它可以去争好我先选上它保存。好,我们看看它怎么可以自征了,注意哈,这里边一共是有四个字段,在这有name email birth,还有一个,呃,这个ID,那我先这样来写一个,大家看insert into。
04:00
然后我放什么呢?我放的是name name email啊,Birth value,看啊,Name我写一个abcd啊,Email我写个abcd。回复点看后边这个啊,引会引起来,比方说1990年12月12号好,我执行。执行NF9就可以好了,他说这个表不存在。Customers了吗S?
05:02
他是。对啊对吗?刚才咋不对了就行。啊,这个成功了,注意哈,我插的时候我是不是没有插什么呀,我是不是没有插那个没有插ID呀,好,我们看看这数据表,数据表刷新一下这个是不是一呀,会自征,就是它会自己帮我们生成主件,所以说我们在插入的时候呢,写一个类似于这样的搜狗语就可以,这是呃买搜狗的一个特性,这是我们需要注意的一个地方,好回来我们看如何用JDBC来插入,那那JDBC插入的话呢,我们想想这个步骤哈,第一步应该是获取数,获取数据连接,有连接是吧?好了,有链接的话呢,连接是什么呀?哎,我跟他连起来,跟数据库连起来了是吧?所以说第二步永远都不要忘了是吧,需要关闭链接。
06:21
好,第三步,那我想干什么?我想插入交换什么准备。插入啊,Circle语句肯定需要有它第三步,好,第四步我们说啊插入,那我这块的话呢,我这个插入啊,不是用connection connection没这个本事啊,而是用另外一个对象叫statement,所以说这一步呢,就要分一下一步是获取,嗯,操做。Circle语句的statement对象。
07:06
这也是一个裂口,好了,获取完这个对象之后,第二步调用。Statement对象的execute update,传一个circle啊,执行。CIRCLE1句进行插入这么几个步骤,那关闭链接同时还需要干什么呀,要说是第五步的话,还需要关闭statement一下步骤,就这样我们分析一下啊,首先的话呢,我们考虑。要。执行一个插入操作,所以说我们肯定有都有数据库链接好了,连上了就要关,然后的话呢,你要执行插入必须得有一个circle口,必须的好了connection不能够进行插入,我需要这是一个statement,所以说我先需要获取这个对象,从什么获取啊,调用的一个方法。
08:15
的方法,方法获取啊,需要将这个方法,至于说如何实现的,具体数据库执行的方式还不一样,反正我们都这方法能获取出来,然后啊这个进行插入,这个也是跟数据库链接的对象之一,它也需要关,这就可以,一共就这几个步骤,CTRC,诶完明白啊,第一个connection。等于get connection to过去第二个,那我需要一常暂时先抛出去,一会我们处理一下啊啊,最后一个one connection.close很长,好了,准备一个circle string circle等于这什么呢?那我们写的在这里面写的一模一样的CTRC。
09:21
我们写的那个一模一样。我们可以把这个改一下。XYZ。1990年OK,然后看这个吧,我先需要获取一个看着这个不是哈,这是谁的呀?哪Java的呀,这是Java的,这是买circleq的吧,你要用Java的吧,是吧,这个你要用这个的话,是不是就跟买色Q的API相耦合了啊,我先要用这个买色Q。
10:05
Statement等于点获取,好了执行。Statement execu update。传入一个circle就可以,Circle好了,关闭statement close好了,我们考一下,看一看是不是真的能插进来,我刷新没有啊。好一下,用剑。好,执行失败。他说这个email啊,并不在我这个语法有问题看看。往后翻,他说什么呢?啊,36行这行有问题,执行不了,为什么不为什么执行不了呢?Email我看一下这个我从里边复制的吗?没。
11:11
好,复制出来啊。什么毛病啊,他说不知道有,不知道有这么一列吧,是吧,他说不知道有一没有这列写错了。是不是后面哪块有分号啊,对,就是没有分号啊。没有分号的话呢,还是报这个错误,他说没有这个这一列,嗯,我打一下这个。再看一遍。C我拿这块我我来我来执行一下。
12:03
这个来他整中右键执行F9,他是不是真成功了呀,我刷新。这是没有问题的呀,是吧,的确是可以插进来,然后的话呢,他这块给我报一个什么错呢,他说没有email这一例打游戏有关系吗?实际上我们知道这个呃衰后是不是不具打条线啊是吧。都是一样的呀,我看看我连的是谁,我连的是my circle还是Oracle,这个很重要。是买circleq吧,哦,写错了,T里边没有这个数据,硅谷艾硅谷这个数据库啊,这数据库是at硅谷而不是guest,这里边没有这个数据表啊,或者这边也有一个customer,太恶心了,这里边是不是没有那啥呀?是不是没有email啊,这个能明白为什么出问题了吧?也有这个数据表,但是没有这个数据,列好了再跑。
13:17
行了,我再刷一下好了,这这是三,我给他删除再看一遍没有啊,再跑一下。对,这个时候这个ID就是四个没问题,可以给它插进来,好了,回回过头来看,哎,这么一看的话呢,我们执行这个,嗯,修改操作还挺容易的,实际上不只是插入啊,修改和删除都是一样的,这里边我们看我们需要注意的点有几个,第一个那我们学了一个对象啊,Statement,用于执行circle语句的对象,好了一点,第一点通过。
14:18
什么方法create statement方法来是第二个啊通过什么呢?这个方法update这个circle啊,可以执行circle语句,可以执行circle语句看到了。此外的貌似再没啥了,然后再说吧,刚才我们看到一个什么呀,我执行的是不是一个in色呀,同样circle可以是insert update也可以是delete,主除了一个以外是吧,不能是select传入的。
15:08
Circle可以是in update或delete或都可以,不能是不能是好什么时候select,我们可以说select牵扯到另外一个,呃,JDBC的API叫S,那我们一会来说。好吧,看还有什么需要注意的呢?啊,需要注意的就是说这个connection是什么呀?Connection是应用程序跟数据库的一个链接,我们用完这个connection之后一定要进行关闭。包括STEM都是应用程序和数据库服务器的链接资源,使用后,使用后一定要关闭,OK,好了,既然说使用后一定要关闭的话,我们这个程序就有一点小问题。
16:21
什么问题呢?比方说我更我这个这个这个更更新更新完了哈,我这个时候出了一个异常,你说我这个时候要是44号出异常的话,我是不是关不了了,那关不了的话,那不出问题了。所以说我呃平铺的这么关的话可能会有问题,那什么时候关好,我说我出异常的时候我也要来关statement应该怎么办呢?然后需要在要在finally中关闭。
17:00
和这对项好,那既然这样的话,我们这个程序这个写法可以再再写一下,怎么写呢?就是说我异常可以不处理,但我链接一定要关闭,再说一遍啊,异常可以不处理,但我链接一定要关闭,于是connection等于好,因为你要用它。然后这个下就这吧,于是这个是等于它这个是statement,哎,异常可以不处理,但这个资源一定要封闭,把这个用带开纸包起来。好的话,这个我们这么不理一定要资上啊啊那我关这个的时候又有问题了是吧?没问题啊,我如果要是关这个出一长的话,这个家伙是不是不一定能关呢,怎么办?再出来开始,但这这不开始我我出来串一下啊,你会看这个程序有点恶心。
18:23
再再看,然后再写个什么看看,就是嵌套的,再看看OK,为什么要这么写呢?就是因为我关这个的时候出异常,我要保证它也被关闭,所以说这个程序就是finally try cash finally,但这个程序呢,我们可以写的不这么复杂。那目前这么写也也也没什么问题是吧,而且你在具体关的时候,你保证什么呀,你得保证这个connection跟statement不能为空吧,那再写吧,判断一下if statement不等于now的时候我再关。
19:05
这也一样,If不等于空的时候我再关,这个时候的话,这个程序相对而言比较完整啊,再说一个三关闭的顺序是什么样的,关闭的顺序是先关什么呀,先关闭后获取的。B、先关闭statement,后关闭connection。就像穿衣服一样是吧,我先穿内衣再穿外衣,你脱的时候先脱什么呀?对,脱的时候先脱内衣,那是在一些极致的情况下是吧?啊,先脱内衣正常,我们只是正常情况先脱外移,再托内移好了,这就是我们使用statement,我们看一下几点,第一个啊,我通过connection的这个方法来获取statement,第二个我通过这个方法可以执行circle语句,第三个重入的circle可以是insert update delete,但不能是select。
20:28
Connect statement都是对应的数据库连接资源,所以说一定要关闭,怎么关呢?在finally里边关于是我们写了一个比较奇葩的啊,Finally嵌套try finally,但是这个我们到后边的话呢,我们有办法可以改进,暂时先这么写看着啊,这个是我会保证这关statement关的时候还可能有常,那这个再放在一个最后一个关闭的顺序,先关闭后获取的,既先关闭statement后关闭connection,好了,我写的是一个新增,大家看一下这个程序,然后你考虑一下如何写一个删除和修改呢。
21:13
下课先休息一会,那我刚才我写了一个添加大的目标的话呢,是写,呃删除跟修改,我直接在我这个基础上我来改了啊那。嗯,Circle等于,这是第一种情况,第二种情况看着,嗯,Circle等于我写的比例from customer where ID等于,ID等于几?等于一吧,把一干掉,一好了,缓一下。看数据表一是没了呀,啊,这就是删除,你再写一个修改就感觉改四了哈,Circle等于page said。
22:20
Name等于。嗯。YID等于四,Y4的名字改为。看效果啊,XYZ改了吧,这样的话呢,我们那个操作就成功了,就是说我们执行添加删除修改的逻辑是一样的,那于是的话呢,大家会有一个什么想法没有,会有一个想法就是我能不能写一个通用的更新的方法,这个更新包含添加修改和删除。
23:15
写一下看看效果,写一个通用的更新方法,Public update,看着写法啊,我们说这是一个通用的更新的方法,包括什么呢?包括ex色。可以执行颜色。阿八和。能执行这样的一些语句,在想吧,写这么一个方法的话,需要接受什么参数啊,肯定需要接受一个circle口吧,是吧,运行的这个的话呢,我们叫第一个版本吧。
24:07
版本一版本一就是说这个版本呢,还会有很多不成熟的地方,它是可以用的,好我们来写一下,那既然传了一个circle的话,跟后边绝大部分都一样,Connection不是我不写了啊,刚才已经写过了,等于now,然后。等于。好,Try connection等于connection to链接,然后statement等于点create statement.update circle口写完好有一常一点,然后的话呢,这块我们要快币链接,链接if。
25:07
Connection不等于闹他。保动必须要关掉,为什么呢?Connection点顺序有问题啊,有异常抛一下一吐,点上一个好,这个时候的话我们不写那个特别纠结的那个什么了,外盖finally,然后欠一个finally,这样写也可以。你看懂吧,一辈子出异常的话,我是不是逮住了呀,后边是不是可以接着执行啊,好了啊,这就是我们写的通用的这个update的方法,测试的话呢,我不写了啊,跟后边是一样的,写完这个之后的话呢,我们发现这样的一个问题,就是我每一个方法都需要get connection,是不是都需要关闭资源啊?于是我可以把获取链接这个方法和关闭资源这个方法放到一个工具类里边,工具类干什么事呢?第一个获取链接,第二个关闭资源,实际上他干的不止这些,还能干别的哈啊,暂时我们先写这个,比方说事物的提交回滚啊等等,哎,我们先写这么一个类,叫tdb CU q。
26:36
PDBB也可以啊,工具类。啊对,工具类里边的话呢,包含几个方法,第一个获取链接的方法啊,方法的话前面我们已经写过了,我们直接找。说这个方法。Control c。
27:03
掉应该用什么方法啊?工具方法叫静态方法,那这个叫请看。啊。也不需要改工具方法,首先包做接DBC的工具类,然后其中封装的一些工具方法有什么呢?第一稿要获取链接的方法,当然这个也是一了啊,我们说一。嗯,回头我们这个方法我们还得升级,比方说我们不能说每进行一个操作都获取一个链接,回头我们会学习数据库连接值,这是后边的事儿啊。
28:05
然后这方法是通过读取配置文件,从数据库无故器获取一个链接。看看这个事好了,还有个方法,看关闭数据库资源的public release吧。你意思布局资源到到子不接也情好了,问什么呢?翻一个statement。再关一个好,怎么关呢?关的方法就这么写,关的方法。
29:01
这儿不是这个上面。TRC来关闭数据库资源的方法就这么写,CTRLC的F。行,这是里边的两个方法,关闭,关闭什么呀,关闭和。可以关闭它,好吧,这是我们的这个connection好了,就是这两个之后的话呢,这个方法会更酷一些。PBC点怎么关这么关DABBC做点意思对吧,好,这就是我们这个,嗯,通用的,那它可以干什么呢?它可以执行添加。
30:07
修改删除操作。
我来说两句