JDBC4.0 配置与简单操作

为了使用JAVA对数据库进行操作,需要使用JDBC作为驱动,进行连接。

这次实验的平台是SQL Server 2008 R2.

首先,需要下载适合的JDBC驱动,因为我装的是2008R2,所以我选择用最新的4.0版本的驱动,而且JDK最好是5.0 或者 6.0系列的,7.0系列可能有问题。

下载好后,安装后会发现是一个解压包,解压到一个临时文件夹即可,最好是解压到默认位置。

下图是我的文件路径,以及解压后的文件结构,其中本来有两个jar的,我把一个删除了,只留下jdbc4这个jar包。

下面是进行简单的配置:

1、在环境变量CLASSPATH中加上sqljdbc4.jar包的路径,记得要在前面加分号隔开  ;C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\sqljdbc4.jar

2、在java的安装路径 C:\Program Files\Java\jre6\lib\ext 也就是ext文件下加入sqljdbc4.jar包


这样就可以不必在每次需要用到jdbc的时候都去引入这个jar包到项目中.

3、配置SQL SERVER服务器

    a.打开SQL Server Configuration Manager -> SQLEXPRESS的协议 -> TCP/IP 
    b.右键单击启动TCP/IP 
    c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433
    d.重新启动SQL Server 2005服务中的SQLEXPRESS服务器
    e.关闭SQL Server Configuration Manager

4、在上面jdbc的解压文件中,可以看到有auth这个文件夹,找到sqljdbc_auth.dll文件,并将该文件拷贝到 C:\WINDOWS\system32 供系统调用。

这样就配置完成了,可以来写测试代码了,写之前最好是可以重启一下机器,保证对SQLSERVER的配置会生效。

下面是一段测试代码

import java.sql.*;

public class JdbcConnect {

	/*
	 * 程序要先运行建表,此时将插入数据部分注释,然后再运行一次程序,这一次将建表部分注释,运行插入部分,此时会在控制台输出插入表中的数据
	 * 至于为什么两次不能一次性完成,暂时还没搞懂
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载驱动
		String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=sample"; //连接到sample数据库
		String userName = "sa"; //用户名
		String userPsw = "02270303"; //密码
		Connection dbConnect;
		
		try {
			Class.forName(driverName);
			dbConnect = DriverManager.getConnection(dbURL,userName,userPsw);
			Statement s = dbConnect.createStatement();
			
//			//建表
//			String createTable = "create table Stu(Name char(15),Number char(16))";
//			s.executeQuery(createTable);
			
			//插入数据
			dbConnect = DriverManager.getConnection(dbURL,userName,userPsw);
			PreparedStatement prestatement;
			
			String data_1 = "insert into Stu(Name,Number) values(?,?)";
			prestatement = dbConnect.prepareStatement(data_1);
			prestatement.setString(1,"wangjiakai");
			prestatement.setString(2,"20102100227");
			prestatement.executeUpdate();
			
			String data_2 = "insert into Stu(Name,Number) values(?,?)";
			prestatement = dbConnect.prepareStatement(data_2);
			prestatement.setString(1,"xiaoming");
			prestatement.setString(2,"20102100999");
			prestatement.executeUpdate();
			
			//检索
			String query = "select * from Stu";
			ResultSet set = s.executeQuery(query);
			while(set.next())
			{
				System.out.println("Name "+ set.getString(1));
				System.out.println("Number "+ set.getString(2));
			}
			s.close();
			prestatement.close();
			dbConnect.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
我操作的数据库是一个叫做sample的数据库,在SQLSERVER中新建的。

就像我代码中所说的,建表的操作和插入的操作不能同时进行,不过我们一般使用JDBC一般都是在已建好的表中进行操作,所以建表还是在SQLSERVER中建会比较好,只写了简单的插入和检索操作,重点还是开头的连接操作,连接完成后,就没什么大问题了。
个人比较喜欢用上面这种URL的方式进行连接,当然也可以用其他方式去连接,至于其中的差别,我并没有去探究。


版权声明:本文为Kay_Sprint原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。