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

来源:互联网 发布:虚拟机怎么连接网络 编辑:程序博客网 时间:2024/04/29 10:12

第一步:

要下载三个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

原创粉丝点击