在Java中 Connection、Statement、ResultSet 、PreparedSta
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Java中 Connection、Statement、ResultSet 、PreparedSta相关的知识,希望对你有一定的参考价值。
在Java中 Connection、Statement、ResultSet 、PreparedStatement各是什么意思?Statement和PreparedStatement的区别是什么?两者各在什么情况下使用?
Connection是建立与数据库的链接,Statement算是一个连接的实例,用来执行SQL语句,ResultSet是查询后得到的结果集,得到结果后必须执行.next()方法
给你个我刚写的例子,区别很好理解的,我一般都用Statement,这是第一次用PreraredStatement 只不过是在后面赋值而已
public class Testpublic 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();
参考技术A 接口 Connection
与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。
接口 Statement
用于执行静态 SQL 语句并返回它所生成结果的对象。
接口 ResultSet
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
接口 PreparedStatement
表示预编译的 SQL 语句的对象。
Statement和PreparedStatement的区别和使用情况给你一个连接吧:http://www.cnblogs.com/raymond19840709/archive/2008/10/13/1309657.html
这篇文章写的还不错!
希望能帮到你。 参考技术B 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。 参考技术C Connection指数据库连接,只有连接数据库成功后才可以操作数据库
Statement和PreparedStatement:声明语句,封装SQL语句并执行更新或查询功能
ResultSet指查询结果集合,可以循环获取查询结果
Statement和PreparedStatement的区别:Statement指针对一些简单的SQL语句,不带参数,直接执行,而PreparedStatement在封装SQL时可以在SQL语句中配置参数(使用?),然后通过PreparedStatement的setString等方法设置这些参数,然后执行SQL语句。
使用情况主要看你的SQL语句是否带参数了。 参考技术D Connection指数据库连接,只有连接数据库成功后才可以操作数据库
Statement和PreparedStatement:声明语句,封装SQL语句并执行更新或查询功能
ResultSet指查询结果集合,可以循环获取查询结果
Statement和PreparedStatement的区别:Statement指针对一些简单的SQL语句,不带参数,直接执行,而PreparedStatement在封装SQL时可以在SQL语句中配置参数(使用?),然后通过PreparedStatement的setString等方法设置这些参数,然后执行SQL语句。
使用情况主要看你的SQL语句是否带参数了。
JDBC中使用的java中**Connection接口**的**prepareStatement**的实现在哪里?
【中文标题】JDBC中使用的java中**Connection接口**的**prepareStatement**的实现在哪里?【英文标题】:Where is the implementation of **prepareStatement** of **Connection interface** in java used in JDBC? 【发布时间】:2014-09-26 17:33:58 【问题描述】:Connection interface在java中prepareStatement在JDBC中的实现在哪里?
String sql = "update people set firstname=? , lastname=? where id=?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
我找不到连接接口的实现,我们直接调用连接接口的方法,但必须有实现连接接口的类。如果没有实现连接接口的类,那么它是如何工作的?
谁能解释一下?
【问题讨论】:
每个数据库都有自己的jdbc驱动,这个驱动有实现 其实Connection接口并不局限于任何特定的数据库厂商,它适用于所有数据库,那么驱动如何提供实现。 在我看来您并不真正了解接口的工作原理...... 【参考方案1】:...我们直接调用Connection接口的方法,但必须有实现Connection接口的类。
是的,你完全正确。 Connection
接口由 JDBC 提供程序库实现,而不是在 JDK 本身中实现,因为它特定于您正在使用的 RDBMS。所以有一个 MySQL Connection
实现,一个 SQL Server 实现,等等。您通常从 Driver
(直接或间接)获得 Connection
,您从 DriverManager
(直接或间接)获得,您从您的 RDBMS 的 JDBC 驱动程序 jar 加载。
【讨论】:
谢谢!!这取决于 JDBC 提供程序。以上是关于在Java中 Connection、Statement、ResultSet 、PreparedSta的主要内容,如果未能解决你的问题,请参考以下文章
Java学习笔记8.1.2 初探JDBC - JDBC编程步骤
Java学习笔记8.1.2 初探JDBC - JDBC编程步骤