java入门--java连接SQLServer数据库
2015-11-18 14:27
399 查看
一个项目需要手动写一个SQLServer连接,记录一下中间出现的问题,留作参考
数据库JDBC连接代码:
package savelog.youxinpai.com;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.sql.Connection;
/**
* @author zhangzuoqian
*/
public class DBConnection {
private Connection dbConn = null;
private Statement stmt=null;
private ResultSet rs=null;
/*加载数据库驱动*/
private Connection getconnection(){
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
dbConn = DriverManager.getConnection(Global.dbURL, Global.userName, Global.userPwd);
} catch (Exception e) {
e.printStackTrace();
}
return dbConn;
}
/*获得Statement对象*/
private Statement getstatement(){
try {
stmt=getconnection().createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return stmt;
}
/*获得ResultSet对象*/
private ResultSet getResultSet(String sql){
try {
rs =getstatement().executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/*关闭连接*/
private void close() {
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (dbConn != null)
dbConn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/*将数据库中的Vin码写入到内存的HashMap中*/
public static void putVinMap(){
DBConnection db=new DBConnection();
ResultSet result=db.getResultSet("SELECT [VIN码],[车辆id],[车辆编号],[车型] FROM vw_Vehicle");
try {
Global.vinList.clear();
while(result.next()){
/*由于列名是中文,所以重新封装*/
Map<String, String> tempMap=new HashMap<String, String>();
tempMap.put("vinCode", result.getString(1));
tempMap.put("carId", result.getString(2));
tempMap.put("carNum", result.getString(3));
tempMap.put("carType", result.getString(4));
Global.vinList.add(tempMap);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
db.close();
}
}
public static void main(String args[]){
DBConnection.putVinMap();
}
}
其中需要注意的点如下:
1.SQLServer连接jar包下载地址:http://pan.baidu.com/s/1i3i311V
2.需要BuildPath到项目中,并且需要在web-inf/lib中复制一份。
如果仅仅在buildpath中配置jar包,会造成一个奇怪的现象,即:如果使用main函数java application的方式启动数据库连接,是可以正常连接的。但是当使用Servlet调用时,会出现无法加载类的异常。理论支持还没有来得及处理,先记录一下。
3.SQLServer的驱动语句是区别版本的,本文使用的是2008版本:
com.microsoft.sqlserver.jdbc.SQLServerDriver
与2005版本有一些区别,同样会造成驱动无法加载的异常。
数据库JDBC连接代码:
package savelog.youxinpai.com;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.sql.Connection;
/**
* @author zhangzuoqian
*/
public class DBConnection {
private Connection dbConn = null;
private Statement stmt=null;
private ResultSet rs=null;
/*加载数据库驱动*/
private Connection getconnection(){
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
dbConn = DriverManager.getConnection(Global.dbURL, Global.userName, Global.userPwd);
} catch (Exception e) {
e.printStackTrace();
}
return dbConn;
}
/*获得Statement对象*/
private Statement getstatement(){
try {
stmt=getconnection().createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return stmt;
}
/*获得ResultSet对象*/
private ResultSet getResultSet(String sql){
try {
rs =getstatement().executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/*关闭连接*/
private void close() {
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (dbConn != null)
dbConn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/*将数据库中的Vin码写入到内存的HashMap中*/
public static void putVinMap(){
DBConnection db=new DBConnection();
ResultSet result=db.getResultSet("SELECT [VIN码],[车辆id],[车辆编号],[车型] FROM vw_Vehicle");
try {
Global.vinList.clear();
while(result.next()){
/*由于列名是中文,所以重新封装*/
Map<String, String> tempMap=new HashMap<String, String>();
tempMap.put("vinCode", result.getString(1));
tempMap.put("carId", result.getString(2));
tempMap.put("carNum", result.getString(3));
tempMap.put("carType", result.getString(4));
Global.vinList.add(tempMap);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
db.close();
}
}
public static void main(String args[]){
DBConnection.putVinMap();
}
}
其中需要注意的点如下:
1.SQLServer连接jar包下载地址:http://pan.baidu.com/s/1i3i311V
2.需要BuildPath到项目中,并且需要在web-inf/lib中复制一份。
如果仅仅在buildpath中配置jar包,会造成一个奇怪的现象,即:如果使用main函数java application的方式启动数据库连接,是可以正常连接的。但是当使用Servlet调用时,会出现无法加载类的异常。理论支持还没有来得及处理,先记录一下。
3.SQLServer的驱动语句是区别版本的,本文使用的是2008版本:
com.microsoft.sqlserver.jdbc.SQLServerDriver
与2005版本有一些区别,同样会造成驱动无法加载的异常。
相关文章推荐
- jdbc中的Statement和PreparedStatement接口对象
- 推荐Sql server一些常见性能问题的解决方法
- SQL Server存储过程的基础说明
- SQL Server下几个危险的扩展存储过程
- 如何在SQL Server 2008下轻松调试T-SQL语句和存储过程
- SQL Server中选出指定范围行的SQL语句代码
- 一些SQL Server存储过程参数及例子
- SQL Server优化50法汇总
- JDBC 数据库常用连接 链接字符串
- SQL Server数据库管理员(DBA)的工作内容
- JDBC连接Access数据库的几种方式介绍
- JDBC程序更新数据库中记录的方法
- 列出SQL Server中具有默认值的所有字段的语句
- MSSQL数据类型及长度限制详细说明
- SQL SERVER函数之深入表值函数的处理分析
- JDBC 程序的常见错误及调试方法
- Java中使用JDBC操作数据库简单实例
- Java加载JDBC驱动程序实例详解
- JSP使用JDBC完成动态验证及采用MVC完成数据查询的方法
- JSP基于JDBC的数据库连接类实例