在Java中 Connection、Statement、ResultSet 、PreparedSta

在Java中Connection、Statement、ResultSet、PreparedStatement各是什么意思?Statement和PreparedStatem... 在Java中 Connection、Statement、ResultSet 、PreparedStatement各是什么意思?Statement和PreparedStatement的区别是什么?两者各在什么情况下使用? 展开
 我来答
11曰贰日11
2013-06-20
知道答主
回答量:9
采纳率:0%
帮助的人:6.2万
展开全部

 Connection是建立与数据库的链接,Statement算是一个连接的实例,用来执行SQL语句,ResultSet是查询后得到的结果集,得到结果后必须执行.next()方法

给你个我刚写的例子,区别很好理解的,我一般都用Statement,这是第一次用PreraredStatement   只不过是在后面赋值而已

public class Test {
 public static void main(String[] args){
  String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
  String dbURL = "jdbc:sqlserver://localhost:1433;  DatabaseName=LIBRARY";
  String userName = "sa";
  String userPwd = "";
  Connection dbConn;
  Statement stmt;
  PreparedStatement ps;
  try {
   Class.forName(driverName);
   dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
   stmt = dbConn.createStatement();
   ResultSet rs1 = stmt.executeQuery("select *from borrow where uno = 2011111276");
   System.out.println("statement:");
   while (rs1.next()) {
    System.out.println(rs1.getString(1)+"  "+ rs1.getString(2));
   }
   
   
   
   ps = dbConn.prepareStatement("select *from borrow where uno = ?");
//注意这句
   ps.setString(1, "2011111276");

   ResultSet rs2 = ps.executeQuery();
   System.out.println("preparedstatement:");
   while (rs2.next()) {
    System.out.println(rs2.getString(1)+"  "+ rs2.getString(2));
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}
qinpeng100423
2013-06-20 · TA获得超过254个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:62万
展开全部
接口 Connection
与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。
接口 Statement
用于执行静态 SQL 语句并返回它所生成结果的对象。
接口 ResultSet
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
接口 PreparedStatement
表示预编译的 SQL 语句的对象。
Statement和PreparedStatement的区别和使用情况给你一个连接吧:http://www.cnblogs.com/raymond19840709/archive/2008/10/13/1309657.html
这篇文章写的还不错!
希望能帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上官箫竹
2013-06-20 · 超过10用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:15.7万
展开全部
Connection是数据库连接,对数据库的任何操作都需要先建立数据库连接,Statement是在已建立数据库连接conn的情况下向数据库发送执行不带参数的sql语句,是一个对象。ResultSet
是结果集对象,例如ResultSet rs = st.executeQuery(sql),查询的结果集返回并保存在rs结果集中。PreparedStatement是预处理sql执行对象。比如:
perstmt = con.prepareStatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)");
perstmt.setString(1,var1);
perstmt.setString(2,var2);
perstmt.setString(3,var3);
perstmt.setString(4,var4);
perstmt.executeUpdate();
它是先将sqL语句预编译,我们只需要想预编译的sql中传入参数即可。从个方便考虑来说,熟练后我们最好全部使用paredStatement而不用Statement。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
育知同创教育
2018-08-01 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
Connection指数据库连接,只有连接数据库成功后才可以操作数据库
Statement和PreparedStatement:声明语句,封装SQL语句并执行更新或查询功能
ResultSet指查询结果集合,可以循环获取查询结果

Statement和PreparedStatement的区别:Statement指针对一些简单的SQL语句,不带参数,直接执行,而PreparedStatement在封装SQL时可以在SQL语句中配置参数(使用?),然后通过PreparedStatement的setString等方法设置这些参数,然后执行SQL语句。
使用情况主要看你的SQL语句是否带参数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7c5f967
2013-06-20 · TA获得超过324个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:185万
展开全部
Connection指数据库连接,只有连接数据库成功后才可以操作数据库
Statement和PreparedStatement:声明语句,封装SQL语句并执行更新或查询功能
ResultSet指查询结果集合,可以循环获取查询结果

Statement和PreparedStatement的区别:Statement指针对一些简单的SQL语句,不带参数,直接执行,而PreparedStatement在封装SQL时可以在SQL语句中配置参数(使用?),然后通过PreparedStatement的setString等方法设置这些参数,然后执行SQL语句。
使用情况主要看你的SQL语句是否带参数了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式