




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 title JSP 分页技术实现 summary 使用工具类实现通用分页处理 author evan zhao email evan zhao 目前比较广泛使用的分页方式是将查询结果缓存在 HttpSession 或有状态 bean 中 翻 页的时候从缓存中取出一页数据显示 这种方法有两个主要的缺点 一是用户可能看到的 是过期数据 二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间 并且缓存 的数据也会占用大量内存 效率明显下降 其它常见的方法还有每次翻页都查询一次数据库 从 ResultSet 中只取出一页数据 使用 rs last rs getRow 获得总计录条数 使用 rs absolute 定位到本页起始记录 这种方式在某些数据库 如 oracle 的 JDBC 实现中差不多也是需要遍历所有记录 实验 证明在记录数很大时速度非常慢 至于缓存结果集 ResultSet 的方法则完全是一种错误的做法 因为 ResultSet 在 Statement 或 Connection 关闭时也会被关闭 如果要使 ResultSet 有效势必长时间占用数 据库连接 因此比较好的分页做法应该是每次翻页的时候只从数据库里检索页面大小的块区的数 据 这样虽然每次翻页都需要查询数据库 但查询出的记录数很少 网络传输数据量不大 如果使用连接池更可以略过最耗时的建立数据库连接过程 而在数据库端有各种成熟的优 化技术用于提高查询速度 比在应用服务器层做缓存有效多了 在 oracle 数据库中查询结果的行号使用伪列 ROWNUM 表示 从 1 开始 例如 select from employee where rownum 10 返回前 10 条记录 但因为 rownum 是在查询之 后排序之前赋值的 所以查询 employee 按 birthday 排序的第 100 到 120 条记录应该这么 写 select from select my table rownum as my rownum from select name birthday from employee order by birthday my table where rownum 100 mySQL 可以使用 LIMIT 子句 select name birthday from employee order by birthday LIMIT 99 20 DB2 有 rownumber 函数用于获取当前行数 SQL Server 没研究过 可以参考这篇文章 在 Web 程序中分页会被频繁使用 但分页的实现细节却是编程过程中比较麻烦的事情 大多分页显示的查询操作都同时需要处理复杂的多重查询条件 sql 语句需要动态拼接组 成 再加上分页需要的记录定位 总记录条数查询以及查询结果的遍历 封装和显示 程 序会变得很复杂并且难以理解 因此需要一些工具类简化分页代码 使程序员专注于业务 逻辑部分 下面是我设计的两个工具类 精品文档 2欢迎下载 PagedStatementPagedStatement 封装了数据库连接 总记录数查询 分页查询 结果数据封装和关 闭数据库连接等操作 并使用了 PreparedStatement 支持动态设置参数 RowSetPageRowSetPage 参考 PetStore 的 page by page iterator 模式 设计 RowSetPage 用于 封装查询结果 使用 OracleCachedRowSet 缓存查询出的一页数据 关于使用 CachedRowSet 封装数据库查询结果请参考 JSP 页面查询显示常用模式 以及当前页码 总 记录条数 当前记录数等信息 并且可以生成简单的 HTML 分页代码 PagedStatement 查询的结果封装成 RowsetPage 下面是简单的使用示例使用示例 1 2 DAO 查询数据部分代码 3 4 publicpublic RowSetPage getEmployee StringString gender intint pageNo throwsthrows ExceExce ptionption 5 StringString sql select emp id emp code user name real name from employee where gender 6 使用 Oracle 数据库的分页查询实现 每页显示 5 条 7 PagedStatement pst newnew PagedStatementOracleImpl sql pageNo 5 8 pst setString 1 gender 9 returnreturn pst executeQuery 10 11 12 13 Servlet 处理查询请求部分代码 14 15 16 intint pageNo 17 trytry 18 可以通过参数 pageno 获得用户选择的页码 19 pageNo IntegerInteger parseInt request getParameter pageno 20 catchcatch ExceptionException ex 21 默认为第一页 22 pageNo 1 23 24 StringString gender request getParameter gender 25 request setAttribute empPage myBean getEmployee gender pageNo 26 27 28 JSP 显示部分代码 29 30 精品文档 3欢迎下载 31 32 function doQuery 33 form1 actionType value doQuery 34 form1 submit 35 36 37 38 39 40 性别 41 input type text name gender size 1 value 42 43 47 48 49 ID 代码 用户名 姓名 50 54 55 56 57 58 59 60 63 64 68 69 70 精品文档 4欢迎下载 71 效果如图 因为分页显示一般都会伴有查询条件和查询动作 页面应已经有校验查询条件和提交 查询的 javascript 方法 如上面的 doQuery 所以 RowSetPage getHTML 生成的分页代 码在用户选择新页码时直接回调前面的处理提交查询的 javascript 方法 注意在显示查询 结果的时候上次的查询条件也需要保持 如 input type text name gender size 1 value 同时由于页码的参数名可以指定 因此也支持在同一页面中有多个分页区 另一种分页代码实现是生成每一页的 URL 将查询参数和页码作为 QueryString 附在 URL 后面 这种方法的缺陷是在查询条件比较复杂时难以处理 并且需要指定处理查询动 作的 servlet 可能不适合某些定制的查询操作 如果对 RowSetPage getHTML 生成的默认分页代码不满意可以编写自己的分页处理代 码 RowSetPage 提供了很多 getter 方法用于获取相关信息 如当前页码 总页数 总记 录数和当前记录数等 在实际应用中可以将分页查询和显示做成 jsp taglib 进一步简化 JSP 代码 屏蔽 Java Code 附 分页工具类的源代码 有注释 应该很容易理解 1 Page java 2 RowSetPage java RowSetPage 继承 Page 3 PagedStatement java 4 PagedStatementOracleImpl java PagedStatementOracleImpl 继承 PagedStatement 您可以任意使用这些源代码 但必须保留 author evan zhao 字样 1 2 3 4 Page java 精品文档 5欢迎下载 5 author evan zhao 6 7 8 9 packagepackage page 10 11 importimport java util ListList 12 importimport java util ArrayListArrayList 13 importimport java util CollectionCollection 14 importimport java util CollectionsCollections 15 16 17 18 Title 分页对象 19 Description 用于包含数据及分页信息的对象 20 Page 类实现了用于显示分页信息的基本方法 但未指定所含数 据的类型 21 可根据需要实现以特定方式组织数据的子类 22 如 RowSetPage 以 RowSet 封装数据 ListPage 以 List 封装数 据 23 Copyright Copyright c 2002 24 author evan zhao 25 version 1 0 26 27 publicpublic classclass Page implementsimplements java io SerializableSerializable 28 publicpublic staticstatic finalfinal Page EMPTY PAGE newnew Page 29 publicpublic staticstatic finalfinal intint DEFAULT PAGE SIZE 20 30 publicpublic staticstatic finalfinal intint MAX PAGE SIZE 9999 31 32 privateprivate intint myPageSize DEFAULT PAGE SIZE 33 34 privateprivate intint start 35 privateprivate intint avaCount totalSize 36 privateprivate ObjectObject data 37 38 privateprivate intint currentPageno 39 privateprivate intint totalPageCount 40 41 42 默认构造方法 只构造空页 43 44 protectedprotected Page 45 thisthis init 0 0 0 DEFAULT PAGE SIZE newnew ObjectObject 46 精品文档 6欢迎下载 47 48 49 分页数据初始方法 由子类调用 50 param start 本页数据在数据库中的起始位置 51 param avaCount 本页包含的数据条数 52 param totalSize 数据库中总记录条数 53 param pageSize 本页容量 54 param data 本页包含的数据 55 56 protectedprotected voidvoid init intint start intint avaCount intint totalSize intint page Size ObjectObject data 57 58 thisthis avaCount avaCount 59 thisthis myPageSize pageSize 60 61 thisthis start start 62 thisthis totalSize totalSize 63 64 thisthis data data 65 66 System out println avaCount avaCount 67 System out println totalSize totalSize 68 ifif avaCount totalSize 69 throw new RuntimeException 记录条数大于总条数 70 71 72 thisthis currentPageno start 1 pageSize 1 73 thisthis totalPageCount totalSize pageSize 1 pageSize 74 75 ifif totalSize 0 77 thisthis totalPageCount 1 78 79 System out println Start Index to Page No start currentPageno 80 81 82 publicpublic ObjectObject getData 83 returnreturn thisthis data 84 85 86 87 取本页数据容量 本页能包含的记录数 88 return 本页能包含的记录数 精品文档 7欢迎下载 89 90 publicpublic intint getPageSize 91 returnreturn thisthis myPageSize 92 93 94 95 是否有下一页 96 return 是否有下一页 97 98 publicpublic booleanboolean hasNextPage 99 100 if avaCount 0 102 103 return start avaCount 1 totalSize 104 105 returnreturn thisthis getCurrentPageNo 1 115 116 returnreturn thisthis getCurrentPageNo 1 117 118 119 120 获取当前页第一条数据在数据库中的位置 121 return 122 123 publicpublic intint getStart 124 returnreturn start 125 126 127 128 获取当前页最后一条数据在数据库中的位置 129 return 130 131 publicpublic intint getEnd 132 intint end thisthis getStart thisthis getSize 1 精品文档 8欢迎下载 133 ifif end 0 134 end 0 135 136 returnreturn end 137 138 139 140 获取上一页第一条数据在数据库中的位置 141 return 记录对应的 rownum 142 143 publicpublic intint getStartOfPreviousPage 144 returnreturn MathMath max start myPageSize 1 145 146 147 148 149 获取下一页第一条数据在数据库中的位置 150 return 记录对应的 rownum 151 152 publicpublic intint getStartOfNextPage 153 returnreturn start avaCount 154 155 156 157 获取任一页第一条数据在数据库中的位置 每页条数使用默认值 158 param pageNo 页号 159 return 记录对应的 rownum 160 161 publicpublic staticstatic intint getStartOfAnyPage intint pageNo 162 returnreturn getStartOfAnyPage pageNo DEFAULT PAGE SIZE 163 164 165 166 获取任一页第一条数据在数据库中的位置 167 param pageNo 页号 168 param pageSize 每页包含的记录数 169 return 记录对应的 rownum 170 171 publicpublic staticstatic intint getStartOfAnyPage intint pageNo intint pageSize 172 intint startIndex pageNo 1 pageSize 1 173 ifif startIndex 1 startIndex 1 174 System out println Page No to Start Index pageNo startIndex 175 returnreturn startIndex 精品文档 9欢迎下载 176 177 178 179 取本页包含的记录数 180 return 本页包含的记录数 181 182 publicpublic intint getSize 183 returnreturn avaCount 184 185 186 187 取数据库中包含的总记录数 188 return 数据库中包含的总记录数 189 190 publicpublic intint getTotalSize 191 returnreturn thisthis totalSize 192 193 194 195 取当前页码 196 return 当前页码 197 198 publicpublic intint getCurrentPageNo 199 returnreturn thisthis currentPageno 200 201 202 203 取总页码 204 return 总页码 205 206 publicpublic intint getTotalPageCount 207 returnreturn thisthis totalPageCount 208 209 210 211 212 213 param queryJSFunctionName 实现分页的 JS 脚本名字 页码变动时会自 动回调该方法 214 param pageNoParamName 页码参数名称 215 return 216 217 publicpublic StringString getHTML StringString queryJSFunctionName StringString pageNoPara mName 精品文档 10欢迎下载 218 ifif getTotalPageCount 1 219 returnreturn 220 221 ifif queryJSFunctionName nullnull queryJSFunctionName trim l l engthength 1 222 queryJSFunctionName gotoPage 223 224 ifif pageNoParamName nullnull pageNoParamName trim lengthlength 1 225 pageNoParamName pageno 226 227 228 StringString gotoPage queryJSFunctionName 229 230 StringBufferStringBuffer html newnew StringBufferStringBuffer n 231 html append n 232 append function append gotoPage append pageNo n 233 append var curPage 1 n 234 append try curPage document all 235 append pageNoParamName append value n 236 append document all append pageNoParamNam e 237 append value pageNo n 238 append append queryJSFunctionName append pageNo n 239 append return true n 240 append catch e n 241 append try n 242 append document forms 0 submit n 243 append catch e n 244 append alert 尚未定义查询方法 function 245 append queryJSFunctionName append n 246 append document all append pageNoParamN ame 247 append value curPage n 248 append return false n 249 append n 250 append n 251 append 252 append n 253 append 精品文档 11欢迎下载 254 html append n 255 append n 256 append n 257 html append 共 append getTotalPageCount append 页 258 append append getStart append app end getEnd 259 append append thisthis getTotalSize append n 260 append n 261 append n 262 ifif hasPreviousPage 263 html append 上一页 n 266 267 html append 第 268 append n 271 StringString selected selected 272 forfor intint i 1 i getTotalPageCount i 273 ifif i getCurrentPageNo 274 selected selected 275 elseelse selected 276 html append append i append n 278 279 ifif getCurrentPageNo getTotalPageCount 280 html append append getCurrentPageNo 282 append n 283 284 html append 页 n 285 ifif hasNextPage 286 html append 下一页 n 289 290 html append n 291 精品文档 12欢迎下载 292 returnreturn html toString 293 294 295 296 297 298 299 300 301 302 RowSetPage java 303 author evan zhao 304 305 306 packagepackage page 307 308 importimport javax sql RowSetRowSet 309 310 311 312 Title RowSetPage 313 Description 使用 RowSet 封装数据的分页对象 314 Copyright Copyright c 2003 315 author evan zhao 316 version 1 0 317 318 319 publicpublic classclass RowSetPage extendsextends Page 320 privateprivate javax sql RowSetRowSet rs 321 322 323 空页 324 325 publicpublic staticstatic finalfinal RowSetPage EMPTY PAGE newnew RowSetPage 326 327 328 默认构造方法 创建空页 329 330 publicpublic RowSetPage 331 thisthis nullnull 0 0 332 333 334 335 构造分页对象 精品文档 13欢迎下载 336 param crs 包含一页数据的 OracleCachedRowSet 337 param start 该页数据在数据库中的起始位置 338 param totalSize 数据库中包含的记录总数 339 340 publicpublic RowSetPage RowSetRowSet crs intint start intint totalSize 341 thisthis crs start totalSize Page DEFAULT PAGE SIZE 342 343 344 345 构造分页对象 346 param crs 包含一页数据的 OracleCachedRowSet 347 param start 该页数据在数据库中的起始位置 348 param totalSize 数据库中包含的记录总数 349 pageSize 本页能容纳的记录数 350 351 publicpublic RowSetPage RowSetRowSet crs intint start intint totalSize intint pageSiz e 352 trytry 353 intint avaCount 0 354 ifif crs nullnull 355 crs beforeFirst 356 ifif crs next 357 crs last 358 avaCount crs getRow 359 360 crs beforeFirst 361 362 rs crs 363 supersuper init start avaCount totalSize pageSize rs 364 catchcatch java sql SQLExceptionSQLException sqle 365 throwthrow newnew RuntimeExceptionRuntimeException sqle toString 366 367 368 369 370 取分页对象中的记录数据 371 372 publicpublic javax sql RowSetRowSet getRowSet 373 returnreturn rs 374 375 376 377 378 精品文档 14欢迎下载 379 380 381 382 383 384 PagedStatement java 385 author evan zhao 386 387 388 389 packagepackage page 390 391 importimport foo DBUtil 392 393 importimport java math BigDecimalBigDecimal 394 importimport java util ListList 395 importimport java util IteratorIterator 396 importimport java util CollectionsCollections 397 398 importimport java sql ConnectionConnection 399 importimport java sql SQLExceptionSQLException 400 importimport java sql ResultSetResultSet 401 importimport java sql StatementStatement 402 importimport java sql PreparedStatementPreparedStatement 403 importimport java sql TimestampTimestamp 404 importimport javax sql RowSetRowSet 405 406 407 Title 分页查询 408 Description 根据查询语句和页码查询出当页数据 409 Copyright Copyright c 2002 410 author evan zhao 411 version 1 0 412 413 publicpublic abstractabstract classclass PagedStatement 414 publicpublic finalfinal staticstatic intint MAX PAGE SIZE Page MAX PAGE SIZE 415 416 protectedprotected StringString countSQL querySQL 417 protectedprotected intint pageNo pageSize startIndex totalCount 418 protectedprotected javax sql RowSetRowSet rowSet 419 protectedprotected RowSetPage rowSetPage 420 421 privateprivate ListList boundParams 422 精品文档 15欢迎下载 423 424 构造一查询出所有数据的 PageStatement 425 param sql query sql 426 427 publicpublic PagedStatement StringString sql 428 thisthis sql 1 MAX PAGE SIZE 429 430 431 432 433 构造一查询出当页数据的 PageStatement 434 param sql query sql 435 param pageNo 页码 436 437 publicpublic PagedStatement StringString sql intint pageNo 438 thisthis sql pageNo Page DEFAULT PAGE SIZE 439 440 441 442 构造一查询出当页数据的 PageStatement 并指定每页显示记录条数 443 param sql query sql 444 param pageNo 页码 445 param pageSize 每页容量 446 447 publicpublic PagedStatement StringString sql intint pageNo intint pageSize 448 thisthis pageNo pageNo 449 thisthis pageSize pageSize 450 thisthis startIndex Page getStartOfAnyPage pageNo pageSize 451 thisthis boundParams CollectionsCollections synchronizedList newnew java util L L inkedListinkedList 452 453 thisthis countSQL select count from sql 454 thisthis querySQL intiQuerySQL sql thisthis startIndex pageSize 455 456 457 458 459 生成查询一页数据的 sql 语句 460 param sql 原查询语句 461 startIndex 开始记录位置 462 size 需要获取的记录数 463 464 protectedprotected abstractabstract StringString intiQuerySQL StringString sql intint startIndex intint size 精品文档 16欢迎下载 465 466 467 468 使用给出的对象设置指定参数的值 469 param index 第一个参数为 1 第二个为 2 470 param obj 包含参数值的对象 471 472 publicpublic voidvoid setObject intint index ObjectObject obj throwsthrows SQLExceptionSQLException 473 BoundParam bp newnew BoundParam index obj 474 boundParams remove bp 475 boundParams add bp 476 477 478 479 使用给出的对象设置指定参数的值 480 param index 第一个参数为 1 第二个为 2 481 param obj 包含参数值的对象 482 param targetSqlType 参数的数据库类型 483 484 publicpublic voidvoid setObject intint index ObjectObject obj intint targetSqlType thrthr owsows SQLExceptionSQLException 485 BoundParam bp newnew BoundParam index obj targetSqlType 486 boundParams remove bp 487 boundParams add bp 488 489 490 491 使用给出的对象设置指定参数的值 492 param index 第一个参数为 1 第二个为 2 493 param obj 包含参数值的对象 494 param targetSqlType 参数的数据库类型 常量定义在 java sql Types 中 495 param scale 精度 小数点后的位数 496 只对 targetSqlType 是 Types NUMBER 或 Types DECIMAL 有效 其它类 型则忽略 497 498 publicpublic voidvoid setObject intint index ObjectObject obj intint targetSqlType intint scale throwsthrows SQLExceptionSQLException 499 BoundParam bp newnew BoundParam index obj targetSqlType scale 500 boundParams remove bp 501 boundParams add bp 502 503 精品文档 17欢迎下载 504 505 使用给出的字符串设置指定参数的值 506 param index 第一个参数为 1 第二个为 2 507 param str 包含参数值的字符串 508 509 publicpublic voidvoid setString intint index StringString str throwsthrows SQLExceptionSQLException 510 BoundParam bp newnew BoundParam index str 511 boundParams remove bp 512 boundParams add bp 513 514 515 516 使用给出的字符串设置指定参数的值 517 param index 第一个参数为 1 第二个为 2 518 param timestamp 包含参数值的时间戳 519 520 publicpublic voidvoid setTimestamp intint index TimestampTimestamp timestamp throwsthrows SQLESQLE xceptionxception 521 BoundParam bp newnew BoundParam index timestamp 522 boundParams remove bp 523 boundParams add bp 524 525 526 527 使用给出的整数设置指定参数的值 528 param index 第一个参数为 1 第二个为 2 529 param value 包含参数值的整数 530 531 publicpublic voidvoid setInt intint index intint value throwsthrows SQLExceptionSQLException 532 BoundParam bp newnew BoundParam index newnew IntegerInteger value 533 boundParams remove bp 534 boundParams add bp 535 536 537 538 使用给出的长整数设置指定参数的值 539 param index 第一个参数为 1 第二个为 2 540 param value 包含参数值的长整数 541 542 publicpublic voidvoid setLong intint index longlong value throwsthrows SQLExceptionSQLException 543 BoundParam bp newnew BoundParam index newnew LongLong value 544 boundParams remove bp 545 boundParams add bp 546 精品文档 18欢迎下载 547 548 549 使用给出的双精度浮点数设置指定参数的值 550 param index 第一个参数为 1 第二个为 2 551 param value 包含参数值的双精度浮点数 552 553 publicpublic voidvoid setDouble intint index doubledouble value throwsthrows SQLExceptionSQLException 554 BoundParam bp newnew BoundParam index newnew DoubleDouble value 555 boundParams remove bp 556 boundParams add bp 557 558 559 560 使用给出的 BigDecimal 设置指定参数的值 561 param index 第一个参数为 1 第二个为 2 562 param bd 包含参数值的 BigDecimal 563 564 publicpublic voidvoid setBigDecimal intint index BigDecimalBigDecimal bd throwsthrows SQLExceptSQLExcept ionion 565 BoundParam bp newnew BoundParam index bd 566 boundParams remove bp 567 boundParams add bp 568 569 570 privateprivate voidvoid setParams PreparedStatementPreparedStatement pst throwsthrows SQLExceptionSQLException 571 ifif pst nullnull thisthis boundParams nullnull thisthis boundParams siz e 0 returnreturn 572 BoundParam param 573 forfor IteratorIterator itr thisthis boundParams iterator itr hasNext 574 param BoundParam itr next 575 ifif param nullnull continuecontinue 576 ifif param sqlType java sql TypesTypes OTHER 577 pst setObject param index param value 578 elseelse 579 pst setObject param index param value param sqlType param scale 580 581 582 583 584 585 586 精品文档 19欢迎下载 587 执行查询取得一页数据 执行结束后关闭数据库连接 588 return RowSetPage 589 throws SQLException 590 591 publicpublic RowSetPage executeQuery throwsthrows SQLExceptionSQLException 592 SystemSystem out println executeQueryUsingPreparedStatement 593 ConnectionConnection conn DBUtil getConnection 594 PreparedStatementPreparedStatement pst nullnull 595 ResultSetResultSet rs nullnull 596 trytry 597 pst conn prepareStatement thisthis countSQL 598 setParams pst 599 rs pst executeQuery 600 ifif rs next 601 totalCount rs getInt 1 602 elseelse 603 totalCount 0 604 605 606 rs close 607 pst close 608 609 ifif totalCount 1 returnreturn RowSetPage EMPTY PAGE 610 611 pst conn prepareStatement thisthis querySQL 612 SystemSystem out println querySQL 613 pst setFetchSize thisthis pageSize 614 setParams pst 615 rs pst executeQuery 616 rs setFetchSize pageSize 617 618 thisthis rowSet populate rs 619 620 rs close 621 rs nullnull 622 pst close 623 pst nullnull 624 625 thisthis rowSetPage newnew RowSetPage thisthis rowSet startIndex tot
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钱的来历和演变
- 钣金工艺课件
- 钢铁厂检修作业培训课件
- 钢铁冶金学炼钢部分
- 钢铁产业基础知识培训课件
- 潮汕知识产权培训课件
- 知识产权培训体会
- 2025年安全生产高空作业模拟测试题库
- 2025年广东省广州市天河区中考一模化学试题及答案
- 2025年驾驶员安全教育测试题及答案
- 变电站新进人员培训课件
- 医院伦理培训课件
- 2025年小学道德与法治学科教师专业素质真题考试试题及答案
- 化工机械法兰连接课件
- 2025年事业单位工勤技能-河南-河南农业技术员一级(高级技师)历年参考题库含答案解析(5卷套题【单选100题】)
- (新教材)2025年秋期人教版二年级上册数学核心素养教案(第2单元)(教学反思有内容+二次备课版)
- (高清版)DB34∕T 5154-2025 基于云制造的工业互联网架构要求
- 党校中青班入学考试试题及答案
- 三支一扶培训
- 2025年中国儿童游乐设施产业深度调研与投资机遇研究报告
- 新生儿42天体检要点解析
评论
0/150
提交评论