当前位置: 移动技术网 > IT编程>开发语言>Java > java_第一年_JDBC(1)

java_第一年_JDBC(1)

2019年09月25日  | 移动技术网IT编程  | 我要评论

深圳 医院,kb944043,科技天阅网

  jdbc(java data base connectivity),用于实现java语言编程与数据库连接的api。

jdbc体系结构由两层组成:

  •   jdbc api :提供java应用程序到jdbc管理器的连接
  •        jdbc驱动程序api:支持jdbc管理器到驱动程序的连接

建立jdbc连接:

  • 导入jdbc包:
import java.sql.*

 

  • 注册jdbc驱动程序并创建连接对象conn:
class.forname("com.mysql.jdbc.driver");
connection conn = null;
conn = drivermanager.getconnection("jdbc:mysql://hostname:port/db_name","db_username","db_password");
conn.close();

这样,我们的jdbc连接即已建好。

交互

连接建立后,通常通过jdbc statement、callablestatement和preparestatement这3个接口进行交互。

  • statement:用于使用静态sql语句,不能接受参数;

创建statement对象:

statement stmt = null;
try{
    stmt = conn.createstatement();               
}catch(sqlexception e){
     ...
}finally{
     ...    
}    

该对象常用的3种方法:

boolean execute(string sql ):检索sql运行后结果是否存在,有则返回true,没有则返回false;

int executeupdate(string sql):检索sql语句所影响的行数,常用于会影响多行改动的sql语句,如insert、update、delete;

resultset executequery(string sql):返回运行后的结果集合,常用于select;

关闭statement对象:

finally{
    stmt.close();     
}
  • preparedstatement:扩展了statement接口,可支持动态,可接受参数,参数类型只使用in;

创建preparedstatement对象:

preparedstatement pstmt = null;
try{
    string sql = "update employees set age = ? where id = ?";
    pstmt = conn.preparestatement(sql);
    ...        
}catch{
    ...
}finally{
    pstmt.close();
}

其中?即表示要输入的参数。通过stmt.setxxx(number,value);输入参数,其中xxx表示参数数值类型,number表示?在程序出现的位置,从1开始计数;value表示输入参数的值;

statement对象可用的3种方法都可以使用。

  • callablestatement:相比于preparedstatement对象,其参数类型有in、out、inout三种;

创建callablestatement对象:

callablestatement cstmt = null;
try{
    string strsql = "{call getempname(?,?)}";
    cstmte = conn.preparecall(sql);
    ...
}catch(sqlexception e){
     ...  
}finally{
     cstmt.close();
}

对比前面的3种方法,callcblestatement多了一种方法:registeroutparameter(),该方法将jdbc数据类型绑定到存储过程并返回预期数据类型。

当调用存储过程,可以使用适当的getxxx()方法从out参数中检索该值。 此方法将检索到的sql类型的值转换为对应的java数据类型。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网