我只是尝试运行此代码:
import com.sun.rowset.CachedRowSetImpl;
public class Test {
public static void main(String[] args) throws Exception{
CachedRowSetImpl crs = new CachedRowSetImpl();
}
}
当我跑步时,我得到:
错误:(1,15)java:包com.sun.rowset不可见(包 com.sun.rowset在模块java.sql.rowset中声明,但没有 出口它)
我使用IntelliJ并且我尝试导入rs2xml.jar,但仍然没有帮助。
答案 0 :(得分:9)
使用Java 9
您无法再访问此课程。并且以理想的方式你不应该这样做。这是因为该类的包不会导出到模块javax.sql.rowset
中。在Java-9
中执行此操作的正确方法是:
import javax.sql.rowset.*;
public class Test {
public static void main(String[] args) throws Exception {
CachedRowSet crs = RowSetProvider.newFactory().createCachedRowSet();
}
}
要了解我们可以转到模块描述(module-info.java
)并查找导出包的列表:
exports javax.sql.rowset;
exports javax.sql.rowset.serial;
exports javax.sql.rowset.spi;
答案 1 :(得分:1)
这应该与Java 10一起使用
代替
<table class="table {{@tableClass}}">
<thead>
<tr>
{{#each headers}}
<th class="{{this.class}}">
{{#if this.data }}
{{ this.data }}
{{ else }}
{{ this }}
{{/if}}
</th>
{{/each}}
</tr>
</thead>
<tbody>
{{#each rows}}
<tr>
{{#each this}}
<td>{{this}}</td>
{{/each}}
</tr>
{{/each}}
</tbody>
</table>
使用
CachedRowSet crs = new CachedRowSetImpl();
答案 2 :(得分:0)
除了此处的答案之外,重要的是要注意您永远不要使用 com.sun.rowset.CachedRowSetImpl
,即使在 Java 8 中也是如此。
如 Are there any good CachedRowSet implementations other than the Sun one? 所述,RowSetProvider
是获取 CachedRowSet
的标准方式。
来自 sun
的包裹是 internal and subject to change。除非 JDK 开发人员,否则不应使用它们。