You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.xml 5.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?xml version="1.0"?>
  2. <document>
  3. <properties>
  4. <author email="javajedi@users.sf.net">Tim McCune</author>
  5. <title>Java Library for MS Access</title>
  6. </properties>
  7. <body>
  8. <section name="Jackcess">
  9. <p>
  10. Jackcess is a pure Java library for reading from and writing to MS
  11. Access databases (currently supporting versions 2000-2016). It is not
  12. an application. There is no GUI. It's a library, intended for other
  13. developers to use to build Java applications. Jackcess is licensed
  14. under the <a href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License</a>
  15. (as of version 2.1.0) and currently requires Java 8+ (as of the 3.0.0
  16. release) Take a look at our <a href="faq.html">Frequently Asked
  17. Questions</a> for more info.
  18. </p>
  19. <subsection name="Java 9+ Compatibility (2021-TBD)">
  20. <p>
  21. While Jackcess still only requires Java 8+, as of the 4.0.0 release
  22. it now includes an Automatic-Module-Name of
  23. <code>com.healthmarketscience.jackcess</code> in its manifest. That
  24. allows it to be used in the module path for Java 9+ projects. Note
  25. that using jackcess as a module requires enabling the
  26. <code>java.sql</code> module.
  27. </p>
  28. <p>
  29. This release is binary compatible with the 3.x release series.
  30. </p>
  31. </subsection>
  32. <subsection name="Java 8+ Support (2019-02-08)">
  33. <p>
  34. Jackcess now requires Java 8+ as of the 3.0.0 release. All third
  35. party dependencies have been updated to the latest versions.
  36. Jackcess now supports Java 8+ data types like
  37. <code>LocalDateTime</code> and <code>Path</code>. Databases can now
  38. optionally return <code>Date</code> values (legacy, backwards
  39. compatible) or <code>LocalDateTime</code> values. See <a href="apidocs/com/healthmarketscience/jackcess/DateTimeType.html">DateTimeType</a>
  40. and the <a href="jackcess-3.html">Upgrade Guide</a> for more details
  41. </p>
  42. </subsection>
  43. <subsection name="Expression Evaluation (2018-09-08)">
  44. <p>
  45. Have you ever wished that Jackcess could handle field "default
  46. values" (or other expressions)? Wish no longer! Expression
  47. evaluation is now enabled by default as of the 3.5.0 release. See
  48. the <a href="apidocs/com/healthmarketscience/jackcess/expr/package-summary.html#package_description">expression package</a> javadocs for more details.
  49. </p>
  50. </subsection>
  51. <subsection name="Brand New License! (2015-04-16)">
  52. <p>
  53. Due to the generosity of Health Market Science and the efforts of
  54. the <a href="https://tika.apache.org/">Apache Tika project</a>, the
  55. OpenHMS projects have been relicensed under the <b>Apache License,
  56. Version 2.0</b> (Jackcess versions 2.1.0 and higher).
  57. </p>
  58. </subsection>
  59. </section>
  60. <section name="Sample code">
  61. <p>
  62. Here are a few snippets of code to whet your appetite. For more
  63. extensive examples, checkout the <a href="cookbook.html">cookbook</a>. And, since Jackcess is heavily
  64. unit tested, you can find even more example code in the <a href="xref-test/index.html">unit tests</a>.
  65. </p>
  66. <ul>
  67. <li>Iterating through the rows of a table:
  68. <source>Table table = DatabaseBuilder.open(new File("my.mdb")).getTable("MyTable");
  69. for(Row row : table) {
  70. System.out.println("Column 'a' has value: " + row.get("a"));
  71. }
  72. </source>
  73. </li>
  74. <li>Searching for a row with a specific column value:
  75. <source>Row row = CursorBuilder.findRow(table, Collections.singletonMap("a", "foo"));
  76. if(row != null) {
  77. System.out.println("Found row where 'a' == 'foo': " + row);
  78. } else {
  79. System.out.println("Could not find row where 'a' == 'foo'");
  80. }
  81. </source>
  82. </li>
  83. <li>Creating a new table and writing data into it:
  84. <source>Database db = DatabaseBuilder.create(Database.FileFormat.V2000, new File("new.mdb"));
  85. Table newTable = new TableBuilder("NewTable")
  86. .addColumn(new ColumnBuilder("a")
  87. .setSQLType(Types.INTEGER))
  88. .addColumn(new ColumnBuilder("b")
  89. .setSQLType(Types.VARCHAR))
  90. .toTable(db);
  91. newTable.addRow(1, "foo");
  92. </source>
  93. </li>
  94. <li>Copying the contents of a JDBC ResultSet (e.g. from an
  95. external database) into a new table:
  96. <source>Database db = DatabaseBuilder.open(new File("my.mdb"));
  97. new ImportUtil.Builder(db, "Imported").importResultSet(resultSet);
  98. db.close();</source>
  99. </li>
  100. <li>Copying the contents of a CSV file into a new table:
  101. <source>Database db = DatabaseBuilder.open(new File("my.mdb"));
  102. new ImportUtil.Builder(db, "Imported2").setDelimiter(",").importFile(new File("my.csv"));
  103. db.close();</source>
  104. </li>
  105. </ul>
  106. </section>
  107. <section name="Other Resources">
  108. <p>
  109. Some other jackcess related projects:
  110. </p>
  111. <ul>
  112. <li>
  113. <a href="https://github.com/brianb/mdbtools">mdbtools</a> - Open Source project
  114. for reading Access files, written in C.
  115. </li>
  116. <li>
  117. <a href="https://jackcessencrypt.sourceforge.io/">Jackcess
  118. Encrypt</a> - Extension library for Jackcess which implements
  119. support for some forms of Microsoft Access and Microsoft Money
  120. encryption.
  121. </li>
  122. <li>
  123. <a href="http://ucanaccess.sourceforge.net/site.html">UCanAccess</a>
  124. - Open Source pure Java JDBC Driver implementation.
  125. </li>
  126. </ul>
  127. </section>
  128. </body>
  129. </document>