一 

1.首先,到微软官方下载jdbc驱动包 Microsoft JDBC Driver 4.0 for SQL Server

2.运行sqljdbc_4.0.2206.100_chs.exe,把文件解压到C盘的program files目录下

3.打开C:\ProgramFiles\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\auth\x64 ,把sqljdbc_auth.dll复制到C:\Windows\System32目录下

4.把jdbc包的路径加入到环境变量中,右键计算机-属性-高级系统设置-高级-环境变量,找到path,把路径C:\ProgramFiles\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs;添加到最后

二 往项目中导入jdbc包



三 与MSSQL连接并读取数据

可以新建一个专门处理数据库连接的类

import java.sql.*;

public class CreateConn {

	private Connection conn;

	CreateConn(){}

	/*与数据库建立连接**/
public Connection getConnection()
{
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //连接MSSQL,建立桥接器
System.out.println("数据库驱动加载成功!"); String userName = "administrator"; //用户名
String passWord = "xxxx"; //密码
String url = "jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=XSBOOK"; //XSBOOK是数据库名 conn = DriverManager.getConnection(url,userName,passWord); //建立、连接数据源,用户名,密码 if(conn != null)
{
System.out.println("成功与数据库建立连接 !");
}
}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
} }

可以新建一个StudentSearch类来查询学生信息

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.*; public class StudentSearch {
public static void main(String []args){
mainFrame frame = new mainFrame("学生信息查询");
} } class mainFrame extends JFrame implements ActionListener,Runnable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Thread thread;
private JPanel panel; //控制面板
private JScrollPane text; //可滚动面板
private JLabel label; //提示标签
private JTextField name; //编辑文字面板
private JButton search; //查找按钮
private JButton clear; //清除按钮
private JTextArea display; //显示结果区域
private ResultSet rs; mainFrame(String title){
this.setTitle(title); //窗口名称
this.setSize(800,300); //窗口大小
this.setLocation(200,200); //窗口位置 thread = new Thread(this); //当前线程 label = new JLabel("请输入要查询的学生姓名或学号:");
name = new JTextField(10);
search = new JButton("搜索");
search.addActionListener(this);
clear = new JButton("清除");
clear.addActionListener(this); display = new JTextArea(10,10);
display.setEditable(false);//设置为不可编辑
display.append("| 学号"+" | "+" 姓名 "+" | "+" 性别 "+" | "+" 年龄 "+" | "+" 出生日期 "+" | "+" 学院 | "+" 政治面貌 "+" |"+"已借书籍数"+"|"+"应还书数 "+'\n'); panel = new JPanel(); text = new JScrollPane(display); panel.add(label);
panel.add(name);
panel.add(search);
panel.add(clear); this.add(text,BorderLayout.CENTER);
this.add(panel,BorderLayout.NORTH); this.setVisible(true);
this.validate();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} //监听器方法实现
@Override
public void actionPerformed(ActionEvent event)
{
// TODO Auto-generated method stub
if(event.getSource() == search) //查找按钮
{
if(!(thread.isAlive()))
thread = new Thread(this);
try
{
thread.start();
}
catch(Exception e){}
}
else if(event.getSource() == clear) //清除按钮
{
display.setText("| 学号"+" | "+" 姓名 "+" | "+" 性别 "+" | "+" 年龄 "+" | "+" 出生日期 "+" | "+" 学院 | "+" 政治面貌 "+" |"+"已借书籍数"+"|"+"应还书数 "+'\n');
}
} //线程方法复写
@Override
public void run()
{
// TODO Auto-generated method stub
CreateConn create = new CreateConn();
Connection conn = create.getConnection(); //与数据库建立连接
rs = search(conn); //返回搜索结果 try
{
while(rs.next()) //读取内容
{
String name = rs.getString(1);
String num = rs.getString(2);
String sex = rs.getString(3);
String age = rs.getString(4);
String birthdate = rs.getString(5);
String college = rs.getString(6);
String party = rs.getString(7);
String borrowBookN = rs.getString(8);
String returnBookN = rs.getString(9);
display.append(num+" "+name+" "+sex+" "+age+" "+birthdate+" "+college+" "+party+" "+borrowBookN+" "+returnBookN+'\n');
}
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
} //查找匹配,返回查找结果ResultSet
public ResultSet search(Connection conn)
{
try
{
String studentName = name.getText().trim();
Statement sql = conn.createStatement(); //SQL对象 if(studentName.equalsIgnoreCase("郑海生") || studentName.equalsIgnoreCase("2012150027"))
rs = sql.executeQuery("SELECT * FROM Student_BookMessage WHERE 姓名 = '郑海生'"); //执行语句
else if(studentName.equalsIgnoreCase("卢志鹏") || studentName.trim().equalsIgnoreCase("2012150001"))
rs = sql.executeQuery("SELECT * FROM Student_BookMessage WHERE 姓名 = '卢志鹏'");
else if(studentName.trim().equalsIgnoreCase("胡锦涛") || studentName.trim().equalsIgnoreCase("2011180128"))
rs = sql.executeQuery("SELECT * FROM Student_BookMessage WHERE 姓名 = '胡锦涛'");
else if(studentName.equalsIgnoreCase("江泽民") || studentName.trim().equalsIgnoreCase("2009110001"))
rs = sql.executeQuery("SELECT * FROM Student_BookMessage WHERE 姓名 = '江泽民'");
else rs = sql.executeQuery("SELECT * FROM Student_BookMessage WHERE 姓名 = '习近平'"); }
catch(SQLException e){} return rs;
} }

效果图







Java之MS SQL数据库连接的更多相关文章

  1. CentOS 65 java 访问 MS SQL

    #install unixODBC sudo yum install unixODBC unixODBC-devel -y #install freetds #1st download freetds ...

  2. java连接ms sql server各类问题解析

    首先先来说下使用微软自己开发的架包进行ms sql server数据库的连接时,sql 2000与sql 2005的连接方式略有不同: 1.首先驱动不一样,sql 2000的连接驱动包有三个,分别是: ...

  3. MS SQL Server 数据库连接字符串详解

    MS SQL Server 数据库连接字符串详解 原地址:http://blog.csdn.net/jhhja/article/details/6096565 问题 : 超时时间已到.在从池中获取连接 ...

  4. Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)

    Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...

  5. 在易语言中调用MS SQL SERVER数据库存储过程方法总结

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...

  6. ms sql server 在abator生成的 insert 无法获取插入 id 的原因

    <insert id="abatorgenerated_insert" parameterClass="net.xxxxxl.dataobject.Users&qu ...

  7. Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver

    此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源 ...

  8. [转]ms sql 2000 下批量 附加/分离 数据库(sql语句)

    这次公司要把MS SQL Server 2000 服务器上的数据库复制到新的服务器上面去,于是几百个数据库文件就交给我附加到新服务器上了   以前一直没接触过这方面的东西,于是果断谷歌了也百度了  找 ...

  9. Set up JBPM5.4 Final Installer to use MS SQL Server 2008 using JTDS(转)

    [-] A What I Am Going To Do B The Setup Steps C Lets Install it   A. What I Am Going To Do B. The Se ...

随机推荐

  1. scribe、chukwa、kafka、flume日志系统对比 -摘自网络

    1. 背景介绍许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:(1) 构建应用系统和分析系统的桥梁 ...

  2. hibernate 连接数据库时报错

         错误信息 : com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allo ...

  3. [转]SQL中char、varchar、nvarchar的区别

    char    char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符.   nvarcha ...

  4. UVALive 7276 Wooden Signs (DP)

    Wooden Signs 题目链接: http://acm.hust.edu.cn/vjudge/contest/127406#problem/E Description http://7xjob4. ...

  5. App启动加载广告页面思路

    需求 很多app(如淘宝.美团等)在启动图加载完毕后,还会显示几秒的广告,一般都有个跳过按钮可以跳过这个广告,有的app在点击广告页之后还会进入一个广告页面,点击返回进入首页.今天我们就来开发一个广告 ...

  6. Algorithms Part 1-Question 6- 2SUM Median-数和以及中位数问题

    本次有两个编程问题,一个是求两个数的和满足一定值的数目,另一个是求中位数. 2SUM问题 问题描述 The goal of this problem is to implement a variant ...

  7. Codeforces Round #353 (Div. 2) C. Money Transfers (思维题)

    题目链接:http://codeforces.com/contest/675/problem/C 给你n个bank,1~n形成一个环,每个bank有一个值,但是保证所有值的和为0.有一个操作是每个相邻 ...

  8. [转]Oracle关于null的处理

    转至:http://www.2cto.com/database/201209/157606.html 关于空值null的排序问题   Oracle排序中NULL值处理的五种常用方法:    1.缺省O ...

  9. UI进阶 CocoaPods的安装使用步骤

    一. CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具.在开发iOS应用时,会经常使用第三方类库,比如SDWebImage.AFNetworking等等,手动的下载与 ...

  10. eclipse中异常的快捷键

    选中你要try的代码,alt+shift+z 就会弹出一个菜单,里面有个try 选项