java.sql.*里的Connection接口PrepareStatement接口处理方法

有个问题真是想不通。我简单写一下代码。Connectioncon=null;PreparedStatementps=null;Stringsql="insertinto"... 有个问题真是想不通。
我简单写一下代码。
Connection con = null;
PreparedStatement ps = null;
String sql = "insert into " + tableName + " values(?,?)";
ps = con.prepareStatement(sql);
ps.setInt(1, id);
ps.setString(2, pwd);
ps.executeUpdate();
这些都是接口,方法都是抽象的,为什么能够处理以上内容,没有方法实现,接口也能处理这些东西吗?
展开
 我来答
百度网友afe836d
2011-07-21 · TA获得超过635个赞
知道小有建树答主
回答量:367
采纳率:50%
帮助的人:304万
展开全部
声明为接口类型,这在设计中叫向上转型。也运用到了java的运行时多态,虽然声明的时候用的是接口类型,但在获取对象实例的时候,返回给你的是一个实现了这个接口的实现类的实例,
ps = con.prepareStatement(sql);返回的就是一个实现了PreparedStatement接口的实现类的实例,您debug一下就可以看到。使用接口是为了更灵活,以后我换一个实现类,对您来说也是透明的,根本不需要知道的,如果您使用实现类声明,那您就要修改代码才能达到这样的效果。
shuaistar55
2015-11-05
知道答主
回答量:55
采纳率:0%
帮助的人:8.2万
展开全部
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class Demo {
public static void main(String[] args){
Connection conn=null;
try{
conn = DBUtils.getConnection();
String sql = "select 'Hello'as a from dual";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString(1));
}
rs.close();
st.close();
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtils.close(conn);
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嘻嘻哈撒
2011-07-21
知道答主
回答量:34
采纳率:0%
帮助的人:0
展开全部
不能抽象处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式