一 

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. js滑动门及对像的使用

    function scrollDoor() { } scrollDoor.prototype = { sd: function (menus, divs, openClass, closeClass) ...

  2. redis 应用

    前段使用JQueryMobile进行展示. 实现了用户注册,登陆,列表基本功能 非常简洁. 如果想了解Redis存储,Express的处理可以提供一些基础的示范. 下载地址: https://gith ...

  3. work5

    这一次写的内容是黄金豆小游戏,由于现在偏重写服务器端.对于算法层面其实涉及不多,更多偏于工程上的架构. 总而言之本次作业的服务器核心是用web.py所写,而且为了方便其他用户写客户端,架构非常简单. ...

  4. POJ 1502 MPI Maelstrom(最短路)

    MPI Maelstrom Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4017   Accepted: 2412 Des ...

  5. codeforces 617BChocolate

    B. Chocolate time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  6. javascript中sleep等待实现

    function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < ...

  7. SOURCES的文件格式

    SOURCES的文件格式: TARGETNAME=drivername , -本参数用于指定生成的设备驱动程序名称(不需后缀名),所产生的文件 -为drivername.sys. TARGETPATH ...

  8. [转]eclipse中使用maven插件的时候,运行run as maven build的时候报错

    转至:http://fxb4632242.iteye.com/blog/2193945 -Dmaven.multiModuleProjectDirectory system propery is no ...

  9. python中objects的all和get方法的区别

    all返回的是QuerySet: get返回的是模型对象. 想要获取查询结果的字段值: 从QuerySet中获取对象可以通过for in的形式遍历,之后通过对象获取对象的具体值: get 返回的是对象 ...

  10. 使用gcc编译gdb调试

    gcc 在linux系统中,默认是没有安装gcc编译器的,可以通过命令 rpm -q | grep gcc 来查看.安装命令为: yum -y install gcc 安装后,编写一个.c结尾的文件. ...