花了大半天的时间终于解决了问题,下面分享一下我的过程:
我的系统安装的是jdk6,netbeans和Mycrosoft SqlServer 2005,java连接数据库一般要分六部走
1.注册驱动
2.用驱动管理类创建连接
3.创建语句statement封装sql脚本语句
4.执行
5.处理返回的结果
6.关闭相关连接
在这里连接的是SqlServer2005,属于第三方驱动,首先得从网上下载该驱动,可以到微软官方网站上下载最新版本的JDBC 1.2,
然后将下载的sqljdbc_1.2.2828.100_chs(即Microsoft SQL Server 2005 JDBC Driver 1.2中文版)解压缩到C:/Program Files/Microsoft SQL Server 2005 JDBC Driver,在classpath后面加上一项C:/Program Files/sqljdbc_1.2/chs/sqljdbc.jar
接着要启用sqlserver的tcp/ip协议,方法:
开始-所有程序-Microsoft SQL Server 2005-配置工具-SQL Server Configrution Manager。
打开后找到SQL Server 2005网络配置下面的SQLEXPRESS协议,在右边的窗口会看见TCP/IP,右 键 点击,选择启用,再双击TCP/IP,在协议下全部侦听选是,启用选是。在p地址栏,选择ippall将tcp端口设置为1433,确定之后,在服务里将SQL Server (MSSQLSERVER)和SQL Server (SQLEXPRESS)重新启动一下。
接着要对netbeans进行设置
数据库->驱动程式,按鼠标右键,选择菜单“新建驱动程式...",此时将弹出一个对话框:“新建JDBC驱动程式”,点击“添加(A)...”按钮,找到你你放驱动包的位置,我的是:C:/Program Files/sqljdbc_1.2/chs/sqljdbc.jar,再在名称那里输入个名字,如我的是:Microsoftware Sql server 2005(1),然后确定。
驱动加入以后,在"数据库"->"驱动程式"下多了一个刚输入的"SQLServer2005",选中它并按鼠标右键,选择"连接使用...",此时将弹出一个对话框,在"数据库URL(A)"处输入:"jdbc:sqlserver://localhost:1433; DatabaseName=(您的数据库名)", 然后再输入用户名与口令,并勾选上"在此会话期间记住口令"(此项非必选),最后按"确定"按钮,此时应该就显示连接成功(若显示出错无法连接,请看下一步的处理,处理好后再继续),并应该在数据库下多了一个名称形如:"jdbc:sqlserver....."的小图标,选中它并按鼠标右键,选择菜单"连接...",此时一切就OK了。
若在上一步没有连接成功,出现错误讯息,应该检查上面的.您的SQL Server是否有启动TCP/IP通讯协定,并手工指定了Port号如1433;2.您的SQL Server的安全认证是否有选择混合认证;为何有这点注意事项呢,是因为SQL Server express 2005基于安全性考量,其默认设置为不启动TCP/IP协定,且即使启动了,对外服务的Port也是动态的,安全认证为仅Windows认证。
然后右键,点连接
连接好以后,右键执行命令
右边将可以输入sql语句对数据库操作,我当时这个可以成功了。
测试代码:
package sqlservertest;
import java.sql.*;
/**
*
* @author admin
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try{
//step1 regist driver,
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//step2 build connection
Connection conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=student","zhangjinlin","200792005");
//step3 create statement
PreparedStatement psm=conn.prepareStatement("insert into student(Snumber,Sname,Sclass) values(?,?,?)");
//step4 excute
psm.setString(1, "2007");
psm.setString(2, "李阳");
psm.setString(3, "0719");
psm.executeUpdate();
//step5 close
psm.close();
conn.close();
System.out.println("successfully!!");
}
catch(Exception e){
System.out.println("failed");
e.printStackTrace();
}
}
}