前提条件:已经有JDK1.8和ecplise 以及sql server 2008(没有的兄弟们请先出门右转搞好这三个再回来看)
说明:1. jdk1.8中JDBC砍掉了JDBC-ODBC,想用这种JDBC的兄弟下个版本低一点的JDK(1.6就不错)就行了。2. 所以这篇文章只是用来配置纯JDBC的,同时说明一下JDBC需要的jre包是sqljdbc,默认是是没有的,需要导入3. 请关掉你的微软自带的防火墙(或者允许sqlserver连接)
1.获取sqljdbc包,如果需要请点击这里
包里面有3个文件一个文件夹:三个文件分别是协议说明,win下sqljdbc的压缩包,linux下的jdbc的压缩包,文件夹是win下sqljdbc的展开。
2.进入下载后的sqljdbc中唯一内个目录(名字超级长的内个),一直点进去,看到jre8文件夹,里面放的就似乎我们需要的sqljdbc42.jar包了
3.将sqljdbc42.jar放入你的jre目录下(也可以不用做,不过最好还是放在一起)
4.导入ecplise:
- 打开ecplise,右键点击你的项目
- Build Path -> Configure Build Path
- 进入Libraries -> Add External JARS…
- 导入你的sqljdbc42.jar
最后的成品:
jdk方面配置完成
开始配置sql server
5.打开 sql server的配置管理器(去运行菜单里面的sqlserver目录下找一找)
6. (第一个坑) ,远程过程调用失败
检查你机器的所有软件列表,发现有sql server2012(也有可能有2016),将这个卸载,然后刷新一下就ok了
7. 配置sql server tcp/ip
8.重启sql server (千万别忘了)
右键这个,然后重启
9.代码:
/*
* JDBC方式操作数据库
* 1.引包
*
*/
package com.test2;
import java.sql.*;
public class test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//PreparedStatement
//定义需要的对象
PreparedStatement ps = null;
Connection ct = null;
ResultSet rs = null;
try{
//初始化各个对象
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.得到连接
//注意JDBC-ODBC的原数据库的配置就没有用了
ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=spdb1","sa","sa");
System.out.println("数据库连接成功");
//3.创建ps
ps = ct.prepareStatement("select * from emp");
//4.执行[如果是增加删除修改:executeUpdate(),如果是查询:executeQuery()]
rs = ps.executeQuery();
//rs指向第一条记录的前一条
//循环取出,雇员的名字,雇员的薪水,部门的编号
while(rs.next())
{
String name = rs.getString(2);
float sal = rs.getFloat(6);
int deptno = rs.getInt(8);
System.out.println(name+" "+sal+" "+deptno);
}
}catch(Exception e){
e.printStackTrace();
}finally{
}
}
}
输出: