首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
jsp
schema
solr
hook
triggers
jar
fetch
expression
require
hashtable
php5
erlang
string
usb
dll
future
main
web
regex
emoji
uml
controller
uri
runtime
header
client
cPlusPlus
java
php
dagger
integer
frameworks
get
substring
golang
foreach
vbscript
search
select
heatmap
config
dockerfile
shell
import
datetime
copy
plugins
split
const
md5
cookie
post
c语言
sum
go
metadata
byte
bytecode
text
audio
eval
php7
spring
list
bitmap
case
email
input
random
python3
request
ascii
tree
iostream
ip
utf-8
callback
export
vba
当前位置:
开发笔记
>
编程语言
> 正文
JDBC连接sqlserver数据库的详细步骤和代码
作者:Watts | 来源:互联网 | 2023-05-18 07:01
JDBC连接sqlserver数据库的详细步骤和代码JDBC连接sqlserver数据库的步骤如下:[java]viewplaincopyprint?1、加载JDBC驱动程序:在连
JDBC连接sql server数据库的详细步骤和代码
JDBC连接sql server数据库的步骤如下:
[java]
view plaincopyprint?
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、提供JDBC连接的URL
•连接URL定义了连接数据库时的协议、子协议、数据源标识。
•书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
3、创建数据库的连接
•要连接数据库,需要向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) ;
}
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
JDBC
连接sql server数据库代码:
[java]
view plaincopyprint?
package com.accp.jdbc;
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失败");
}
}
}
}
JDBC连接sql server数据库的详细步骤和代码
android
asp.net
php
jsp
数据库
sql
server
java
view
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
copy
图解redis的持久化存储机制RDB和AOF的原理和优缺点
本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ...
[详细]
蜡笔小新 2023-12-13 20:24:11
php
SQL日志收缩及截断方法详解
本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ...
[详细]
蜡笔小新 2023-12-14 18:23:25
php
OC学习笔记之@property和@synthesize
本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ...
[详细]
蜡笔小新 2023-12-14 12:05:06
php
Hibernate基础映射
在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ...
[详细]
蜡笔小新 2023-12-14 10:57:47
java
JVM 学习总结(三)——对象存活判定算法的两种实现
本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ...
[详细]
蜡笔小新 2023-12-13 18:59:46
php
ABAP开发发送邮件程序的配置和代码整理
本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ...
[详细]
蜡笔小新 2023-12-13 15:50:17
php
CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ...
[详细]
蜡笔小新 2023-12-12 18:18:49
php
Day2列表、字典、集合操作详解
本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ...
[详细]
蜡笔小新 2023-12-12 14:14:34
php
sqlserver云存储和本地存储的区别及启动方法
本文介绍了sqlserver云存储和本地存储的区别,云存储是将数据存储在网络上,方便查看和调用;本地存储是将数据存储在电脑磁盘上,只能在存储的电脑上查看。同时提供了几种启动sqlserver的方法。此外,还介绍了如何导出数据库的步骤和工具。 ...
[详细]
蜡笔小新 2023-12-12 11:27:17
php
数据库知识点复习及命令使用
本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ...
[详细]
蜡笔小新 2023-12-11 16:27:44
php
Oracle 11g物理Active Data Guard实时查询(Realtime query)特性
在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ...
[详细]
蜡笔小新 2023-12-11 15:49:10
php
GregorianCalendar类方法的介绍及使用注意事项
本文介绍了GregorianCalendar类的基本信息,包括它是Calendar的子类,提供了世界上大多数国家使用的标准日历系统。默认情况下,它对应格里高利日历创立时的日期,但可以通过调用setGregorianChange()方法来更改起始日期。同时,文中还提到了GregorianCalendar类为每个日历字段使用的默认值。 ...
[详细]
蜡笔小新 2023-12-11 13:35:26
java
Java 11相对于Java 8,OptaPlanner性能提升有多大?
本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ...
[详细]
蜡笔小新 2023-12-11 10:59:22
php
如何在Laravel DB :: insert中返回OUTPUT子句的值?
本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ...
[详细]
蜡笔小新 2023-12-11 10:09:09
php
代理模式的详细介绍及应用场景
代理模式是一种在软件开发中常用的设计模式,通过在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象进行访问,从而简化系统的复杂性。代理模式可以根据不同的使用目的分为远程代理、虚拟代理、Copy-on-Write代理、保护代理、防火墙代理、智能引用代理和Cache代理等几种。本文将详细介绍代理模式的原理和应用场景。 ...
[详细]
蜡笔小新 2023-12-10 19:07:21
Watts
这个家伙很懒,什么也没留下!
Tags | 热门标签
jsp
schema
solr
hook
triggers
jar
fetch
expression
require
hashtable
php5
erlang
string
usb
dll
future
main
web
regex
emoji
uml
controller
uri
runtime
header
client
cPlusPlus
java
php
dagger
RankList | 热门文章
1
第2个打印结果为什么是888,还有(obj.inner.print = obj.inner.print)() 这种写法没看懂?
2
IDEA配置spark与pycharm配置spark教程
3
MAC如何开启语音报时?MAC开启语音报时教程
4
js中的replace用法
5
web图片居中处理的方法是什么
6
php数组去掉重复值,php中数组的键名可以重复吗
7
android之滑动悬浮tab&无限循环的viewPager
8
selenium 点击后没反应未报错_Selenium自动化测试JavaScript定位
9
java多线程调用静态方法安全吗?
10
怎么用手机摄影修图软件,让照片里下雪?:抹机网设置
11
启动期间的内存管理之pagging_init初始化分页机制Linux内存管理(十四)
12
开发笔记:java设计模式单例模式(干货)
13
teamviewer_天下苦 Teamviewer久矣!GitHub大佬搞定远程问题
14
java 不支持fork,grails不能运行fork模式解决方法
15
Thin Provision的示例分析
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有