一.知识准备
前期要求掌握的知识:了解结构化查询语言SQL的相关内容。
实验相关理论或原理: Java语言提供了对数据库的强大支持,Java语言提供JDBC来实现对数据库访问和数据处理的支持。利用JDBC来访问特定的数据库,实现对数据库的各种操作。具体有7步:
(1) 导入JDBC类;
(2) 装载/注册驱动程序;
(3) 连接数据库;
(4) 创建语句对象;
(5) 执行SQL语句;
(6) 处理结果;
(7) 关闭连接。
二、下载驱动及配置
(以SQL SERVER数据库为例,若是其它数据库,则采用相应的驱动程序;驱动方式采用纯JAVA程序驱动,若采用其它模式,则程序中语句相应要进行调整)
1. 使用纯Java驱动,首先必须获得相应数据库的驱动程序包;
SQLServer JDBC驱动包有两种:sqljdbc.jar和sqljdbc4.jar,根据所使用的JDK版本选择相应的驱动程序。并将完整路径设置到classpath环境变量中,如用开发工具开发程序,还需在开发环境中设置路径。
将sqljdbc4.jar类库文件拷贝到D:\Program Files\Java\jdk1.7.0\jre\lib\ext目录下。(这个路径根据JDK的版本和安装路径确定,下同)
将sqljdbc4.jar类库文件拷贝到D:\ProgramFiles\Java\jre7\lib\ext目录下( 最好是,只要是jre文件夹,都复制一个sqljdbc4.jar到jre7\lib\ext里去!!)
在环境变量classpath 后面添加sqljdbc4.jar的路径。
(这里注意以下,如果是最新版本的jdk,就放到例如D:\jdk-10.0.1\lib D:\jre-10.0.1\lib)
2. 设置SQLEXPRESS服务器:
a.打开SQL Server Configuration Manager-> SQLEXPRESS的协议 -> TCP/IP
b.右键单击启动TCP/IP ,双击进入属性,把IP地址中的IP all中的TCP端口设置为1433
c.打开Telnet客户端:
打开控制面板,点击程序和功能,之后点击启用或关闭Windows功能,勾选Telnet客户端
c.重新启动SQLServer 2005服务中的SQLEXPRESS服务器
打开电脑控制面板,点击管理工具,点击服务,左键SQL Sever(MSSQLSERVER)
d.关闭SQL ServerConfiguration Manager
注:可以在命令行窗口中用如下命令查看1433端口是否打开:(win+r打开,输入cmd)
Telnet localhost 1433
若执行命令后,窗口左上角有光标闪烁,无其它提示信息,则说明端口已打开。
接下来估计是大家特别需要注意的了,因为很多人再做完上面的步骤之后再用eclipse编译会出现问题,提示说:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver,这是应该没有找到类,提示出错:
可以这样子试一试:
右键src,在出现的一栏中点击build path,再点击Configure Build Path,之后看第二张图,添加扩展类,这里是sqljdbc4.jar类,再点击Apply and Close,接着再运行就不会出现提示java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriverl了。
下面是运行查询数据库的代码:
import java.sql.Connection;
import java.sql.DriverManager;
public class test {
public static void main(String[] srg) {
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=student";
//连接服务器和数据库
String userName = "sa"; //默认用户名
String userPwd = "12345678"; //密码
Connection dbConn;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
//如果连接成功 控制台输出Connection Successful!
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.sql.*;
public class ex1 {
public static void main(String []args){
System.out.println("database example:");
Connection conn = null;
Statement stmt = null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433; DatabaseName=student"; //student为数据库名
String user="sa";
String password="12345678"; // 用户名和密码;
conn= DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
String sql = "select * from student";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(1)+" "+ rs.getString(2)+" "+ rs.getString(3)+" "+rs.getString(4)+" "+rs.getString(5));
}
}catch(Exception ex){
System.out.println(ex.toString());
}
finally{
if(stmt!=null){
try{
stmt.close();
}catch(Exception ex){}
}
if(conn!=null){
try{
conn.close();
}catch(Exception ex){}
}
}
System.out.println("End");
}
}
还有几个地方需要注意,数据库的密码 、数据库的名称
String user="sa";
String password="12345678"; // 用户名和密码;
DatabaseName=student //student为数据库名
要和代码里的一致,这样才能连接成功