之前有使用ODBC来访问Access数据库的,但不方便.
是否可以使用JDBC访问, 网上的说法不一, 也很少有实例参考.
// access由于access并不是作为一项服务运行,所以url的方法对他不适用。 (其实这个是不对的.)
// https://zhuanlan.zhihu.com/p/441219492
// Access2013开始,将不再支持ODBCDirect(DAO odbc连接SqlServer常用)错误3847
//
// 实际上,是可以使用 纯JDBC驱动访问access的
// 使用驱动:ucanaccess
// https://mvnrepository.com/artifact/net.sf.ucanaccess/ucanaccess
以下是使用JDBC访问微软Access数据库详细实例:
1. Access里stu表的数据
2. java源码
以下是直接使用JDBC进行编码的.
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
-
- /**
- * @author Kingstar
- * @since 1.0
- */
- public class AccessDbTest {
- public static void main(String[] args){
- try {
- Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
- Connection conn=DriverManager.getConnection("jdbc:ucanaccess://d:/school.accdb");
- Statement stmt=conn.createStatement() ;
- ResultSet rs=stmt.executeQuery("select * from stu");
- while (rs.next()) {
- System.out.println(rs.getString(1));
- System.out.println(rs.getString(2));
- System.out.println(rs.getString(4));
- }
- System.out.println("finished...");
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println("e:"+e.getMessage());
- }
- System.out.println("finished");
- }
- }
日志
1
zhang shan
twitter被收购了
2
李四
哈哈。。。
finished...
finished
使用JDBC,需要自己写sql语句, 自己写获取字段结果的代码, 这种代码可以交给ORM去完成.
以下是使用ORM Bee查询的结果.
3. Bee 访问Access数据库实例
3.1 添加配置信息
在bee.properties里添加联系数据库的配置信息.
bee.db.url=jdbc:ucanaccess://d:/school.accdb
bee.db.driverName=net.ucanaccess.jdbc.UcanaccessDriver
bee.osql.loggerType=systemLogger
使用面向对象访问DB, 需要准备表对应的Javabean. 可以使用Bee自动生成.
3.2 Bee 访问Access数据库的Java源码
- import java.util.List;
-
- import org.teasoft.bee.osql.Suid;
- import org.teasoft.honey.osql.shortcut.BF;
-
- import test.entity.Stu;
-
- /**
- * Bee 访问Access数据库实例
- * @author Kingstar
- * @since 1.0
- */
- public class AccessDbTest2 {
-
- public static void main(String[] args){
- Suid suid=BF.getSuid(); //获取Select,Update,insert,Delete的SQL操作对象
- List
list=suid.select(new Stu()); //查询stu表的数据 - for (int i = 0; i < list.size(); i++) {
- System.out.print(list.get(i).getName()+" , ");
- System.out.println(list.get(i).getAge());
- }
- System.out.println("finished");
- }
- }
3.3 日志
- 2022-11-04 23:46:16 [Bee] select SQL: select id,name,age from stu
- 2022-11-04 23:46:16 [Bee] | <-- select rows: 2
- zhang shan , 22
- 李四 , 23
- finished
4. 要是Access里加了密码保护
连接会复杂些.
有需要的伙伴可到Q群里问.
992650213
Bee,互联网新时代的Java ORM框架,支持Sharding;JDBC,Android,HarmonyOS;更快、更简单、更自动,开发速度快,运行快,更智能!