conn.createStatement() 这个东西不太明白,求解答 就是用conn连接创建一个statement对象,这个对象有executeUpdate方法执行传入的sql语句 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 主要是创建statement对象,对数据库进行一些操作... conn.createStatement() 可以理解成conn调用createStatement()方法么? 是调用这个方法啊然后可以生成一个Statement对象然后这个对象可以执行sql语句查询用executeQuery,返回一个Resultset结果集更新用executeUpdate,返回一个整数,即受影响行数 哦。。我是新手,再弱弱的问下,生成对象不是要用new关键字么? 生成对象可以用new,但是你可以把new这个过程外面封装一个方法来实现。 受教。。多谢,我只是想知道如果用“Statement stmt= new Statement()”这种方式可以么? 1、加载数据库驱动(Class.forName(DBDRIVER) ; // 加载驱动程序)。2、建立数据库连接池(conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;)。3、由当前数据库连接生成一个数据操作对象(stmt = conn.createStatement() ; )。4、用这个数据操作对象进行数据库操作(stmt.executeUpdate(sql) ; // 执行数据库更新操作)。5、关闭数据操作对象(stmt.close() ;)。6、关闭数据连接(conn.close() ; )。个人愚见:由于当前数据库操作对象是根据当前数据库连接来生成,每一个连接生成的对象是由当前连接来决定的。使用"NEW"的方式创建的对象跟当前连接没有关系,所以系统不知道该为这个对象使用哪一个数据库连接,造成多用户使用时产生错乱。 不可行,Statement只是一个接口,没有具体实现,必须通过conn.createStatement() ;来创建具体对象。 是的,必须通过数获得据库连接的对象conn 调用createStatement方法来创建Statement对象 明白了,createStatement是connection接口的方法,就是用来创建statement对象用的 其实我也是个菜鸟,不过我还是想说几句:连mysql ,是一系列的过程,这个过程有诸多对象参与:首先要有database的驱动,Class.forName(DBDRIVER) ;这里已经注册驱动了;有了驱动 就可以连接数据库了,这个连接当然与驱动关系密切,其实我们是“问”驱动要连接的conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;连接上数据库后,就要对数据库进行操作。连接这个对象不应该负责操作这一块啊,所谓不在其位不谋其政,但我们要对数据库进行操作,也必须经过连接之后才能将命令下达到数据库。于是我们向连接申请了一个操作对象:stmt = conn.createStatement() ;你的一切操作都经过操作对象传达给 数据库 服务器。这样说吧,大明统治全国,成祖(你)要向广西下道圣旨,首先广西要归附大明(注册了,朝廷就有专门管地方政权的部门 DriverManager ,广西就成为了一个可用的服务器);其次大明要与广西取得联系,有关部门于是修了驿站(connection);当时没无线电这种方便快捷的载体,只能用马(Statement)传递圣旨,这马不是路边的,是驿站的;于是永乐帝(你)就可以下圣旨了故先注册驱动,再向驱动索取连接,再向连接取操作,最后给操作一条命令让它执行//statement有陈述的意思。你可以认为它是一个向服务器表达你命令的对象演讲完毕,谢谢。其实我应该放你,没你的提问谁去想这问题啊 我也是这样想的,stmt实际上是一个实例化的对象,后面的conn.createStatement();是一个conn对象拥有的方法。因为conn对象含盖了与数据库连接的方法,所以是需要用这个conn对象中的方法来创建stmt对象的。流程大致是对象方法(DriverManager.getConnection(DBURL,DBUSER,DBPASS);conn.createStatement();)创建新对象(conn;stmt;),即接口中的覆盖思想,用覆盖的方式实现接口。可是发现这样想也有解释不了的地方,要实例化接口不是应该覆盖接口中的所有方法么,并且其中没有implements关键词。还有一个地方就是stmt.executeUpdate(sql) ,stmt只是用的conn.createStatement();对象方法来创建,哪来的executeUpdate(***);方法呢?希望有高手指点一下,这样想是对的么? java的对象串行化,一个文件只能保存一个对象吧,不能保存多个对象? java thread wait的用法 jvm的问题 关于TableModel 的 isCellEditable 方法 关于多态性的简单问题 操作符++ 求教 thinking in java例子的问题 java2核心技术卷I II 好多问题耶~~不知道有没有人愿意帮助我啊 关于jbuilder的问题? java Socket 聊天怎么实现私聊 求java实现植物大战僵尸的思路,文档,类图,谢谢!
然后可以生成一个Statement对象
然后这个对象可以执行sql语句
查询用executeQuery,返回一个Resultset结果集
更新用executeUpdate,返回一个整数,即受影响行数
2、建立数据库连接池(conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;)。
3、由当前数据库连接生成一个数据操作对象(stmt = conn.createStatement() ; )。
4、用这个数据操作对象进行数据库操作(stmt.executeUpdate(sql) ; // 执行数据库更新操作)。
5、关闭数据操作对象(stmt.close() ;)。
6、关闭数据连接(conn.close() ; )。个人愚见:由于当前数据库操作对象是根据当前数据库连接来生成,每一个连接生成的对象是由当前连接来决定的。使用"NEW"的方式创建的对象跟当前连接没有关系,所以系统不知道该为这个对象使用哪一个数据库连接,造成多用户使用时产生错乱。
连mysql ,是一系列的过程,这个过程有诸多对象参与:
首先要有database的驱动,Class.forName(DBDRIVER) ;这里已经注册驱动了;有了驱动 就可以连接数据库了,这个连接当然与驱动关系密切,其实我们是“问”驱动要连接的conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;连接上数据库后,就要对数据库进行操作。连接这个对象不应该负责操作这一块啊,所谓不在其位不谋其政,但我们要对数据库进行操作,也必须经过连接之后才能将命令下达到数据库。于是我们向连接申请了一个操作对象:stmt = conn.createStatement() ;你的一切操作都经过操作对象传达给 数据库 服务器。这样说吧,大明统治全国,成祖(你)要向广西下道圣旨,首先广西要归附大明(注册了,朝廷就有专门管地方政权的部门 DriverManager ,广西就成为了一个可用的服务器);其次大明要与广西取得联系,有关部门于是修了驿站(connection);当时没无线电这种方便快捷的载体,只能用马(Statement)传递圣旨,这马不是路边的,是驿站的;于是永乐帝(你)就可以下圣旨了
故先注册驱动,再向驱动索取连接,再向连接取操作,最后给操作一条命令让它执行//statement有陈述的意思。你可以认为它是一个向服务器表达你命令的对象演讲完毕,谢谢。其实我应该放你,没你的提问谁去想这问题啊
流程大致是对象方法(DriverManager.getConnection(DBURL,DBUSER,DBPASS);conn.createStatement();)创建新对象(conn;stmt;),即接口中的覆盖思想,用覆盖的方式实现接口。
可是发现这样想也有解释不了的地方,要实例化接口不是应该覆盖接口中的所有方法么,并且其中没有implements关键词。
还有一个地方就是stmt.executeUpdate(sql) ,stmt只是用的conn.createStatement();对象方法来创建,哪来的executeUpdate(***);方法呢?希望有高手指点一下,这样想是对的么?