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();
这些都是接口,方法都是抽象的,为什么能够处理以上内容,没有方法实现,接口也能处理这些东西吗? 展开
我简单写一下代码。
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();
这些都是接口,方法都是抽象的,为什么能够处理以上内容,没有方法实现,接口也能处理这些东西吗? 展开
展开全部
声明为接口类型,这在设计中叫向上转型。也运用到了java的运行时多态,虽然声明的时候用的是接口类型,但在获取对象实例的时候,返回给你的是一个实现了这个接口的实现类的实例,
ps = con.prepareStatement(sql);返回的就是一个实现了PreparedStatement接口的实现类的实例,您debug一下就可以看到。使用接口是为了更灵活,以后我换一个实现类,对您来说也是透明的,根本不需要知道的,如果您使用实现类声明,那您就要修改代码才能达到这样的效果。
ps = con.prepareStatement(sql);返回的就是一个实现了PreparedStatement接口的实现类的实例,您debug一下就可以看到。使用接口是为了更灵活,以后我换一个实现类,对您来说也是透明的,根本不需要知道的,如果您使用实现类声明,那您就要修改代码才能达到这样的效果。
展开全部
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);
}
}
}
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);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询