java各种连接数据库与操作数据库方法

//1.调用相应的数据库驱动对象
项目---》查找主件-->找到驱动文件后缀名为.jar

//2.通过在java类中 使用找到驱动类
 Class.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")

3。建立连接
   //这里数据库必须是相应的用户登录才能连接 不能用windows验证方式
   Connection con = DriverManager.getConnection
             ("jdbc:sqlserver://127.0.0.1:1433;DataBaseName=bbs(相应的数据库)","数据库用户名", "数据库用户密码");// 返回连接

4. 创建执行SQL语句的命令
String sql="select *from sysobjects"  //sql语句
   PreparedStatement ps=con.prepareStatement(sql);
  还一种可以传参数的sql语句
  例子 :
      String sql = "select * from sysosbjets where name=?";   //问号表示站位符
    设置 参数
       ResultSet rs = ps.executeQuery();
          rs.setInt(1,"列名"); //1指第几个参数 ,列名对应数据库中表列名
5.创建返回对象
   ResultSet rs = ps.executeQuery();//执行对数据库的查询操作 
  //循环出数据
   while(rs.next){
     rs.getInt("列明") ; //不同的数据类型用不同的getxxxx
    //注意getxxx是取值 ,setxxxx是设置值 
}
7.执行 增 删  改 操作
  int num= ps.executeUpdate();
  //返回受影响的 行数 也可以返回 布尔值

 //关闭连接   顺序是从小连接到大连接
  ps.colse();
  rs.colse();
  con.colse();

 

************************************************************
2,使用存储过程
    //数字指第几个参数
   CallableStatement cst = con.prepareCall("{call dbo.delcetUser(?,?)(这里指存储过程名字)}");
   cst.setInt(1, "相应类型的值"); //设置输入参数  
   cst.registerOutParameter(2, java.sql.Types.INTEGER(选择相应的数据类型)); //设置输出参数
   cst.execute();//执行
   cst.getInt(2,"数据类型") //得到输出的参数  2是指第几个参数

 /**怎么样使用Bathc批处理SQL语句*************/
     Bathc;
     1>利用Statement命令使用批处理
       Statement stmt= con.createStatement();
     //添加到Batch批处理中
      stmt.addBath("insert into dept2 values("asdf","男")");
      stmt.addBath("insert into dept2 values("asdf","男")");
      stmt.addBath("insert into dept2 values("asdf","男")");
     //执行批处理
      stmet.executeBatch();
     //关闭连接
     stment.close();
   
    2>利用PreparedStatement命令使用批处理
     PreparedStatement ps= con.preparedStatement("insert table values("?,?,?")");
       ps.setInt(1,12);
       ps.setString(2,"wangwei");
       ps.setDate(new Date()); //注意此处要处理NEW出来的DATE()
       //添加到批处理中
       ps.addBatch();
        ps.setInt(1,22);
       ps.setString(2,"阿士大夫");
       ps.setDate(new Date()); //注意此处要处理NEW出来的DATE()
       //添加到批处理中
       ps.addBatch();
      .......
//执行
   ps.executeBatch();
   ps.close();

*********
  注意以上要处理在本类处理异常
例子
try{

} catch(SQLEexception e){
    
}catch (ClassNotFoundException e) {
    e.printStackTrace();
}finally{

}


8888888888888888888888888888888888
/***处理可滚动的结果集***/
public static void main(String[] args) {
   // TODO Auto-generated method stub
   Connection con =null;
    PreparedStatement ps= null;
          ResultSet rs =null;
   try{
          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
           con =
           DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;dataBaseName=test","sa","123456");
       
           Statement sm = con.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY); //第一个参说是对于滚动不敏感,
第二个参数是可以跟新的结果集
 
          rs=sm.executeQuery("select * from test1 order by Id");
          rs.next(); //指向第一条数据返回布尔值
          System.out.println(rs.getString(1)); //获取第一条表中字段名索引为1的字段值
          rs.last(); //最后一条
          System.out.println(rs.getString(1));//获取最后一条表中字段名索引为1的字段值
          System.out.println(rs.isLast()); //是否是最后一条
          System.out.println(rs.isAfterLast()); //是否是倒数第2条
          System.out.println(rs.getRow()); //当前数据在多少行
         // ps=con.prepareStatement("");
   }catch(ClassNotFoundException cfe){
    System.out.println("找不到驱动");
   }
   catch(SQLException sqle){
   sqle.printStackTrace();
   }
   finally{
    try{
    // ps.close();
     rs.close();
     con.close();
    }catch(SQLException e){
     e.printStackTrace();
    
    }
   }
  
 
 }

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值