- 浏览: 304663 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (118)
- VS2008 (2)
- JAVA (34)
- AJAX (1)
- C# (1)
- Flex (16)
- FMS (6)
- SQLSERVER (1)
- ORACLE (1)
- Quartz (1)
- struts2 (1)
- java数据结构 (1)
- java设计模式 (3)
- JSF (0)
- web (2)
- jbpm4 (4)
- J2EE (1)
- webservice (2)
- javascript (8)
- spring (3)
- lucene (0)
- linux (9)
- ibatis (1)
- JPA (2)
- 外挂 (0)
- VB (0)
- Hibernate (1)
- OSGI (8)
- EXT (4)
- Maven (1)
- SpringSecurity (0)
- activiti (0)
- 项目开发 (0)
- 项目管理 (7)
- android (0)
- FFMPEG (1)
- C (2)
- eclipse (1)
最新评论
-
默默得守候在你的身边:
给力
java与Delphi写的dll交互 -
默默得守候在你的身边:
java与Delphi写的dll交互 -
fuguitong:
[url][url][url][url][url][url][ ...
doc转swf -
baidu_25402161:
到结束的时候一直 Can't delete processIn ...
一个请假单流程的实现(struts2.1.8+spring2.5+hibernate3集成jbpm4.3) -
lohaoo1:
nice!
java面包屑导航制作
现在加入oracle和sql2005的分页代码实现;
sql2005测试数据脚本:
USE master go IF DB_ID('paginationdb') IS NOT NULL DROP DATABASE paginationdb GO ----建库 CREATE DATABASE paginationdb GO ----建表 USE paginationdb IF EXISTS (SELECT name FROM sysobjects WHERE [name]='student_') DROP TABLE student_ GO ----创建用户信息表 CREATE TABLE student_ ( id_ INT NOT NULL IDENTITY (1,1) PRIMARY KEY, name_ varchar(50), sex_ varchar(50), age_ int, grade_ varchar(50), class_ varchar(50) ) GO --插入测试数据 INSERT INTO student_(name_,sex_,age_,grade_,class_) SELECT 'student1' ,'男', 11 ,'一年级' ,'二班' UNION SELECT 'student2' ,'男', 12 ,'一年级' ,'二班' UNION SELECT 'student3' ,'男', 13 ,'一年级' ,'二班' UNION SELECT 'student4' ,'女', 14 ,'一年级' ,'二班' UNION SELECT 'student5' ,'女', 15 ,'一年级' ,'二班' UNION SELECT 'student6' ,'男', 16 ,'二年级' ,'一班' UNION SELECT 'student7' ,'男', 17 ,'二年级' ,'一班' UNION SELECT 'student8' ,'女', 18 ,'一年级' ,'一班' UNION SELECT 'story1' ,'男', 19 ,'一年级' ,'二班' UNION SELECT 'story2' ,'女', 11 ,'一年级' ,'一班' UNION SELECT 'story3' ,'男', 12 ,'二年级' ,'一班' UNION SELECT 'story4' ,'女', 13 ,'一年级' ,'二班' UNION SELECT 'story5' ,'男', 14 ,'一年级' ,'一班' UNION SELECT 'story6' ,'男', 15 ,'一年级' ,'一班' UNION SELECT 'story7' ,'女', 16 ,'一年级' ,'二班' UNION SELECT 'story8' ,'男', 17 ,'一年级' ,'二班' UNION SELECT 'story9' ,'男', 18 ,'一年级' ,'二班' UNION SELECT 'story8' ,'男', 15 ,'一年级' ,'二班' UNION SELECT 'story8' ,'男', 16 ,'一年级' ,'二班' UNION SELECT 'story10' ,'保密', 16 ,'一年级' ,'二班' GO
oracle测试数据:
//创建学生表 CREATE TABLE STUDENT_ ( ID_ INT PRIMARY KEY, NAME_ VARCHAR2(50), SEX_ VARCHAR2(50), AGE_ INT, GRADE_ VARCHAR2(50), CLASS_ VARCHAR2(50) ) //为学生表创建序列 CREATE SEQUENCE SEQ_STUDENT_ID; //插入测试数据 INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'student1','男',11,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'student2','男',12,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'student3','男',13,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'student4','女',14,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'student5','女',15,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'student6','男',16,'二年级','一班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'student7','男',17,'二年级','一班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'student8','女',18,'一年级','一班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story1','男',19,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story2','女',11,'一年级','一班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story3','男',12,'二年级','一班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story4','女',13,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story5','男',14,'一年级','一班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story6','男',15,'一年级','一班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story7','女',16,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story8','男',17,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story9','男',18,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story8','男',15,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story8','男',16,'一年级','二班'); INSERT INTO STUDENT_ VALUES (SEQ_STUDENT_ID.NEXTVAL,'story10','保密',16,'一年级','二班'); COMMIT;
重构StudentManager类:
package org.forever.manager; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import oracle.jdbc.driver.OracleDriver; import org.forever.entities.Condition; import org.forever.entities.Operation; import org.forever.entities.Order; import org.forever.entities.OrderType; import org.forever.entities.PageInfo; import org.forever.entities.Student; import com.mysql.jdbc.Driver; public class StudentManager { //基于oracle10g数据库 public void doPagerOracle(PageInfo pageInfo){ String sqlPage = " SELECT * FROM "+ " (SELECT ROWNUM NUM,@TABLE_NAME.* FROM @TABLE_NAME WHERE (1=1) AND (ROWNUM<=(@CURRENT_PAGE*@PAGE_SIZE)) @CONDITIONS @ORDERS ) "+ " WHERE NUM>(@CURRENT_PAGE-1)*@PAGE_SIZE " ; String sqlCount = " SELECT COUNT(*) FROM @TABLE_NAME WHERE 1=1 @CONDITIONS "; //处理条件 List<Object> params = new ArrayList<Object>(); String conditions = processCondition(pageInfo, params); //处理排序 String orderList = processOrder(pageInfo); //获取完整分页语句 String sqlp=sqlPage.replaceAll("@CONDITIONS",conditions) .replaceAll("@ORDERS", orderList) .replaceAll("@TABLE_NAME", pageInfo.getTableName()) .replaceAll("@PAGE_SIZE", pageInfo.getPageSize()+"") .replaceAll("@CURRENT_PAGE", pageInfo.getCurrentPage()+""); //获取完整的统计语句 String sqlc = sqlCount.replaceAll("@CONDITIONS", conditions) .replaceAll("@TABLE_NAME", pageInfo.getTableName()); Connection connection = null; PreparedStatement statement = null; ResultSet resultSet = null; try { Class.forName(OracleDriver.class.getName()); connection = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.101:1521:ORCL", "scott", "story"); statement = connection.prepareStatement(sqlc); for (int i = 0; i < params.size(); i++) { statement.setObject(i+1, params.get(i)); } resultSet = statement.executeQuery(); resultSet.next(); int totalItems = resultSet.getInt(1); //设置总条数 pageInfo.setTotalItems(totalItems); //设置总页数 pageInfo.setTotalPage( totalItems%pageInfo.getPageSize()==0? totalItems/pageInfo.getPageSize(): totalItems/pageInfo.getPageSize()+1 ); //设置结果集 statement = connection.prepareStatement(sqlp); for (int i = 0; i < params.size(); i++) { statement.setObject(i+1, params.get(i)); } resultSet = statement.executeQuery(); List<Student> students = new ArrayList<Student>(); while(resultSet.next()){ Student student = new Student(); student.setId(resultSet.getInt("ID_")); student.setName(resultSet.getString("NAME_")); student.setSex(resultSet.getString("SEX_")); student.setAge(resultSet.getInt("AGE_")); student.setGrade(resultSet.getString("GRADE_")); student.setStuClass(resultSet.getString("CLASS_")); students.add(student); } pageInfo.setResult(students); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); }finally{ if(connection!=null){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } } //基于sql2005数据库 public void doPagerSql2k5(PageInfo pageInfo){ StringBuffer sqlPage = new StringBuffer( " SELECT TOP(@PAGE_SIZE) * FROM @TABLE_NAME WHERE 1=1 AND @PKEY NOT IN "+ " (SELECT TOP((@CURRENT_PAGE-1)*@PAGE_SIZE) @PKEY FROM @TABLE_NAME WHERE 1=1 @CONDITIONS @ORDERS) "+ " @CONDITIONS @ORDERS " ); StringBuffer sqlCount = new StringBuffer( " SELECT COUNT(*) FROM @TABLE_NAME WHERE 1=1 @CONDITIONS " ); //处理条件 List<Object> params = new ArrayList<Object>(); String conditions = processCondition(pageInfo, params); //处理排序 String orderList = processOrder(pageInfo); //获取完整分页语句 String sqlp=sqlPage.toString() .replaceAll("@CONDITIONS", conditions) .replaceAll("@ORDERS", orderList) .replaceAll("@TABLE_NAME", pageInfo.getTableName()) .replaceAll("@PKEY", pageInfo.getPkey()) .replaceAll("@PAGE_SIZE", pageInfo.getPageSize()+"") .replaceAll("@CURRENT_PAGE", pageInfo.getCurrentPage()+""); //获取完整统计语句 String sqlc=sqlCount.toString() .replaceAll("@CONDITIONS", conditions) .replaceAll("@TABLE_NAME", pageInfo.getTableName()); Connection connection = null; PreparedStatement statement = null; ResultSet resultSet = null; try { Class.forName(net.sourceforge.jtds.jdbc.Driver.class.getName()); connection = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1151/paginationdb", "sa", "123456"); statement = connection.prepareStatement(sqlc); for (int i = 0; i < params.size(); i++) { statement.setObject(i+1, params.get(i)); } resultSet = statement.executeQuery(); resultSet.next(); int totalItems = resultSet.getInt(1); //设置总条数 pageInfo.setTotalItems(totalItems); //设置总页数 pageInfo.setTotalPage( totalItems%pageInfo.getPageSize()==0? totalItems/pageInfo.getPageSize(): totalItems/pageInfo.getPageSize()+1 ); //设置结果集 statement = connection.prepareStatement(sqlp); //因为涉及两个conditions,所以参数是2倍 for (int i = 0; i < params.size(); i++) { statement.setObject(i+1, params.get(i)); } for (int i = params.size(); i < params.size()*2; i++) { statement.setObject(i+1, params.get(i-params.size())); } resultSet = statement.executeQuery(); List<Student> students = new ArrayList<Student>(); while(resultSet.next()){ Student student = new Student(); student.setId(resultSet.getInt("id_")); student.setName(resultSet.getString("name_")); student.setSex(resultSet.getString("sex_")); student.setAge(resultSet.getInt("age_")); student.setGrade(resultSet.getString("grade_")); student.setStuClass(resultSet.getString("class_")); students.add(student); } pageInfo.setResult(students); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); }finally{ if(connection!=null){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException(e); } } } } //基于mysql数据库 public void doPagerMysql(PageInfo pageInfo){ StringBuffer sqlPage = new StringBuffer("SELECT * FROM @TABLE_NAME WHERE 1=1 @CONDITIONS @ORDERS LIMIT @FIRST_INDEX,@PAGE_SIZE "); StringBuffer sqlCount = new StringBuffer("SELECT COUNT(*) FROM @TABLE_NAME WHERE 1=1 @CONDITIONS ") ; //处理条件 List<Object> params = new ArrayList<Object>(); String conditions = processCondition(pageInfo, params); //处理排序 String orderList = processOrder(pageInfo); //获取完整分页语句 String sqlp=sqlPage.toString() .replaceAll("@CONDITIONS", conditions) .replaceAll("@ORDERS", orderList) .replaceAll("@TABLE_NAME", pageInfo.getTableName()) .replaceAll("@PKEY", pageInfo.getPkey()) .replaceAll("@FIRST_INDEX", (pageInfo.getCurrentPage()-1)*pageInfo.getPageSize()+"") .replaceAll("@PAGE_SIZE", pageInfo.getPageSize()+""); //获取完整统计语句 String sqlc = sqlCount.toString() .replaceAll("@CONDITIONS", conditions) .replaceAll("@TABLE_NAME", pageInfo.getTableName()); Connection connection = null; PreparedStatement statement = null; ResultSet resultSet = null; try { Class.forName(Driver.class.getName()); connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/paginationdb", "root", "root"); statement = connection.prepareStatement(sqlc); for (int i = 0; i < params.size(); i++) { statement.setObject(i+1, params.get(i)); } resultSet = statement.executeQuery(); resultSet.next(); int totalItems = resultSet.getInt(1); //设置总条数 pageInfo.setTotalItems(totalItems); //设置总页数 pageInfo.setTotalPage( totalItems%pageInfo.getPageSize()==0? totalItems/pageInfo.getPageSize(): totalItems/pageInfo.getPageSize()+1 ); //设置结果集 statement = connection.prepareStatement(sqlp); for (int i = 0; i < params.size(); i++) { statement.setObject(i+1, params.get(i)); } resultSet = statement.executeQuery(); List<Student> students = new ArrayList<Student>(); while(resultSet.next()){ Student student = new Student(); student.setId(resultSet.getInt("id_")); student.setName(resultSet.getString("name_")); student.setSex(resultSet.getString("sex_")); student.setAge(resultSet.getInt("age_")); student.setGrade(resultSet.getString("grade_")); student.setStuClass(resultSet.getString("class_")); students.add(student); } pageInfo.setResult(students); } catch (Exception e) { e.printStackTrace(); }finally{ if(connection!=null){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } } //处理条件 public String processCondition(PageInfo pageInfo,List<Object> params){ StringBuffer condition = new StringBuffer(); Condition[]conditions = pageInfo.getConditions(); if(conditions!=null && conditions.length>0){ for (Condition item : conditions) { switch (item.getOperation()) { case EQ: condition.append(" AND (" + item.getPropertyName()+" =?) "); break; case LIKE: condition.append(" AND (" + item.getPropertyName()+" LIKE ?) "); break; case BETWEEN: condition.append(" AND (" + item.getPropertyName() + " BETWEEN ? AND ?) "); break; case IN: condition.append(" AND (" + item.getPropertyName() + " IN ("); for (int i = 0; i < ((Object[])item.getPropertyValue()).length; i++) { condition.append("?,"); } condition.replace(condition.length()-1, condition.length(), ""); condition.append(")) "); //..... default: break; } if(item.getOperation() == Operation.LIKE){ params.add("%"+item.getPropertyValue()+"%"); }else if(item.getOperation() == Operation.BETWEEN){ params.add(((Object[])item.getPropertyValue())[0]); params.add(((Object[])item.getPropertyValue())[1]); }else if(item.getOperation() == Operation.IN){ for (Object object : (Object[])item.getPropertyValue()) { params.add(object); } }else{ params.add(item.getPropertyValue()); } } } return condition.toString(); } //处理排序 public String processOrder(PageInfo pageInfo){ Order[]orders = pageInfo.getOrders(); StringBuffer orderList = new StringBuffer(" ORDER BY "); if(orders!=null && orders.length>0){ for (Order item : orders) { switch (item.getOrderType()) { case ASC: orderList.append(item.getPropertyName()+" ASC ,"); break; case DESC: orderList.append(item.getPropertyName()+" DESC ,"); break; } } orderList.replace(orderList.length()-1, orderList.length(), ""); }else{ orderList.append(" @PKEY ASC "); } return orderList.toString(); } public static void main(String[] args) { StudentManager studentManager = new StudentManager(); PageInfo pageInfo = new PageInfo(); pageInfo.setTableName("student_");//指定查询表名 pageInfo.setPkey("id_");//指定该表的主键名 pageInfo.setPageSize(2);//每页显示2条 pageInfo.setCurrentPage(2);//查看第二页 //实体暂时没有和数据库进行映射,所以条件和排序里面的属性名暂时写成数据库的属性名 /*例子:查询一年级二班,名字中包含stor的,年龄在14到18的,性别是男和女的学生 *并且按照姓名升序排序,名字相同的按照年龄的逆序排序。 */ pageInfo.setConditions( new Condition[]{ new Condition("grade_", "一年级", Operation.EQ), new Condition("class_", "二班", Operation.EQ), new Condition("name_","stor",Operation.LIKE), new Condition("age_", new Object[]{14,18}, Operation.BETWEEN), new Condition("sex_",new Object[]{"男","女"},Operation.IN) } ); pageInfo.setOrders( new Order[]{ new Order("name_", OrderType.ASC), new Order("age_",OrderType.DESC) } ); // System.out.println("************mysql分页*****************"); // studentManager.doPagerMysql(pageInfo); // System.out.println("totalPage:"+pageInfo.getTotalPage()); // System.out.println("totalItems:" + pageInfo.getTotalItems()); // for (Object item : pageInfo.getResult()) { // System.out.println("***************"); // System.out.println(((Student)item).getId()); // System.out.println(((Student)item).getName()); // System.out.println(((Student)item).getSex()); // } // System.out.println("**************sql2005分页*****************"); // studentManager.doPagerSql2k5(pageInfo); // System.out.println("totalPage:"+pageInfo.getTotalPage()); // System.out.println("totalItems:" + pageInfo.getTotalItems()); // for (Object item : pageInfo.getResult()) { // System.out.println("***************"); // System.out.println(((Student)item).getId()); // System.out.println(((Student)item).getName()); // System.out.println(((Student)item).getSex()); // } System.out.println("**************ORACLE分页*****************"); studentManager.doPagerOracle(pageInfo); System.out.println("totalPage:"+pageInfo.getTotalPage()); System.out.println("totalItems:" + pageInfo.getTotalItems()); for (Object item : pageInfo.getResult()) { System.out.println("***************"); System.out.println(((Student)item).getId()); System.out.println(((Student)item).getName()); System.out.println(((Student)item).getSex()); } } }
- pagination_第二篇_.rar (23.7 KB)
- 下载次数: 17
发表评论
-
OSGI学习
2012-03-18 18:01 0http://www.blogjava.net/zhenyu3 ... -
OSGI学习笔记(七)
2012-03-17 23:58 1671SpringDM初步使用(二) 介绍哈官方的第二个例子 ... -
ubuntu10.04下nexus和maven的安装及配置
2012-03-14 16:14 2481前提要有jdk环境,官方下载nexus和maven,解压后创建 ... -
ubuntu10.04下eclipse的安装及配置
2012-03-14 00:01 1277从官方http://www.eclipse.org/downl ... -
Ubuntu10.04下配置java环境变量
2012-03-13 23:28 1038Ubuntu10.04默认安装了OpenJDK,但还是基于Su ... -
eclipse设置保护色
2012-03-16 09:22 9384eclipse操作界面默认颜色为白色。对于我们长期使 ... -
OSGI学习笔记(六)
2012-03-17 15:08 2727SpringDM初步使用(一) 官方地址http:// ... -
OSGI学习笔记(八)
2012-03-19 21:08 2273SpringDM初步使用(三) spring第三个例子 ... -
OSGI学习笔记(五)
2011-07-31 10:32 1563开放服务网关协议 (Open Services Gateway ... -
osgi学习笔记(三)
2011-07-16 22:43 1927OSGI实战书上讲了一个web登陆验证切换功能。表达了osgi ... -
word工具类
2011-03-15 09:19 1409package org.foreverframework ... -
命令模式--撤销恢复
2011-03-14 22:32 4946该例子来自阎宏提供的 ... -
java zip
2011-03-06 15:32 1183import java.io.BufferedInputStr ... -
doc转swf
2010-12-07 22:03 8509将doc转换成swf,然后显示在html页面上。 packa ... -
javamail简单使用
2010-11-15 08:29 2308MailInfo类: //发送邮件的信息类 public ... -
xloadtree的一个改造
2010-09-20 22:58 2540修改了xloadtree的部分源码以适合自己使用。 1.修改 ... -
java与Delphi写的dll交互
2010-09-05 22:27 6105有时候在项目开发的时候难免会和硬件提供的开发包接触,这些开发接 ... -
JAVA与DLL交互
2010-08-27 23:32 1906jna官网地址:https://jna.dev.java.ne ... -
office工具类
2010-07-31 14:17 2284将jcom.dll放入jdk的bin目录下,将jcom.jar ... -
启动多个tomcat
2010-04-22 09:13 1184想启动多个tomcat,只需修改conf/server.xml ...
相关推荐
│ Java面试题05.java面向对象的特征.mp4 │ Java面试题06.装箱和拆箱.mp4 │ Java面试题07.==和equals的区别.mp4 │ Java面试题08.String.mp4 │ Java面试题09.讲一下java中的集合.mp4 │ Java面试题10.ArrayList ...
Java面试题05.java面向对象的特征 Java面试题06.装箱和拆箱 Java面试题07.==和equals的区别 Java面试题08.String Java面试题09.讲一下java中的集合 Java面试题10.ArrayList 和LinkedList的区别 Java面试题11.HashMap...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
该工程师熟悉 Java 语言,理解面向对象编程思想,了解多线程、Socket 编程和 UDP/TCP 网络协议。同时,熟练使用 EL 表达式、ognl、JSP、Servlet 等 WEB 应用的开发技术。另外,还熟悉 jQuery、JavaScript、Ajax 等...
这是一款使用Java面向对象思想来编写并生成Sql语句的工具,并在此基础上同时对Mybatis和Spring Jdbc实现了类似于JPA的轻量级插件支持。插件中内置大量常用Sql执行的方法,目的是为了提高开发效率,减少大量的Sql语句...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
11、面向对象的基本特征是什么? 15 12、作用域public,private,protected,以及不写时的区别? 16 13、Overload和Override的区别。 16 14、构造器可不可以被重载或重写? 16 15、Java中有没有多继承? 16 16、抽象类...