Java之MS SQL数据库连接
一
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数据库连接的更多相关文章
- CentOS 65 java 访问 MS SQL
#install unixODBC sudo yum install unixODBC unixODBC-devel -y #install freetds #1st download freetds ...
- java连接ms sql server各类问题解析
首先先来说下使用微软自己开发的架包进行ms sql server数据库的连接时,sql 2000与sql 2005的连接方式略有不同: 1.首先驱动不一样,sql 2000的连接驱动包有三个,分别是: ...
- MS SQL Server 数据库连接字符串详解
MS SQL Server 数据库连接字符串详解 原地址:http://blog.csdn.net/jhhja/article/details/6096565 问题 : 超时时间已到.在从池中获取连接 ...
- Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)
Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
- ms sql server 在abator生成的 insert 无法获取插入 id 的原因
<insert id="abatorgenerated_insert" parameterClass="net.xxxxxl.dataobject.Users&qu ...
- Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver
此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源 ...
- [转]ms sql 2000 下批量 附加/分离 数据库(sql语句)
这次公司要把MS SQL Server 2000 服务器上的数据库复制到新的服务器上面去,于是几百个数据库文件就交给我附加到新服务器上了 以前一直没接触过这方面的东西,于是果断谷歌了也百度了 找 ...
- 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 ...
随机推荐
- scribe、chukwa、kafka、flume日志系统对比 -摘自网络
1. 背景介绍许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:(1) 构建应用系统和分析系统的桥梁 ...
- hibernate 连接数据库时报错
错误信息 : com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allo ...
- [转]SQL中char、varchar、nvarchar的区别
char char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. nvarcha ...
- UVALive 7276 Wooden Signs (DP)
Wooden Signs 题目链接: http://acm.hust.edu.cn/vjudge/contest/127406#problem/E Description http://7xjob4. ...
- App启动加载广告页面思路
需求 很多app(如淘宝.美团等)在启动图加载完毕后,还会显示几秒的广告,一般都有个跳过按钮可以跳过这个广告,有的app在点击广告页之后还会进入一个广告页面,点击返回进入首页.今天我们就来开发一个广告 ...
- Algorithms Part 1-Question 6- 2SUM Median-数和以及中位数问题
本次有两个编程问题,一个是求两个数的和满足一定值的数目,另一个是求中位数. 2SUM问题 问题描述 The goal of this problem is to implement a variant ...
- Codeforces Round #353 (Div. 2) C. Money Transfers (思维题)
题目链接:http://codeforces.com/contest/675/problem/C 给你n个bank,1~n形成一个环,每个bank有一个值,但是保证所有值的和为0.有一个操作是每个相邻 ...
- [转]Oracle关于null的处理
转至:http://www.2cto.com/database/201209/157606.html 关于空值null的排序问题 Oracle排序中NULL值处理的五种常用方法: 1.缺省O ...
- UI进阶 CocoaPods的安装使用步骤
一. CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具.在开发iOS应用时,会经常使用第三方类库,比如SDWebImage.AFNetworking等等,手动的下载与 ...
- eclipse中异常的快捷键
选中你要try的代码,alt+shift+z 就会弹出一个菜单,里面有个try 选项