操作access


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MsAccessDBUtils {
private static MsAccessDBUtils instance = null;
public static MsAccessDBUtils getInstance() {
if (instance == null) {
instance = new MsAccessDBUtils();
}
return instance;
}

private MsAccessDBUtils() {}

//最先被调用 mdbFile=d:\xxx.mdb
public void loadConfig(String mdbFile,String user,String psw) throws Exception{
mdb_file = mdbFile;
user = user;
pwd = psw;
loadDriver();
}

public void loadConfig(String mdbFile) throws Exception{
mdb_file = mdbFile;
loadDriver();
}
private static String dirverClass = "sun.jdbc.odbc.JdbcOdbcDriver";
private static String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=";
private static String mdb_file = null;//access 文件[这里要绝对路径]
private static String user = "";
private static String pwd = "";
private static Connection conn;
private static Statement stmt;
private static ResultSet rs;

private void loadDriver() throws Exception{
try {
Class.forName(dirverClass);
} catch (Exception e) {
throw e;
}
}

//创建不可滚动的连接
public static void connect() throws Exception{
try {
System.out.println(url+mdb_file);
System.out.println(user);
System.out.println(pwd);
conn = DriverManager.getConnection(url+mdb_file, user, pwd);
stmt = conn.createStatement();
} catch (Exception e) {
throw e;
}
}
public static void connect(boolean autocommit) throws Exception{
try {
conn = DriverManager.getConnection(url+mdb_file, user, pwd);
conn.setAutoCommit(autocommit);
stmt = conn.createStatement();
} catch (Exception e) {
throw e;
}
}
//创建可以滚动的连接
public static void connect2() throws Exception{
try {
conn = DriverManager.getConnection(url+mdb_file, user, pwd);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
} catch (Exception e) {
throw e;
}
}

//关闭连接
public static void close() throws Exception{
try {
if (rs != null) {
rs.close();
rs=null;
}
if (stmt != null) {
stmt.close();
stmt=null;
}
if (conn != null) {
conn.close();
conn=null;
}
} catch (Exception e) {
throw e;
}
}

//查询语句
public static List executeQuery(String sql) throws Exception{
List l = new ArrayList();
try {
if (stmt == null) {
connect();
}
rs = stmt.executeQuery(sql);
l = orgResultSet4List(rs);
//close();
} catch (Exception e) {
throw e;
}
return l;
}

public static int executeUpdate(String sql) throws Exception{
try {
if (stmt == null) {
connect();
}
int res = stmt.executeUpdate(sql);
//close();
return res;
} catch (Exception e) {
throw e;
}
}
public static int[] executeUpdate(String[] sql) throws Exception{
try {
if (stmt == null) {
connect(false);
}
for (int i = 0; i < sql.length; i++) {
stmt.addBatch(sql[i]);
}
int[] res = stmt.executeBatch();
conn.commit();
//close();
return res;
} catch (Exception e) {
throw e;
}
}
private static List orgResultSet4List(ResultSet rs)throws Exception{
try {
ResultSetMetaData rsmd = rs.getMetaData();
int cols = rsmd.getColumnCount();
List l = new ArrayList();
Map recordMap = null;
while (rs.next()) {
recordMap = new HashMap();
for (int i = 0; i < cols; i++) {
recordMap.put((String)(rsmd.getColumnName(i+1)).toLowerCase(),rs.getObject(i+1));
}
l.add(recordMap);
}
return l;
}
catch (Exception ex) {
//ex.printStackTrace();
throw ex;
}
}

public static void main(String[] args) {



}
}
Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值