您的位置:首页 > 数据库

Java 直接用jdbc连接数据库 sql2000 的步骤和验证代码

2013-02-25 21:02 651 查看
第一步:

要下载三个jar包

msbase.jar

mssqlserver.jar

msutil.jar

下载地址:

http://dldx.csdn.net/fd.php?i=607946265442265&s=100d55cd68cef5cc5d6445886496c31c

用360浏览器直接复制即可下载

第二步:

将jar包加载到myEclipse 中去

打开myEclipse, 点击菜单project 下拉条中的 properties 点击 javaBuilderPass

在对话框的右侧的library点击add externaljars 浏览找到下载的jar文件路径 即可

第三步:

编写测试代码:

首先要有数据库,所以献血数据库文件代码,打开查询分析器,写入下面代码:

create database spdb1

use spdb1

go

----创建表dept

create table dept

(deptno int primary key,----定义主键

deptName nvarchar(30),

deptloc nvarchar(30)

)

--创建表emp

create table emp

(

empno int,

ename nvarchar(30),

job nvarchar(30),

mgr nvarchar(30),

hiredate datetime,

sal numeric(10,2),

comm numeric(10,2),

deptno int foreign key referencesdept(deptno) ----定义外键,

)

--注意

--①主键和外键的类型要一致

--②外键只能指向主键

--写入数据

--要先写入 dept的数据 因为emp要用到它的deptno

insert into dept values(10 ,'accounting', 'new york')

insert into dept values(20,'reserch','dallas')

insert into dept values(30,'sales','chicago')

insert into dept values(40,'operations','boston')

----写入emp

insert intoemp(empno,ename,job,mgr,hiredate,sal,deptno) values

(7369,'smith','clerk',7902,'1980-12-7',800.00,20)

insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)values

(7499,'allen','slasman',7698,'1981-2-20',1600.00,300.00,30)

insert intoemp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values

(7521,'ward','salesman',7698,'1981-2-22',1250.00,500.00,30)

insert into emp(empno,ename,job,mgr,hiredate,sal,deptno)values

(7566,'jones','manager',7839,'1981-4-2',2975.00,20)

insert intoemp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values

(7654,'martin','saleman',7698,'1981-9-28',1250.00,1400.00,20)

insert into emp(empno,ename,job,mgr,hiredate,sal,deptno)values

(7698,'black','manager',7839,'1981-5-1',2850.00,30)

insert intoemp(empno,ename,job,mgr,hiredate,sal,deptno) values

(7782,'clark','manager',7839,'1981-6-9',2450.00,10)

insert intoemp(empno,ename,job,mgr,hiredate,sal,deptno) values

(7788,'scott','analyst',7566,'1987-4-19',3000.00,20)

insert intoemp(empno,ename,job,hiredate,sal,deptno) values

(7839,'king','president','1980-12-7',5000.00,10)

insert intoemp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values

(7844,'turner','salesman',7698,'1981-9-8',1500.00,0.00,30)

insert intoemp(empno,ename,job,mgr,hiredate,sal,deptno) values

(7876,'adams','clerk',7788,'1987-5-23',1100.00,20)

insert intoemp(empno,ename,job,mgr,hiredate,sal,deptno) values

(7900,'james','clerk',7698,'1981-12-3',950.00,30)

insert intoemp(empno,ename,job,mgr,hiredate,sal,deptno) values

(7902,'ford','analyst',7566,'1981-12-3',3000.00,20)

insert intoemp(empno,ename,job,mgr,hiredate,sal,deptno) values

(7934,'miller','clerk',7782,'1982-1-23',1300.00,10)

insert intoemp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values

(9999,'huasheng','clerk',7782,'1989-12-7',2456.34,55.66,10)

直接粘贴即可 运行创建数据库,完成后 在MyEclipse 中创建java工程

添加代码如下:

import java.sql.*;

public
class
ClassJDBC2 {
public
static void
main(String[] args){
//preparestatement

String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName= spdb1";
String dbName = "sa";
String passWord = "sa";

PreparedStatement ps = null;
Connection con = null;
ResultSet rs = null;
try{
//初始化对象
//1、加载驱动
Class.forName(driverName);

//2、得到连接
con = DriverManager.getConnection(url,dbName,passWord);

//3、创建火箭车 PrepaeredStatement
ps = con.prepareStatement("select ename,sal,deptno from spdb1.dbo.emp");

//4、执行语句
//在执行查询语句是使用的时executeQuery();语句
//如果是增加删除修改则使用 executeUpdate()
rs = ps.executeQuery();

//循环取出部门的编号
while(rs.next())
{
String name = rs.getString(1);
float sal =rs.getFloat(2);
int num = rs.getInt(3);
System.out.println(name+""+sal+" "+num);
}
}catch(Exception e){
e.printStackTrace();
}finally{
//关闭资源,原则后创建者先关闭
try {
if(rs !=
null){
rs.close();
}

if(ps !=
null){
ps.close();
}
if(con !=
null){
con.close();
}
} catch (SQLException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
}
}

注意:

经常报的错误是:

①        java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

这是由于 ①端口的设置不匹配造成的,设置 sql 的 服务器网络使用工具 和客户端网络实用工具 的tcp/ip的属性 为1433②没有启动sql的服务器 所致

②        提示错误 对象名无效

这是由于对象的名字没有写对,在执行

ps = con.prepareStatement("select ename,sal,deptno from spdb1.dbo.emp");
时对象名格式必须为:数据库名.所有者.表名;

即 spdb1.dbo.emp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: