Java实现JDBC连接sql sever2012连接

一、准备工作

导入相应的jdbc.jar包:
在当前project中右击,选择 Build Path,然后选择 Configure Build Path
Libraries选项卡下单击右边的 Add External JARS,选择相应的jar包即可。

二、代码撰写

1.JDBC编写主要包括以下几个步骤:

  • 加包(已完成)
  • 1.驱动
  • 2.连接
  • 3.创建语句实例
  • 4.执行语句
  • 5.输出结果集
  • 6.关闭

2.连接

  • 定义变量
    连接过程中有两个变量,一个是drivername另一个是url
 //sql数据库驱动
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库路径
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=student1";

其中,url的DatabaseName参数指定为需要连接的数据库名

  • 进行数据库的连接
  1. 通过java.lang.Class类的静态方法forName(String className) 实现,加载想要连接的数据库的驱动到JVM(Java虚拟机)
     Class.forName(driverName);

2.向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。

      con = DriverManager.getConnection(url,"test","1234");
      //DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 密码来获得。    

3.创建实例语句

如:

      String sql = "select *from test";//查询test表
      statement = con.prepareStatement(sql);
  • 要执行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(? , ?)}") ;

4.执行语句

       res = statement.executeQuery();
  • Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
    1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
    2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
    3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
    具体实现的代码:

    ResultSet rs = stmt.executeQuery(“SELECT * FROM …”) ;
    int rows = stmt.executeUpdate(“INSERT INTO …”) ;
    boolean flag = stmt.execute(String sql) ;

5.输出结果集

     while(res.next()){
                String title = res.getString("test_name");//获取test_name列的元素  
                String id=res.getString(1);//获取第一列的元素                                                                                                                                               ;
                System.out.println(id+"姓名:"+title);
            }

遍历结果集:
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。

• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。    
          
• 使用结果集(ResultSet)对象的访问方法获取数据:    
             while(rs.next()){    
             String name = rs.getString("name") ;    
             String pass = rs.getString(1) ; // 此方法比较高效    
             }    

列是从左到右编号的,并且从列1开始。

6.关闭

        if(res != null) res.close();
        if(statement != null) statement.close();
        if(con != null) con.close();
  • 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:
    1、先关闭requestSet
    2、再关闭preparedStatement
    3、最后关闭连接对象connection

三、连接测试

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190428125119435.png在这里插入图片描述
在这里插入图片描述
至此完成了JDBC与sql sever2012连接。

完整代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Jdbc_demo1 {
	 
    
    public static void main(String[] args) {
        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //sql数据库驱动
        String url = "jdbc:sqlserver://localhost:1433;DatabaseName=student1";
        Connection con = null;
        PreparedStatement statement = null;
        ResultSet res = null;
        try {
            Class.forName(driverName);
            con = DriverManager.getConnection(url,"test","12345");   
            
            String sql = "select *from test";//查询test表
            statement = con.prepareStatement(sql);

            
            res = statement.executeQuery();

            while(res.next()){
                String title = res.getString("test_name");//获取test_name列的元素  
                String id=res.getString(1);//获取第一列的元素  =  res.getString("test_id")                                                                                                                                           ;
                System.out.println(id+"姓名:"+title);
            }
            
            
        	} catch (Exception e) {
        		// TODO: handle exception
        		e.printStackTrace();
        	}finally{
        		try {
        			if(res != null) res.close();
        			if(statement != null) statement.close();
        			if(con != null) con.close();
        		} catch (Exception e2) {
        			// TODO: handle exception
        			e2.printStackTrace();
        		}

        	}
    	}
}

猜你喜欢

转载自blog.csdn.net/vella_/article/details/89636134
今日推荐