热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

JAVA使用JDBC技术操作SqlServer数据库实例代码

JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种

JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 JDBC并不能直接访问数据库,需要借助于数据库厂商提供的JDBC驱动程序。 

数据库连接

如果要在Java访问数据库,首先要加载一个数据库驱动,数据库驱动只需要在第一次访问时加载一次。然后再每次访问数据库时创建一个Connection实例,获取数据库连接,这样就可以执行操作数据库的SQL语句。最后用完后释放掉数据库的连接。

数据库驱动类

不同的数据库实现JDBC接口不同,所以就产生了不同的数据库驱动包。驱动包就包含一些负责数据库连接的类,把我们要操作的SQL语句传递到里面去。我的PC用的是SQL2012,所以我们要去这里http://www.microsoft.com/zh-cn/search/DownloadResults.aspx?q=jdbc下载驱动

下完后在新建的java_project导入驱动包

右击选中项目>>Build Path >>Add External Archives... 选中下载解压的文件


导入成功后的项目:

package com.Project_DataBase01;

import java.sql.Connection;
import java.sql.DriverManager;

public class SelectQuery {
 
 private Connection conn;
 
 /*
  * 创建一个返回Connection的方法
  */
 public Connection getConnection(){
  try {
   Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
   System.out.println("数据库驱动加载成功");
   cOnn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=java_conn_test","sa","123456");
   if(cOnn==null){
    System.out.println("数据库连接失败");
    System.out.println("-----------------------");
   }else {
    System.out.println("数据库连接成功");
    System.out.println("-----------------------");
   }
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  }
  return conn;
 }

} 

进行SqlServe数据库java_conn_test中的tb_User进行数据的增删改查。

 package com.Project_DataBase01;

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

public class StartMain {
 
 private static Connection conn;

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  cOnn=new SelectQuery().getConnection();
  
  GetInsert();
  GetSelect();
  
  GetUpdate();
  GetSelect();
  
  GetDelete();
  GetSelect();
 }

 /*
  * INSERT
  */
 public static void GetInsert(){
  if(conn!=null){
   //INSERT 
   System.out.println("-----------INSERT------------");
   int x=1+(int)(Math.random()*5000);
   String insert_str="INSERT INTO tb_User (UserName,UserPwd,UserId) VALUES ('name_"+x+"','pwd_"+x+"',NEWID())";
   try {
    Statement insertstatement=conn.createStatement();
    int result= insertstatement.executeUpdate(insert_str);
    if(result>0){
     System.out.println("添加成功");
     System.out.println("-----------------------");
    }
    else {     
     System.out.println("添加失败");
     System.out.println("-----------------------");
    }
   } catch (Exception e) {
    System.out.println("添加失败");
    System.out.println("-----------------------");
    // TODO: handle exception
   }
  }
  else {
   System.out.println("请检查数据库连接");
   System.out.println("-----------------------");
  }
 }
 
 /*
  * SELECT
  */
 public static void GetSelect(){
  if(conn!=null){
   
   //SELECT
   System.out.println("-----------SELECT------------");
   String select_str=" SELECT * FROM tb_User ";
   try {
    PreparedStatement selectps=conn.prepareStatement(select_str);
    ResultSet rs=selectps.executeQuery();
    while (rs.next()) {
     String name=rs.getString("UserName");
     String pwd=rs.getString("UserPwd");
     String UserId=rs.getString("UserId");
     System.out.println(name+"\t"+pwd+"\t"+UserId);
    }
    System.out.println("查询成功");
    System.out.println("-----------------------");
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("查询失败");
    System.out.println("-----------------------");
   }
  }
  else {
   System.out.println("请检查数据库连接");
   System.out.println("-----------------------");
  }
 }

 /*
  * UPDATE
  */
 public static void GetUpdate(){
  if(conn!=null){
   //UPDATE
   System.out.println("-----------INSERT------------");
   String update_str="UPDATE tb_User SET UserPwd=UserPwd+'xxxxxxxx' WHERE UserId='fa562573-218a-4205-b67d-ebdfac3f8329'";
   try {
    Statement updatestatement=conn.createStatement();
    int result=updatestatement.executeUpdate(update_str);
    if(result>0){
     System.out.println("修改成功!");
     System.out.println("-----------------------");
    }else {
     System.out.println("修改失败");
     System.out.println("-----------------------");
    }
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("修改失败");
    System.out.println("-----------------------");
   }
  }
  else {
   System.out.println("请检查数据库连接");
   System.out.println("-----------------------");
  }
 }
 
 /*
  * DELETE
  */
 public static void GetDelete(){
  if(conn!=null){
   //DELETE 
   System.out.println("-----------DELETE------------");
   String delete_str="DELETE tb_User WHERE UserId!='fa562573-218a-4205-b67d-ebdfac3f8329'";
   try {
    Statement deletestatement=conn.createStatement();
    int result=deletestatement.executeUpdate(delete_str);
    if(result>0){
     System.out.println("删除成功!");
     System.out.println("-----------------------");
    }else {
     System.out.println("删除失败");
     System.out.println("-----------------------");
    }
   } catch (Exception e) {
    // TODO: handle exception
    System.out.println("删除失败");
    System.out.println("-----------------------");
   }
  }
  else {
   System.out.println("请检查数据库连接");
   System.out.println("-----------------------");
  }
 }

} 

运行程序:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了如何使用ActionScript 3.0 (AS3) 连接并操作MySQL数据库。通过具体的代码示例和步骤说明,帮助开发者理解并实现这一过程。 ... [详细]
  • 在即将迎来26岁生日之际,作者的人生陷入了低谷。经过近三年的硕士学习后,最终决定退学,并且面临没有工作经验的困境。尽管如此,作者依然坚定地选择为自己的人生负责。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文详细介绍了美国最具影响力的十大财团,包括洛克菲勒、摩根、花旗银行等。这些财团在历史发展过程中逐渐形成,并对美国的经济、政治和社会产生深远影响。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
author-avatar
hobeson_861
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有