第一步:
要下载三个jar包
msbase.jar
mssqlserver.jar
msutil.jar
下载地址:
http://dldx.youkuaiyun.com/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