Java轻松读取Access数据库,快速实现数据操作 (java 读取access数据库)

随着数据处理和存储需求的不断增长,各种数据库系统也不断涌现。作为微软公司开发的一种简单易用的数据库管理系统,Access数据库因其操作便捷、易上手、资源占用较少等优点,备受国内开发人员的喜爱。但是,Access数据库的读取和操作也有一定的技巧和门槛。本文将以Java语言为例,为读者详细介绍如何轻松读取Access数据库,快速实现数据操作。

一、前期准备

在开始操作之前,我们需要下载并安装Access驱动程序,以便Java程序能够与Access数据库进行通信。具体操作如下:

1.下载驱动程序

在Maven中央仓库中搜索“UCanAccess”可以得到相关的jar包,下载对应版本后,导入到项目中即可。

2.在项目中引入依赖

打开pom.xml文件,在dependencies节点下添加以下内容:

“`xml

net.sf.ucanaccess

ucanaccess

5.0.0

“`

3.配置Access数据库连接信息

在项目中创建dbconfig.properties文件,存放Access数据库连接信息,例如:

“`properties

jdbc.url=jdbc:ucanaccess://E:/database/test.accdb

jdbc.driverClassName=net.ucanaccess.jdbc.UcanaccessDriver

“`

4.测试数据库连接

我们可以在单元测试类中测试数据库连接是否正常,具体代码如下:

“`java

package com.demo;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Properties;

public class TestAccess {

public static void mn(String[] args) throws Exception {

// 加载数据库驱动

Class.forName(“net.ucanaccess.jdbc.UcanaccessDriver”);

// 读取数据库连接信息

Properties props = new Properties();

props.load(TestAccess.class.getClassLoader().getResourceAsStream(“dbconfig.properties”));

String url = props.getProperty(“jdbc.url”);

// 获取连接

Connection conn = DriverManager.getConnection(url);

// 创建查询表的SQL语句

String sql = “SELECT * FROM demo”;

// 创建Statement对象,用于执行SQL语句

Statement stmt = conn.createStatement();

// 执行查询语句

ResultSet rs = stmt.executeQuery(sql);

// 输出结果

while (rs.next()) {

System.out.println(rs.getString(“name”));

}

// 关闭连接

rs.close();

stmt.close();

conn.close();

}

}

“`

如果程序输出了表中的数据,则说明测试成功,可以继续下一步操作。

二、基本操作

1.查询数据

在访问Access数据库之前,需要先将Access数据库文件的路径传递给DriverManager.getConnection()方法,即:

“`java

String url = “jdbc:ucanaccess://E:/database/test.accdb”;

Connection conn = DriverManager.getConnection(url);

“`

然后,创建Statement对象,执行查询SQL语句,最后关闭连接,示例如下:

“`java

// 创建Statement对象,用于执行SQL语句

Statement stmt = conn.createStatement();

// 执行查询语句

ResultSet rs = stmt.executeQuery(“SELECT * FROM demo”);

// 输出结果

while (rs.next()) {

System.out.println(rs.getString(“name”));

}

// 关闭连接

rs.close();

stmt.close();

conn.close();

“`

2.插入数据

插入数据需要写一条INSERT语句,例如:

“`java

String sql = “INSERT INTO demo(name, age) VALUES(‘Tom’, 18)”;

stmt.executeUpdate(sql);

“`

3.修改数据

修改数据需要写一条UPDATE语句,例如:

“`java

String sql = “UPDATE demo SET age = 20 WHERE name = ‘Tom'”;

stmt.executeUpdate(sql);

“`

4.删除数据

删除数据需要写一条DELETE语句,例如:

“`java

String sql = “DELETE FROM demo WHERE name = ‘Tom'”;

stmt.executeUpdate(sql);

“`

三、优化策略

1.使用PreparedStatement

为了防止SQL注入攻击,使用PreparedStatement是比较好的选择。PreparedStatement的参数可以通过占位符表示,避免了SQL注入攻击的问题,示例如下:

“`java

String sql = “SELECT * FROM demo WHERE age > ?”;

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, 10);

ResultSet rs = pstmt.executeQuery();

“`

2.使用连接池

由于Access数据库不能支持高并发,使用连接池可以避免频繁创建和销毁连接,从而提高了系统性能。常见的连接池有DBCP、CO、Druid等,可以根据需要选择适合的连接池。

3.关闭资源

在使用完JDBC资源之后,需要及时关闭ResultSet、Statement和Connection资源,防止资源浪费和内存泄漏。同时,为了保证数据的事务性,我们需要使用Connection.setAutoCommit(false)方法,将事务设置为手动提交,然后使用Connection.commit()方法提交事务。

“`java

try {

// 设置手动提交事务

conn.setAutoCommit(false);

// 执行SQL操作

// 提交事务

conn.commit();

} catch (SQLException e) {

// 回滚事务

conn.rollback();

} finally {

// 关闭资源

rs.close();

stmt.close();

conn.close();

}

“`

四、

以上就是的全部内容。在使用Access数据库时,我们需要下载并安装Access驱动程序,然后在项目中引入UCanAccess库。在操作数据库时,可以使用Statement和PreparedStatement执行SQL语句,同时需要注意关闭JDBC资源和使用连接池。如果遇到异常情况需要回滚事务,可以使用Connection.rollback()方法。希望该文章能为读者提供帮助。

相关问题拓展阅读:

JAVA 连接access2023数据库连接

这个报错,应是配置的问题,先保证数据源配置没问题。

你试试:

打开控制面板--管理工具--数据源ODBC -- 系统DSN--添加 选指山SQL 然后找到你要连接的猛哗数据库

这里的系统DSN 的配置唯知中要跟 用户DSN 里的配置 一样。

JAVA 连接access2023数据库都是固定几种方法,以下是在网上找的一些方法,

示例代码:

import java.sql.*;

public class ConnectAccess {

/**

* 注意:

* 1:先建立一个access文件.mdb,并放在制定盘符X:/下;

* 2:在数据库文件.mdb中建立一个表Tablexx1;

* 3:为Table1添加一列,并插入至少一条记录;

*/

public static void main(String args) throws Exception {

ConnectAccess ca=new ConnectAccess();

ca.ConnectAccessFile();

ca.ConnectAccessDataSource();

}

/**

* 方法一:直接连接access文件。

*/

public void ConnectAccessFile() throws Exception {

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

String dbur1 = “jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=

Connection conn = DriverManager.getConnection(dbur1, “username”, “password”);

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(“select * from Tablexx1”);

while (rs.next()) {

System.out.println(rs.getString(1));

}

rs.close();

stmt.close();

conn.close();

}

/**

* 方法二:采用ODBC连接方式

* 在windows下,【开始】–>【控制面枣早板】–>【性能和维护】–>【管理工具】–>【数据源】,在数据源这里添加铅核一个指向.mdb文件的凳激雀数据源。

* 比如创建名字为xS1

*/

public void ConnectAccessDataSource()throws Exception {

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

String dbur1 = “jdbc:odbc:xS1”;// 此为ODBC连接方式

Connection conn = DriverManager.getConnection(dbur1, “username”, “password”);

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(“select * from Tablexx1”);

while (rs.next()) {

System.out.println(rs.getString(1));

}

rs.close();

stmt.close();

conn.close();

}

}

DBQ必须是绝对路径

DBQ=bin\\db\\dnf.accdb”);

Java 连接access 数据库成功 能够读取数据 为什么插入数据总报错 但是打开

系统已经安装好SQL Server2023并且打上了SP3补丁;安装好Office套件里面的Access;使用一个支持纯文本编辑并且带有行号显示的编辑器,

二、准备

1、程序提供了SQL数据库格式:有一个MDF文件,或者提供了创建SQL数据库的SQL脚本文件(后缀名为.sql)。

2、更多的是没有提供SQL数据库或脚本文件的,这时,就要自己来做这一切了,这也是我们这个帖子主要解决的问题。

对照原来的access,改写下面的部分:

(1)sql数据库表是没有自动字段的,因此原来access中的自动字段被转换成了普通字段,需要手工改成标识类型,增量为1。

(2)所有的时间字段,如果定义了默认值,那么原来肯定是now(),需要改成getdate()

(3)原来字段的默认值一般都不会自动引入,需要对照原表的字段手工添加。

(4)由于数据库的不同,access和sql的字段类型很多转换后就变化了,比如原来的《是否》字段会被转换成bit或者int,备注字段被转换成longtext,text字段转换成varchar等等,一般来说不会影响程序运行,如果有问题,我们在下面的程序改写部分再说。

(5)如果你要用一个For SQL的程序,里面用到了存储过程,那么你应该有这个程序本身建立SQL数据库的方法:有其本身的SQL数据库文件,或者sql脚本;如果没有的话,采用导入access数据库的方式是无法建立存储过程的,这样你更好放弃这枣哪个For SQL的程序版本,使用同样版本的For Access的程序,导入access数据库,然后用下面的改写方法自己改成SQL版本的程序。

三、碰岩模连接字符串的改写

可参考动网的这段,分别是针对access和SQL的

Dim ConnStr

If IsSqlDataBase = 1 Then

‘sql数据库连接参数:数据库名、用户密码、用户名、连接名(本地用笑缓local,外地用IP)

Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName

SqlDatabaseName = “dvbbs7”

SqlPassword = “”

SqlUsername = “dvbbs”

SqlLocalName = “(local)”

ConnStr = “Provider = Sqloledb; User ID = ” & SqlUsername & “; Password = ” & SqlPassword & “; Initial Catalog = ” & SqlDatabaseName & “; Data Source = ” & SqlLocalName & “;”

Els

‘sql数据库连接参数:数据库名、用户密码、用户名、连接名(本地用local,外地用IP)

Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName

SqlDatabaseName = “dvbbs7”

SqlPassword = “”

SqlUsername = “dvbbs”

SqlLocalName = “(local)”

ConnStr = “Provider = Sqloledb; User ID = ” & SqlUsername & “; Password = ” & SqlPassword & “; Initial Catalog = ” & SqlDatabaseName & “; Data Source = ” & SqlLocalName & “;”

On Error Resume Next

Set conn = Server.CreateObject(“ADODB.Connection”)

conn.open ConnStr

也可以简洁一些,写成这样:

Set conn = Server.CreateObject(“ADODB.Connection”)

conn.open “Provider = Sqloledb; User ID = sa; Password =; Initial Catalog = dvbbs7; Data Source = (local);”

里面的数据库名称、数据源、用户、密码根据自己的实际情况改写一下。

四、程序的改写

1、如果你幸运,拿到的是For SQL的程序,那么如果上面的数据库建立过程没有遇到麻烦,程序基本上就可以运行了,出错的话,只是程序本身的bug,如何修改不是这个帖子讨论的内容,就不赘述了。

2、大多数情况,程序本身是For Access的,与For SQL的程序差别主要是程序中使用到的SQL查询语句。注意,SQL查询语句是数据库应用不可缺少的部分,不管是For SQL还是For Aceess的程序使用的语法大体差不多,但是有一些微妙的差别,正是这些差别,造成了程序的不通用,也是我们需要修改的主要内容。这样一般要修改的部分如下:

(1)时间函数的问题:SQL数据库的时间函数与access不同,最常见的是取现在时间的函数,access是now(),SQL是getdate()。因此凡是在where子句中使用了now()的地方都要改成getdate();注意,now()函数在asp程序本身也要使用,凡是不在数据库查询或执行语句中使用的now()函数千万不要改。

(2)时间比较函数:datediff(‘d’,’时间1’,‘时间2’)这是access查询用的格式,SQl中这些引号都要去掉,同时时间格式的前后可能加上了#,这也要去掉。同样这也是指在sql语句中的,在asp语句中的要保持原样。

(3)空值的表示:在access中,判断空值一般用是否=””来表示,但是这在SQL中往往出错,如果遇到出错的问题或者程序运行不正常,可以改成如这样判断:where (name is null)

(4)真假值判断:access中可以用=true、=false来判断,但是在SQL中就会出错,因此在SQL查询或执行语句中这类判断要分别改成=1、=0。注意一点:有些程序虽然写成=“true”,但是由于有引号,所以这个字段是字符类型的,你不能改成=1,保持原样即可.

程序的调试

前面推荐使用带有行号的编辑器,是因为上述的改写不大可能是直接搜索程序源码来做,很难找全。

我采取的方式一般这样:数据库改写完成,直接调试程序,出错后,看看出错的提示,找到相应文件的代码行,但是根源往往不是那行,比如出错的语句是:conn.execute(sql),但是这句本身是没有错的,错误原因是里面的这个sql字符串,那就向上看这个sql字符串是如何生成的,按照上面所说的程序修改办法修改。

所有的默认值都丢失了。主要是数字类型和日期类型。

所有now(),time(),date()要改成getdate()。

所有datediff(‘d’, time1, time2)要改成datediff(day, time1, time2)

有可能一些true/false类型不能使用,要变为1/0。

备注类型要通过cast(column as varchar)来使用。

CursorType要改成1,也就是打开数据库时要给出之一个数字参数为1,否则记录可能显示不完整。

isnull(rowname)要改成rowname = null

ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!

转化时,跟日期有关的字段,SQL SERVER默认为alldatetime型,我们更好将它变为datetime型,因为datetime型的范围比alldatetime型大。有时用alldatetime型时,转化失败,而用datetime型时,转化成功。

对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:”delete * from user where id=10″,而对SQL SERVER数据库进行删除是用:”delete user where id=10″.

日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。

在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。

下表比较了MicrosoftAccess数据库(MicrosoftAccess数据库:数据和对象(如表、查询或窗体)组成的,与特定的主题或用途有关。MicrosoftJet数据库引擎用于管理数据。)和MicrosoftAccess项目(MicrosoftAccess项目:与MicrosoftSQLServer数据库连接且用于创建客户/服务器应用程序的Access文件。项目文件中不包含任何数据或基于数据定义的对象(如表或视图)。)的数据类型(数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括Boolean、Integer、Long、Currency、Single、Double、Date、String和Variant(默认))。

MicrosoftAccess数据类型SQLServer数据类型

是/否(“是/否”数据类型:一种字段数据类型,用于只有两种可能值(如是或否、True或False)的字段。不允许有Null值。)bit(bit数据类型:在Access项目中,一种存储值为1或0的数据类型。接受1和0以外的整数值,但总是将其解释为1。)

数字(“数字”数据类型:MicrosoftAccess数据库中的一种字段数据类型,用于将在数学运算中使用的数值数据。但是,若要显示或计算货币值,则应使用“货币”数据类型。)(字节)tinyint(tinyint数据类型:Access项目中的一种占一个字节(8位)的数据类型,用于存储从0到255范围内的整数。)

数字(整型)allint(allint数据类型:Access项目中的一种2字节(16位)数据类型,存储位于-2^15(-32,768)与2^15-1(32,767)之间的数字。)

数字(长整型)int(int数据类型:Access项目中的一种4字节(32位)数据类型,存储位于-2^31(-2,147,483,648)与2^31-1(2,147,483,647)之间的数字。)

数字(单精度浮点型)real(real数据类型:在Access项目中,一种近似的数值数据类型,精度为7位,正值取值范围大致从1.18E-38到3.40E+38,负值取值范围大致从-1.18E-38到-3.40E+38,也可以取0。)

(无等价的数据类型)bigint(bigint数据类型:Access项目中的一种8字节(64位)数据类型,存储位于-2^63(-9,223,372,036,854,775,808)与2^63-1(9,223,372,036,854,775,807)之间的数字。)

数字(双精度浮点型)float(float数据类型:在Access项目中,一种近似的数值数据类型,精度为15位。它所存储的正值范围大致是从2.23E-308到1.79E+308,负值范围大致是从-2.23E-308到-1.79E+308,也可以为0。)

货币(“货币”数据类型:MicrosoftAccess数据库中的一种数据类型,用于与货币有关的计算或其精确度极其重要的定点计算。)money(money数据类型:在Access项目中,用于存储货币值的数据类型,取值范围从-922,337,203,685,477.5707到922,337,203,685,477.5807,精确度为万分之一个货币单位。)

allmoney(allmoney数据类型:Access项目中的一种存储货币值的数据类型,取值范围从-214,748.3648到214,748.3647,精确度为万分之一个货币单位。当显示allmoney值时,会将它们四舍五入为两个小数位。)

小数/数值(decimal数据类型(Access数据库):精确的数值数据类型,用于存储-10^38-1到10^38-1的值。可以指定数值范围(更大总位数)和精度(小数点右边的更大位数)。)decimal(decimal数据类型(Access项目):精确的数值数据类型,用于存储-10^38-1到10^38-1的值。可以指定数值范围(更大总位数)和精度(小数点右边的更大位数)。)

numeric(numeric数据类型:在Access项目中,一种精确的数值数据类型,取值从-10^38-1到10^38-1。可以指定数值范围(更大总位数)和精度(小数点右边的更大位数)。)

日期/时间(“日期/时间”数据类型:Access数据库的一种数据类型,用来存放日期和时间信息。)datetime(datetime数据类型:在Access项目中,日期和时间的数据类型,范围从1753年1月1日到9999年12月31日,精确度为三百分之一秒,即3.33毫秒。)

alldatetime(alldatetime数据类型:Access项目中的一种日期和时间数据类型,精度不如datetime时间数据类型。数据取值范围从1900年1月1日到2023年6月6日,精确度为一分钟。)

自动编号(“自动编号”数据类型:MicrosoftAccess数据库中的一种字段数据类型,当向表中添加一条新记录时,这种数据类型会自动为每条记录存储一个唯一的编号。可以产生三种编号:顺序号、随机号和同步复制ID。)(递增)int(int数据类型:Access项目中的一种4字节(32位)数据类型,存储位于-2^31(-2,147,483,648)与2^31-1(2,147,483,647)之间的数字。)(定义了Identity属性)

文本(“文本”数据类型:MicrosoftAccess数据库中的一种字段数据类型。“文本”数据类型最多可以包含255个字符,或者是由FieldSize属性指定的一个小一些的字符数。)(n)varchar(n)(varchar(n)数据类型:Access项目中的一种可变长度的数据类型,更大长度为8,000个ANSI字符。)

nvarchar(n)(nvarchar(n)数据类型:在Access项目中,一种可变长度的数据类型,最多可含4,000个Unicode字符。Unicode字符每字符占两个字节,而且支持所有国际字符。)

备注(“备注”数据类型:在MicrosoftAccess数据库中的一种字段数据类型。“备注”字段最多可以包含65,535个字符。)text(text数据类型:Access项目中的一种长度可变的数据类型,最多可存储2^31-1(2,147,483,647)个字符;默认长度为16。)

OLE对象(“OLE对象”数据类型:字段的数据类型之一,用于在其他应用程序中创建的、可链接或嵌入(插入)到Access数据库中的对象。)image(image数据类型:在Access项目中,一种长度可变的数据类型,最多可存储2^31-1(2,147,483,647)字节的二进制数据。image数据类型用来存储BLOB(二进制大对象),如图片、文档、声音和已编译代码。)

同步复制ID(又名全局唯一标识符(GUID:在Access数据库中,一种用于建立同步复制唯一标识符的16字节字段。GUID用于标识副本、副本集、表、记录和其他对象。在Access数据库中,GUID是指同步复制ID。)(GUID))uniqueidentifier(uniqueidentifier数据类型:在Access项目中,16字节的全局唯一标识符(GUID)。)(仅适于SQLServer7.0或更高版本)

超链接(“超链接”数据类型:存储超链接地址的Access数据库字段的数据类型。地址最多可以包含四部分,用以下语法格式编写:displaytext#address#subaddress#。)char(char数据类型:在Access项目中,一种固定长度的数据类型,最多可含8,000个ANSI字符。),

nchar(nchar数据类型:在Access项目中,一种固定长度的数据类型,最多可含4,000个Unicode字符。Unicode字符每字符占两个字节,而且支持所有国际字符。),varchar,nvarchar(Hyperlink属性设为Yes)

(无等价的数据类型)varbinary(varbinary数据类型:Access项目中的一种可变长度的数据类型,最多可存储8,000字节的二进制数据。)

(无等价的数据类型)allint(allint数据类型:Access项目中的一种2字节(16位)数据类型,存储位于-2^15(-32,768)与2^15-1(32,767)之间的数字。)

(无等价的数据类型)timestamp(timestamp数据类型:在Access项目中,一种每插入或更新一行就会自动更新的数据类型。timestamp列中的值不是datetime数据,而是binary(8)或varbinary(8),标明了数据修改的顺序。)

(无等价的数据类型)charnchar

(无等价的数据类型)sql_variant(sql_variant数据类型:Access项目中的一种数据类型,存储除text、ntext、image、timestamp和sql_variant类型以外的多种数据类型的值。在列、参数、变量或用户定义函数的返回值中使用。)

(无等价的数据类型)用户定义(用户定义的数据类型:在MicrosoftSQLServer数据库中,允许某列包含的数据的类型定义,由用户利用现有的系统数据类型定义。规则和默认值仅可以绑定到用户定义的数据类型。)

注释在Access项目或SQLServer数据库中,前缀“n”代表“国家/地区”,意思是这个数据类型是启用Unicode的。在Access数据库中,全部文本列在默认情况下都是启用Unicode的。

ACCESS转SQL需要注意的问题

:01:20

很多朋友想用SQL2023数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考—将ACCESS转化成SQL2023的方法和注意事项

一,首先,我说的是在ACCESS2023,SQL2023之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的;

二,转换的方法

1,打开”控制面板“下”管理工具“中的”数据库源“;

2,按”添加“添加一个新的数据源,在选择栏里选”DriverdomicrosoftAccess

(*.mdb)”,完成后将出现一个框,

在”数据库源“里面输入你想写的名称,我取名叫“ABC”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的ACCESS数据库),然后确定。

数据源在这里建好了,剩下转换了。

3,打开SQL2023企业管理器,进入数据库,新建一个空的数据库“ABC”;

4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续;

5,在数据库源下拉但中选择”DriverdomicrosoftAccess(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按”下一步“;

6,“目的”不需要修改,选择服务器(一般下为自己的本机”local”,也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),”使用WINDOWS身份验证”指用自己的系统管理员身份操作,”使用SQL身份操作验证”可以用于网站的操作,推荐用后者;

7,选上”使用SQL身份操作验证”后,填写你的用户名和密码,我自己选择的是系统默认号码”sa”,”****”,数据库选择刚新建的”ABC”,按”下一步”;

8,这一步的两个单项选择,”从数据源复制表和视图”与”用一条查询指令指定要传输的数据”,选择前者,按”下一步”继续;

9,这里将出现你自己ACCESS数据库的表,按”全选”后,下一步;

10,”DTS导入/导出向导”,看”立即运行”被选中按”下一步”,

11,按”完成”继续;

12,这个步骤你将看到你的数据被导入SQL2023里面,当出现”已经成功把XXX个表导入到数据库”的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的*的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了.

三,数据修改

1,由于SQL2023里面没有”自动编号”,所以你的以”自动编号”设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的”标示”选择”是”,种子为”1″,增量为”1″,

2,另外,ACCESS2023转换成SQL2023后,原来属性为”是/否”的字段将被转换成非空的”bit”,这时候你必须修改成自己想要的属性了;

3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.

四、相关的字段问题

1.ACCESS的数据库中的自动编号类型在转化时,sqlserver并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!

2.转化时,跟日期有关的字段,SQLSERVER默认为alldatetime型,我们更好将它变为datetime型,因为datetime型的范围比alldatetime型大。我遇见这种情况,用alldatetime型时,转化失败,而用datetime型时,转化成功。

3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:”delete*fromuserwhereid=10″,而对SQLSERVER数据库进行删除是用:”deleteuserwhereid=10″.

4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQLSERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。

5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQLSERVER数据库处理中,却不能用。

java 读取access数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 读取access数据库,Java轻松读取Access数据库,快速实现数据操作,JAVA 连接access2023数据库连接,Java 连接access 数据库成功 能够读取数据 为什么插入数据总报错 但是打开的信息别忘了在本站进行查找喔。


数据运维技术 » Java轻松读取Access数据库,快速实现数据操作 (java 读取access数据库)