使用Java连接SQL Server 2005数据库实践体验

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:ASD121406113
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文主要论述使用Java连接SQL Server 2005数据库软件环境配置、数据库驱动配置,实现Java 到SQL Server 2005数据库的连接,用Java程序读取数据库经典实例分析等。
  关键字:SQL Server 2005 、 数据库 、JDBC 、JAVA 、 驱动程序
  【分类号】:TP854.4
  一、 Java访问数据库过程概述
  (1) 调用Class forName()方法加载驱动。
  (2) 调用DriverManager对象的getConnection()方法,获得一个Connection()对象。
  (3) 创建一个Statement对象,准备一个SQL语句,这个SQL语句可以是Statement对象(立即执行的语句)、PreparedStatement语句(预编译的语句)或CallableStatement对象(储存过程调用的语句)。
  (4) 调用executeQuery()等方法执行SQL语句,并将结果保存在ResultSet对象;或者调用executUpadate()等方法执行SQL语句,不返回ResultSet对象的结果。
  (5) 对返回的ResultSet对象进行显示等相应的处理。
  (6) 释放资源。
  二、 SQL Server 2005 数据库环境配置
  1、 数据库服务器配置
  (1)进入SQL Server 2005 配置工具。
  (2)开启SQL Server 2005服务:
  如果服务停止请开启SQL Server(MSSQLSERVER),开启后的状态是“正在运行”(
  一般IP 地址选用本机IP地址即可,无固定IP地址者一律选用127.0.0.1即可。
  TCP端口选用1433,TCP动态端口设置为0.
  2、SQL Server Manager 管理器配置
  (1)打开SQL Server Manager 管理器。在左面找到“安全性”单击右键 选择“新建”,“登录” 弹出一个对话框,在登录名中输入登录名,选择“SQLSERVER身份验证”,并输入密码, “强制密码过期”和“用户下次登录时必须修改密码”不勾选。
  点击“用户映射”,在右面选择要映射的数据库,并且在前面勾选。
  在SQL Server Manager 管理器有关栏“db_owner”“public”“db_dataareader”和“db_datarwriter”前面勾選。点击“状态”在在右面栏中选中“授予” 、“启用”, “确定”。
  (2)找到SQL服务器,在左栏中上面,单击右键,在弹出的菜单中选择“属性”命令。单击“安全性”,在“服务器身份验证”下面选择“SQL SERVER和WINDOWS身份验证模式”,在前面打勾。单击“确定”。
  (3)重新启动服务,选择SQL SERVER身份验证模式登录。
  三、数据库驱动配置
  1、下载驱动程序。到微软网站下载Microsoft SQL Server 2005 JDBC Driver 1.2,
  解压Microsoft SQL Server 2005 jdbc driver1.2.exe,把文件夹sqljdbc_1.2复制到本机任意目录。
  例如d:\ test\ Microsoft SQL Server 2005 JDBC Driver.
  2、设置 Classpath
  CLASSPATH =.; D:\test\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\enu\ sqljdbc.jar
  3、在MyEclipse 10.0中构建驱动程序路径。
  四、实现Java 到SQL Server 2005数据库的连接
  根据第一部分“Java访问数据库过程”,编写Java代码如下即可实现Java 到SQL Server 2005数据库的连接。代码如下:
  import java.sql.*;
  public class GetConn {
  Connection conn;
  public Connection getConnection() { // 建立返回值为Connection的方法
  try {
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  System.out.println("数据库驱动成功");
  conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=SC1", "xxx", "123");
  //示例數据库为SC1
  //用户名:xxx
  //密码:123
  if(conn != null){
  conn.close();
  System.out.println("数据库连接成功");
  }
  } catch (Exception e) {
  e.printStackTrace();
  }
  return conn; // 按方法要求返回个Connection对象   }
  public static void main(String[] args) {
  GetConn getConn = new GetConn(); // 创建本类对象
  getConn.getConnection(); // 调用数据库连接方法
  }
  该程序运行结果(略)。
  至此,数据库驱动和连接都获得成功。
  五、用Java程序读取数据库经典实例分析
  本文程序示例使用SC1数据库的如下四张表(具体结构略):
  (1)班级表表名:Class
  (2)课程表表名:Course
  (3)成绩表表名:Score
  (4)学生表表名:Student
  例1、查询Score表中的成绩信息,考试成绩和平时成绩之比。代码如下:
  import java.math.BigDecimal;
  import java.math.RoundingMode;
  import java.sql.Connection;
  import java.sql.DriverManager;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.sql.Statement;
  public class t8{
  static {
  try {
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  System.out.println("数据库驱动加载成功");
  } catch (ClassNotFoundException e) {
  e.printStackTrace();
  }
  }
  //对值Value作四舍五入保留Scale位小数运算
  public static Double round(Double value, int scale)
  {
  double result = 0.0;
  if (null != value) {
  result = new BigDecimal(String.valueOf(value)).setScale(scale,RoundingMode.HALF_UP).doubleValue();
  } return result;
  }
  public static void main(String[] args) {
  try {
  double x;
  String dbURL = "jdbc:sqlserver://127.0.0.1:1433; DatabaseName=SC1";//連接服务器和数据库SC1
  String userName = "xxx"; //默认用户名
  String userPwd = "123"; //密码
  Connection conn = DriverManager.getConnection(dbURL, userName,userPwd);
  // 与数据库建立连接
  //构造SQL实现单表操作
  String sql = "select StudentNo,CourseNo,UsuallyScore,ExamScore,FinalScore " +
  "from Score ";
  Statement statement = conn.createStatement();
  ResultSet res = statement.executeQuery(sql);
  System.out.println("学生编号" +"\t"+"\t"+"课程编号"+ "\t"+
  "平时成绩"+"\t"+"考试成绩"+"\t"+"期末成绩"+"\t"+"考试\\平时");
  //读取表各字段的值转化为字符串型数据,再赋给相应的变量
  while (res.next()) {
  String sno = res.getString("StudentNo");
  String cno = res.getString("CourseNo");
  String ususcore = res.getString("UsuallyScore");
  String exascore = res.getString("ExamScore");
  String finscore=res.getString("FinalScore");
  //实现字符串到双精度型数据的转换,计算比值 x=Double.parseDouble(exascore)/Double.parseDouble(ususcore);
  x=t8.round(x,3);//对值x作四舍五入保留3位小数运算
  System.out.println(sno +"\t"+cno+ "\t"+ ususcore+"\t"+exascore+"\t"+finscore+"\t"+x);
  }
  conn.close();
  } catch (SQLException e) {
  e.printStackTrace();
  } // 異常处理
  }
  }
  运行结果:(略)
  本示例还有大量源代码,限于篇幅不再一一列举,读者有需求可向本人免费索取。
  六、写作背景
  本文是在给我系计算机应用专业2011级学生进行数据库及应用课程设计过程中形成的。是实际教学过程的一个初步总结。用Java程序对数据库进行操作还有大量的工作可作,今后有待深入。本年级学生还没有开设网页设计和JSP课程,所以对数据库的操作还只停留在纯Java语言层面。
其他文献
摘要:引用专题符号库,对制图区域的数据进行符号化编辑,完成专题图编制,全面反映制图区域的分布特点、规律和各要素间的相互关系,正确处理各要素间的关系,体现地图成果的科学性、完整性、实用性和现势性。  关键词:GIS海图制图  【分类号】:TG333.7  1制图区域概况  制图区域海域面积约1500平方公里。属大陆架浅海区,水深最深不超过50米,最淺处水深约7米,一般水深30米左右,海底较平坦。  
期刊
【摘要】地铁是城市轨道交通的主要构成部分,发展地铁运输对解决城市交通问题有着重要作用,并且充分利用了地下空间作为人车运行平台。随着城市轨道交通系统功能的日趋完善,地铁公司对专用调度系统功能维护给予了高度重视,尤其在调度系统故障问题分析与处理方面,采取了一系列的应急处理方案。本次结合FH98数字专用通信系统应用情况,对地铁专用调度系统故障处理提出了几点建议。  【关键词】地铁;专用调度系统;故障处理
期刊
摘 要:本文主要介绍了自动气象站外部防雷和内部防雷的相关技术措施,对做好自动气象站的防雷工作有一定的指导意义。  关键词:自动气象站;外部防雷;内部防雷;技术措施  【分类号】:P457;P445  一、引言  自动气象站是由大量的电子元器件集合而成的电子电气设备,对电磁干扰相当敏感。电磁干扰源通常分为二类:一类是人为干扰源。包括电力系统的隔离开关、断路器、系统扰动等产生的过电压,高频辐射的电磁干
期刊
【摘 要】组织机构代码证书的全称为:中华人民共和国组织机构代码证,该证书存在的主要目的就是为了利用这一代码证,来达到对各个事业单位、企业、机关、社会组织等进行凭证颁发的目的。在证书之上,直接对于相应组织单位的各项基本信息进行了记录,这其中主要包括了地质信息、名称信息、代码信息等等,但是在我国社会体系逐渐完善的过程中,这一代码已经无法切实有效的满足需求。必须要采取新的技术来对企业、组织信息进行展示。
期刊
【摘要】随着我国社会的不断发展,植树造林的工作也提到我国社会主义建设的日程上来,为了提高我国植树造林的质量,我们必须才能够选择树苗以及栽种的方法上入手,这有做好树苗的栽种工作才能保证树苗的成活率。本文主要对影响造林质量的几个因素做了介绍,同时也提出了提高造林质量的重要措施,旨在为我国社会的可持续发展提供参考。  【关键词】植树造林质量技术措施  中图分类号:S7 文献标识码:A 文章编号:1009
期刊
[摘 要] 现场总线控制是工业设备自动化控制的一种计算机局域网络。它是依靠具有检测、控制、通信能力的微处理芯片,数字化仪表(设备)在现场实现彻底分散控制,并以这些现场分散的测量,控制设备单个点作为网络节点,将这些点以总线形式连接起来,形成一个现场总线控制系统。本文叙述了神华集团黄骅港务公司装卸系统中罗克韦尔自动化的ControlNet现场网络总线控制系统的结构组成及特点。  [关键词] Contr
期刊
摘要:本文介绍光自动切换系统OLP在光传输网领域的应用意义、应用前景、实现方式,光线路自动切换系统OLP和光缆自动监测系统OLM的融合,可以有效的利用OLP驱动的方式,实现光缆的在线监测。能够对目前在用的光缆状况进行实时监控,在光缆发生损坏时快速精确的实现故障的定位。  中图分类号:TP 文献标识码:A 文章编号:1009-914x(2014)05-01-01  1、光线路自动切换系统OLP在光传
期刊
摘要:随着社会经济的迅速发展,企业供配电工程的建设与维护,不仅关系着人们日常生活中的正常用电,同时还关系着社会稳定发展。然而在实际建设与维护中,由于多种因素的影響,以至于企业供配电工程得不到有效的使用。在此,本文针对企业供配电工程的建设与维护与管理,做以下论述。  关键词:企业 供配电 维护 管理措施  引言:随着社会经济的迅速发展以及人们生活水平的提高,居民的日常用电也在不断增加。如何满足居民日
期刊
摘要:采用激光跟踪仪与全站仪组成的空间大尺寸三维测量联合作业系统,可实现大型机组产线式设备制造、安装时空间位置关系的高精度检测与调整。本文通过具体应用案例,验证该空间大尺寸三维测量系统满足国家相关技术标准。  关键词:空间,大尺寸,三维,激光跟踪仪  中图分类号:TH 文献标识码:A 文章编号:1009-914x(2014)05-01-01  1.前言  随着科学技术和现代工业技术的发展,空间大尺
期刊
[摘要]倾斜分层走向长壁下行垮落工作面的巷道布置系统,和单一走向长壁工作面基本相同,即在采煤工作面上端有回风平巷,下端有运输平巷。为了减少这些巷道的维护量和改善维护条件,并保证上下分层同采时有完善的生产系统,常需要布置区段集中平巷。  [关键词] 矿井 集中 平巷布置  中图分类号:TD45.2 文献标识码:A 文章编号:  (一)区段集中平巷的布置方式  区段集中平巷的布置方式一般有两种  1、
期刊