一转眼一年多工作时间过去了,在这一年多里并未从事Java的开发,一直在弄C#方面的项目.
唉,最近不知道怎么的,突然想做Java方面的开发,但是从学校出来以后就基本上放弃了Java
以前学的很多东西都忘得差不多了,现在要重新拾起Java,现在想想还是从最简单的记
忆找起。下面是 ODBC 连接连接操作 Sql Server 2005 数据库的操作、增、删、改、查通
用类的实现! 希望对新手有些帮助,少走些弯路, 如有不对的地方,还请大家指正!
步骤如下:
新建Web Project 项目
勾选 Jsts1.0 或 Jsts1.1 的 Jar 包
导入连接驱动 sqljdbc.jar 包
新建包 com.db.common
新建类 BaseDao
注: 我是以本机为例,如果有需要将 localost 及 databaseName 换成对应的即可!
下面是全部代码:
package com.db.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
/**
* 数据库操作基类
* @author Mr.Tom
* @Date Nov 13, 2011
*/
public class BaseDao {
private static final String DriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String ConnectUrl = "jdbc:sqlserver://localhost:1433;databaseName=taxcoal";
private static final String UserName = "sa";
private static final String Password = "123";
private static Connection conn = null;
private static PreparedStatement ps = null;
private static ResultSet rs = null;
/**
* 注册驱动并获取连接
* @Method GetConn
*/
public static Connection GetConn()
{
try
{
Class.forName(DriverName);
conn = DriverManager.getConnection(ConnectUrl, UserName, Password);
}
catch(Exception e)
{
conn = null;
e.printStackTrace();
}
return conn;
}
/**
* 通用查询
* @Method QueryMap
* @param sql
* @param values
*/
public static Map[] QueryMap(String sql,Object[] values)
{
conn = GetConn();
Map[] map = null;
try
{
ps = conn.prepareStatement(sql);
if(values != null && values.length != 0)
{
for (int i = 0; i < values.length; i++)
{
ps.setObject((i+1), values[i]);
}
}
Result rs = ResultSupport.toResult(ps.executeQuery());
map = rs.getRows();
}
catch(Exception e)
{
map = null;
e.printStackTrace();
}
finally
{
Free();
}
return map;
}
/**
* 通用增、删、改
* @Method ExcuteBySql
* @param sql
* @param values
*/
public static int ExcuteBySql(String sql,Object[] values)
{
conn = GetConn();
int result = 0;
try
{
ps = conn.prepareStatement(sql);
if(values != null && values.length != 0)
{
for (int i = 0; i < values.length; i++)
{
ps.setObject((i+1), values[i]);
}
}
result = ps.executeUpdate(sql);
}
catch(Exception e)
{
result = 0;
e.printStackTrace();
}
finally
{
Free();
}
return result;
}
/**
* 释放资源
* @Method Free
*/
private static void Free()
{
try
{
if(rs != null){ rs.close();}
if(ps != null){ ps.close();}
if(conn != null){ conn.close();}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}