java ee中元数据的概念是什么?作用是什么?怎么用?最好举例说明哦~

java ee中元数据的概念是什么?作用是什么?怎么用?最好举例说明哦~,第1张

数据,就是“关于数据的数据”。功能也有很多啦。你可能用过Javadoc的注释自动生成文档。这就是元数据功能的一种。总的来说,元数据可以用来创建文档,跟踪代码的依赖性,执行编译时格式检查,代替已有的配置文件(如Hibernate也提供了注释配置)

注释有3中基本类型

a.标记注释 --没有变量,只有名称标识。例如 @annotation

b.单一值注释--在标记注释的基础上提供一段数据。如 @annotation(“data”)

c.完整注释 --可以包括多个数据成员,每个数据成员由名称和值构成。

@annotation(val1="data1",val2="data2")

1.String[] userid = {"aa","bb","cc"}

List<String>userList = new ArrayList<String>()

Collections.addAll(userList, userid)

2.

String[] userid = {"aa","bb","cc"}

List<String>userList = Arrays.asList(userid)

另:Arrays.asList()返回一个受指定数组支持的固定大小的列表。所以不能做Add、Remove等 *** 作。

List list = new ArrayList(Arrays.asList(userid))这样 *** 作就可以了。

第一步:如何用POI *** 作Excel

@Test

public void createXls() throws Exception{

//声明一个工作薄

HSSFWorkbook wb = new HSSFWorkbook()

//声明表

HSSFSheet sheet = wb.createSheet("第一个表")

//声明行

HSSFRow row = sheet.createRow(7)

//声明列

HSSFCell cel = row.createCell(3)

//写入数据

cel.setCellValue("你也好")

FileOutputStream fileOut = new FileOutputStream("d:/a/b.xls")

wb.write(fileOut)

fileOut.close()

}

第二步:导出指定数据库的所有表

分析:

1:某个数数据库有多少表,表名是什么?―――DataBaseMetadate.getMetadate().getTables(null,null,null,new String[]{Table})- excel的文件名称。

2:对每一个表进行select * *** 作。 - 每一个sheet的名称。

3:分析表结构,rs.getMetadate()ResultSetMedated

4:多个列,列名是什么.- 字段名就是sheet的第一行信息。

5:获取每一行的数据 – 放到sheet第一行以后。

@Test

public void export() throws Exception{

//声明需要导出的数据库

String dbName = "focus"

//声明book

HSSFWorkbook book = new HSSFWorkbook()

//获取Connection,获取db的元数据

Connection con = DataSourceUtils.getConn()

//声明statemen

Statement st = con.createStatement()

//st.execute("use "+dbName)

DatabaseMetaData dmd = con.getMetaData()

//获取数据库有多少表

ResultSet rs = dmd.getTables(dbName,dbName,null,new String[]{"TABLE"})

//获取所有表名 - 就是一个sheet

List<String>tables = new ArrayList<String>()

while(rs.next()){

String tableName = rs.getString("TABLE_NAME")

tables.add(tableName)

}

for(String tableName:tables){

HSSFSheet sheet = book.createSheet(tableName)

//声明sql

String sql = "select * from "+dbName+"."+tableName

//查询数据

rs = st.executeQuery(sql)

//根据查询的结果,分析结果集的元数据

ResultSetMetaData rsmd = rs.getMetaData()

//获取这个查询有多少行

int cols = rsmd.getColumnCount()

//获取所有列名

//创建第一行

HSSFRow row = sheet.createRow(0)

for(int i=0i<colsi++){

String colName = rsmd.getColumnName(i+1)

//创建一个新的列

HSSFCell cell = row.createCell(i)

//写入列名

cell.setCellValue(colName)

}

//遍历数据

int index = 1

while(rs.next()){

row = sheet.createRow(index++)

//声明列

for(int i=0i<colsi++){

String val = rs.getString(i+1)

//声明列

HSSFCell cel = row.createCell(i)

//放数据

cel.setCellValue(val)

}

}

}

con.close()

book.write(new FileOutputStream("d:/a/"+dbName+".xls"))

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9993903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存