JDBC连接sql server数据库的步骤

JDBC连接sql server数据库的步骤

1 、加载JDBC驱动程序(只做一次):  
     在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),  
     这通过java.lang.Class类的静态方法forName(String  className)实现。
    成功加载后,会将Driver类的实例注册到DriverManager类中。  
  2 、提供JDBC连接的URL  
    •连接URL定义了连接数据库时的协议、子协议、数据源标识。  
     •书写形式:协议:子协议:数据源标识  
     协议:在JDBC中总是以jdbc开始  
     子协议:是桥连接的驱动程序或是数据库管理系统名称。  
     数据源标识:标记找到数据库来源的地址与连接端口。    
  3 、创建数据库的连接(Connection)  
     •要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,  
      该对象就代表一个数据库的连接。  
     •使用DriverManager的getConnectin(String url , String username ,   
     String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和  
      密码来获得。
  4 、创建一个Statement  
     •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下 3 
      种类型:  
       1 、执行静态SQL语句。通常通过Statement实例实现。  
       2 、执行动态SQL语句。通常通过PreparedStatement实例实现。  
       3 、执行数据库存储过程。通常通过CallableStatement实例实现。  
     具体的实现方式:  
         Statement stmt = con.createStatement() ;  
        PreparedStatement pstmt = con.prepareStatement(sql) ;  
        CallableStatement cstmt = con.prepareCall( "{CALL demoSp(? , ?)}" ) ;  
  5 、执行SQL语句  
     Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate  
    和execute  
     1 、ResultSet executeQuery():执行查询数据库的SQL语句  
         ,返回一个结果集(ResultSet)对象。  
      2 int  executeUpdate():用于执行INSERT、UPDATE或  
         DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等  
      3 、execute():用于执行返回多个结果集、多个更新计数或二者组合的  
         语句。  
    具体实现的代码:  
           ResultSet rs = pstmt.executeQuery() ;  
           int  rows = pstmt.executeUpdate() ;  
           boolean  flag = pstmt.execute() ;  
  6 、处理结果  
     两种情况:  
      1 、执行更新返回的是本次操作影响到的记录数。  
      2 、执行查询返回的结果是一个ResultSet对象。  
     • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些  
       行中数据的访问。  
     • 使用结果集(ResultSet)对象的访问方法获取数据:  
      while (rs.next()){  
          String name = rs.getString( "name" ) ;  
          String pass = rs.getString( 1 ) ;

     }   



JDBC连接sql server数据库代码


import  java.sql.Connection;
import  java.sql.DriverManager;
import  java.sql.PreparedStatement;
import  java.sql.ResultSet;
import  java.sql.SQLException;
import   org.apache.log4j.Logger;

public  class  BaseDao {
     // 使用log4j记录日志
     private  static  Logger logger = Logger.getLogger(BaseDao. class );
     // 连接驱动
     private  static  final  String DRIVER =  "com.microsoft.sqlserver.jdbc.SQLServerDriver" ;
     // 连接路径
     private  static  final  String URL =  "jdbc:sqlserver://localhost:1433;databaseName=MySchool" ;
     // 用户名
     private  static  final  String USERNAME =  "sa" ;
     // 密码
     private  static  final  String PASSWORD =  "sa" ;
  
     //静态代码块
     static  {
         try  {
             // 加载驱动
             Class.forName(DRIVER);
         catch  (ClassNotFoundException e) {
             e.printStackTrace();
         }
     }
    
     //  获取数据库连接
     public  Connection getConnection() {
         Connection conn =  null ;
         logger.debug( "开始连接数据库" );
         try {
             conn=DriverManager.getConnection(URL, USERNAME, PASSWORD);
         } catch (SQLException e){
             e.printStackTrace();
             logger.error( "数据库连接失败!" );
         }
         logger.debug( "数据库连接成功" );
         return  conn;
     }
 
    / / 关闭数据库连接,注意关闭的顺序
     public  void  close(ResultSet rs, PreparedStatement ps, Connection conn) {
         if (rs!= null ){
             try {
                 rs.close();
                 rs= null ;
             } catch (SQLException e){
                 e.printStackTrace();
                 logger.error( "关闭ResultSet失败" );
             }
         }
         if (ps!= null ){
             try {
                 ps.close();
                 ps= null ;
             } catch (SQLException e){
                 e.printStackTrace();
                 logger.error( "关闭PreparedStatement失败" );
             }
         }
         if (conn!= null ){
             try {
                 conn.close();
                 conn= null ;
             } catch (SQLException e){
                 e.printStackTrace();
                 logger.error( "关闭Connection失败" );
             }
         }
     }
}



转载地址  http://blog.csdn.net/qy1387/article/details/7944133

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值