1.statement的cancel方法:发生一个kill query 服务的线程id
2.statement的close方法 :发生一个command到服务器端(对于serverPrepareMent),其他的statement都是 关闭所有resultSet
3.获取information_schema.processlist,找到对应语句执行的id,然后执行kill命令
执行静态SQL语句。通常通过Statement实例实现。执行动态SQL语句。通常通过PreparedStatement实例实现。
Statement
每次执行sql语句,数据库都要执行sql语句的编译
,最好用于仅执行一次查询并返回结果的情形,效率高于PreparedStatement
你只知道什么是接口,却不知道为什么要使用接口。听说接口回调这个说法吗。你必须关心statement是怎么来的。
Statement statement=connection.creStatement()
问题就在这句话里面。 connection.creStatement()返回的到底是什么?
请你仔细想好再回答。
其实connection.creStatement()返回的是一个实现了statement接口的类。
当然你不知道到底是哪个类,你只要知道它实现了statement接口就行,然后用接口的引用去指向那个类就叫接口回调。 你想想,你要开灯只要按一下那个开关,相当于那个接口引用,至于那个开关具体是怎么实现开关灯功能的你不知道,你也不需要知道,对使用者来说,这就是接口的一大好处。因为具体返回哪个类由Connection类来决定,而且恰恰那个类也不用你写。
那么现在你应该知道 了,statement.execute()实现了没有。 也就是人家帮你实现了那个接口,你只管用,不用关具体怎么实现的,因为,那个方法需要什么参数,有什么功能在接口里已经写的很清楚了。
再给你一个接口回调的例子。迭代器的实现
HashSet set=new HashSet()
Iterator it=set.iterator()
由hashset来决定怎么去实现iterator接口,你只管定义接口引用,然后就去使用接口里有的方法就行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)