Java JDBC连接SQL Server数据库初级
来源:互联网 发布:windows 7 编辑:程序博客网 时间:2024/05/01 01:08
一、JDBC的概念
JDBC(Java数据库连接)是用于执行SQL语句的API,可以为多种关系数据库提供统一的访问,由一组Java语言编写的类和接口组成。
JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级别的工具和接口。使开发人员可以利用纯Java API编写数据库应用程序。
JDBC驱动程序共分四种类型:
类型1:JDBC-ODBC桥
把所有的JDBC调用传递给ODBC,再让后者调用数据库本地驱动代码。(效率相对来说较低)
类型2:本地API驱动
通过客户端加载数据库厂商提供的本地代码库来访问数据库,而在驱动程序中则包含了JAVA代码。
类型3:网络协议驱动
给客户端提供了一个网络API,客户端上的JDBC驱动程序使用套接字Socket来调用服务器上的中间件程序,后者将其请求转化为所需的具体API调用。
类型4:本地协议驱动
使用Socket,直接再客户端和数据库间进行通信(效率最高,但是开发复杂度也高)。
JDBC API主要位于JDK中的java.sql包中,主要包括:
DriverManager:完成驱动程序的装载和建立新的数据库连接。
Connection:表示对某一指定数据库的连接。
Statement:管理在一指定数据库连接上的SQL语句的执行(一般执行不带参数也就是占位符的SQL语句)。
CallableStatement:用于调用数据库端的存储过程,由Connection.prepareCall(...)方法创建。
SQLException:代表在数据库连接的创建和关闭和SQL语句的执行过程中发生的异常。
Driver:驱动程序,会将自身加载到DriverManger中去,处理相应的请求并返回相应的数据库连接(Connection)。
PreparedStatement:用以执行包含动态参数的SQL查询和更新(可以执行带占位符的SQL语句)。
JDBC主要做3件事:
1、与数据库建立连接。2、发送操作数据库的SQL语句。3、处理结果。
二、创建数据库连接
要使Java程序可以连接数据库,需要获取相应的JDBC驱动程序,将其引入项目java build path路径即可。
在Java程序中完成一下两步操作获得与数据库的Connection连接对象
1、加载数据库驱动程序:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
2、建立连接:url="jdbc:sqlserver://127.0.0.1:1433;databaseName=UserInfo;user=sa;password=123";//sa身份连接
Connection conn=DriverManager.getConnection(url);
连接一旦建立,就可以向数据库传送SQL语句。
JDBC提供了3个类用于向数据库发送SQL语句,Connection接口中的3个方法可以用于创建这三个类的实例。
Statement:由Connection对象的createStatement方法创建,Statement对象用于发送简单的SQL语句。
PreparedStatement:由preparedStatement方法创建,PreparedStatement对象用于发送带有输入参数的SQL语句。需要注意的是用该对象发送SQL语句到数据库的时候,数据库会将SQL语句优化,存储下来。下次再用该对象执行同样的SQL语句,不会将该SQL语句再发送到数据库端,只会发送相应占位符对应的值。这一点和Statement 对象不同,Statement每次都会发送,数据库端也不会保存SQL语句。
CallableStatement:me由prepareCall方法创建,CallableStatent对象用于执行数据库端的存储过程。
完成向数据库发送操作语句(通过Statement,PreparedStatement,CallableStatement对象的execute/executeXXX方法)数据库引擎执行完成后会返回一个结果,这个结果主要有两种形式。
对于更新语句(增、删、改)完成后会返回一个受操作影响的行数。
1、executeUpdate():执行DML和DDL语句,返回int类型。即可以执行insert、delete、update、create(建表)、drop语句,所返回的int值就是当前操作所影响的记录数。
2、execute() :执行任何SQL语句,包括DML、DDL和查询语句。返回boolean类型,指示是否有ResultSet返回。
executeQuery():执行查询语句,返回查询结果集ResultSet。
1、ResultSet的next()方法下移结果集中记录指针,并判断当前记录指针是否指向空。
2、ResultSet的getXxx()读取结果集中当前记录的字段信息。
补充:ResultSet 维护有一个缓冲用于保存从数据库中返回的记录,其大小是有限制的。(这很容易理解,数据库中有1w条数据符合查询条件不可能一下全部返回给我们)
ResultSet.getFetchSize() :可以返回当前结果集默认可以从数据库中获得的记录个数。
ResultSet.setFetchSize() :可以设置我们当前结果集能保存的记录的个数。
三、具体操作
1、下载JDBC 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599
下载 完成后,是个exe文件,点击运行,会提示你选择解压目录.
解压完成后,进入 解压完成后的文件,里边有两个.jar文件。一个
是:sqljdbc.jar,另外一个是sqljdbc4.jar。
这里使用sqljdbc4.jar2、复制sqljdbc4.jar。并将其粘贴到需要的项目中去,右击sqljdbc4.jar-->Build Path-->Add to Build Path,这样Ok了,可以在代码中获取和数据库相关的操作了。
3、在用Java和数据库建立连接之前我们还需要知道我们的端口号。
a、打开SQL Server 配置管理器启用TCP/IP,如下图
b、双击TCP/IP--》IP地址(我的TCP动态端口号全部为空,TCP端口号为:1433)知道了端口号我们可以继续进行了。
4、编写java代码(此处我用sa身份验证模式连接SQL Server数据库。因此需要知道自己的sa身份的密码)
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class Dbdemo1 {public static void main(String[] args) {// TODO Auto-generated method stub String url="jdbc:sqlserver://127.0.0.1:1433;databaseName=UserInfo;user=sa;password=123";//sa身份连接Connection conn=null;Statement statement=null;ResultSet rs=null;try { //com.microsoft.sqlserver.jdbc.SQLServerDriver 这是驱动的路径Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载数据库驱动程序conn=DriverManager.getConnection(url);//获取对指定数据库的连接对象statement=conn.createStatement();//创建Statement用以发送简单的SQL语句rs=statement.executeQuery("SELECT * FROM admin_table");while(rs.next()) {System.out.println("name:"+rs.getString("user_name")+"||"+"password:"+ rs.getString("user_pwd")+" "+rs.getString("user_age"));}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {if(conn!=null) {try { //如果不为空说明连接成功了,关闭连接conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace(); } } } }}
注意:想要连接数据库当然需要事先把数据库建立好,我已经在SQL Server2008R2建立了一个名为UserInfo的数据库
代码的执行结果如下:
- Java JDBC连接SQL Server数据库初级
- Java JDBC连接SQL Server数据库
- Java使用JDBC连接SQL Server数据库
- java通过jdbc连接sql server数据库
- JDBC连接SQL Server数据库
- JDBC连接sql server数据库
- jdbc连接sql server数据库
- jdbc连接sql server数据库
- JDBC连接SQL Server数据库
- java用jdbc连接mysql数据库和sql server数据库
- java jdbc 连接 SQL server
- JAVA【JDBC】连接SQL Server
- java 通过jdbc连接sql server数据库的常见问题
- Java工程通过JDBC连接数据库方法(SQL Server)
- Java程序通过JDBC连接远程的数据库SQL Server
- JAVA JDBC连接SQL Server数据库进阶(一)---ConnectionFactory
- JAVA JDBC连接SQL Server数据库进阶(二)---批处理
- JDBC初步--java连接SQL Server数据库(一)
- this引用逸出
- 服务器路径获取方式
- Java多线程之volatile作用阐述
- java第一阶段知识点
- PyMySQL
- Java JDBC连接SQL Server数据库初级
- 获取路由参数
- 文件的复制
- //Leedcode-Valid Parentheses
- Java抽象类与接口
- 「NOI题解报告」 NOI2010 能量采集
- 二分查找
- 第2章 编译和链接
- 百度ueditor使用心得