论文部分内容阅读
摘要:本文主要论述使用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语言层面。
关键字: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语言层面。