JAVA如何连接SQL server2000

由于我们JAVA所在的实验室安装的DB是SQL Server2000,现在将通过JDBC与SQL Server2000进行连接的过程给大家走一遍:


1.数据库的设置  
(1)  数据库SQL server2000采用SQL server登录方式或者SQL和Windows登录方式均可,假设登录的用户名为sa,密码为123456(不建议为空密码)
(2) 在企业管理器中创建自己的数据库,假设创建了数据库名为test;其中一张表名为customers,字段分别是ID(int),NAME(varchar,8),EMAIL(varchar),BIRTH(datetime)
(3)  启动SQL server2000数据库服务器
  (可以通过服务器配置工具和客户端配置工具观察或者修改端口号,默认是1433)


2.JAVA工程设置:(仍然将连接字段写在jdbc.properties数据库访问配置文件中的这种方式;方便我们所写的程序代码和具体的数据库解耦,形成更通用的代码)

(1) 工程下新建lib文件夹,将msbase.jar;mssqlserver.jar;msutil.jar复制在该文件夹下

(即将3个实现了SQL server数据库访问的jar包复制到项目的lib文件夹下)

    注意:将工程所需要的jar包放在lib文件夹下一个良好的编程习惯。jar包里面放着Microsoft公司实现了的JDBC面向数据库的接口的实现类,我们只需要使用这些实现类就可以了。

     通过Buid Path-->Add to Buid Path,就可以将这3个jar导入你的项目中

(2)修改jdbc.properties配置文件中的字段


driver=com.microsoft.jdbc.sqlserver.SQLServerDriver

jdbcUrl=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test

#此处和mySQL相比较比较特殊的是需要将数据库的名字用DatabaseName引出

user=sa

password=123456


3.代码测试

import java.util.Properties;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Date;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;


public class SQLserverTest {
	
	public static void main(String[] args) throws Exception{

		Connection conn = null;
	
	
			conn = getConnection();
			//main方法是
				String sql = null;
			
		//sql = "INSERT INTO customers (SSN,NAME, EMAIL, BIRTH) " +
		//		"VALUES(140203199010039922,'Yuna', 'yy@xust.edu.cn', '1990-10-03')";
		//sql = "DELETE FROM customers WHERE id = 1";
		sql = "UPDATE customers SET name = 'TOM' " +"WHERE id = 1";
	    update(sql);
	    
	    	sql = "SELECT ssn,id, name, email, birth FROM customers";
	    	query(sql);

	}
	//对release方法进行重载
	 /**(1) 关闭 Statement 、 Connection和ResultSet
	  * 关闭的顺序是: 先关闭后获取的. 即先关闭 Statement 和ResultSet,后关闭 Connection
	  * @param rs
	  * @param statement
	  * @param conn
	  */
	public static void release(ResultSet rs,Statement statement, Connection conn) {
		if(rs != null){
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		
		if (statement != null) {
			try {
				statement.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}

		if (conn != null) {
			try {
				conn.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
	}
	
	/**
	 *(2) 关闭 Statement 和 Connection
	 * I.Connection、Statement 都是应用程序和数据库服务器的连接资源. 使用后一定要关闭.
	 * 需要在 finally 中关闭 Connection 和 Statement 对象. 
	 * 
	 *II.关闭的顺序是: 先关闭后获取的. 即先关闭 Statement 后关闭 Connection
	 * @param statement
	 * @param conn
	 */
	public static void release(Statement statement, Connection conn) {
		if (statement != null) {
			try {
				statement.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}

		if (conn != null) {
			try {
				conn.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
	}

	public static void query(String sql){
		Connection conn = null;
		Statement statement = null;
		ResultSet rs = null;
		
		try {

			conn = getConnection();
			statement = conn.createStatement();

			rs = statement.executeQuery(sql);
	
			while(rs.next()){
				int id = rs.getInt(2);
				String name = rs.getString("name");
				String email = rs.getString(4);
				Date birth = rs.getDate(5);
				
				System.out.println(id);
				System.out.println(name);
				System.out.println(email);
				System.out.println(birth);
			}
			
		} catch (Exception e) {
					e.printStackTrace();
		} finally{
					release(rs, statement, conn);
		}
	}
	public static void update(String sql){
		//一、使用Statement 对象,对数据库进行简单的插入、删除和更新操作,
		/**思路(填空题):
		 * 1. 获取数据库连接
		 * 2. 关闭连接
		 * 3.准备可以执行的 SQL 语句
		 * 4.执行sql操作
		 * 1). 获取操作 SQL 语句的 Statement 对象: 
		 * 2)调用 Statement 对象的 executeUpdate(sql) 执行 SQL 语句进行插入
		 * 5.关闭 Statement 对象.
		 * 如果碰到红线的部分,Suround with-->try/catch block或是添加抛出异常
		 *静态方法调用的也应该是静态的方法
		 */
		Connection conn = null;
		Statement statement = null;
		
		try {
			conn = getConnection();
			statement = conn.createStatement();
			statement.executeUpdate(sql);
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			release(statement, conn);
		}
	}

public static Connection getConnection() throws Exception{
			//1. 准备连接数据库的 4 个字符串. 
			//1). 创建 Properties 对象
			Properties properties = new Properties();
			
			//2). 获取 jdbc.properties 对应的输入流
		InputStream in = SQLserverTest.class.getClassLoader().getResourceAsStream(
				"jdbc.properties");
			
			//3). 加载 2) 对应的输入流
			properties.load(in);
			
			//4). 具体决定 user, password 等4 个字符串. 
			String user = properties.getProperty("user");
			String password = properties.getProperty("password");
			String jdbcUrl = properties.getProperty("jdbcUrl");
			String driver = properties.getProperty("driver");
			
			//2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
			Class.forName(driver);
			
			//3. 通过 DriverManager 的 getConnection() 方法获取数据库连接. 
			return DriverManager.getConnection(jdbcUrl, user, password);
			}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值