springMVC详细配置+Mysql+jdbcTemplate实现分页功能
(P:网上很少找到完整的springMVC+mysql实现分页查询,所以就自己详细的做了一个完整的例子)
(环境:jdk1.6 +tomcat7.0+mysql+eclipse....)
(包/文件:json.lib+jquery.js+spring3.0相关jar+jstl.jar+bootstrap相关css\js.....)
(传输数据格式为:json)
(
SpringMVC 的核心原理:
1,用户发送请求给服务器:url:user.do
2,服务器收到请求。发现DispatchServlet 可以处理。于是调用DispatchServlet。
3,DispatchServlet 内部,通过HandleMapping 检查这个url 有没有对应的Controller。如果有,则调用Controller.
4,Controller 开始执行。
5,Controller 执行完后,如果返回字符串,则ViewResolver 将字符串转化成相对应的视图对象;如果返回ModelAndView ,该对象本身就包含了视图对象信息。
6,DispatchServlet 将执行视图对象中的数据,输出给服务器。
7,服务器将数据输出给客户端。
)
一,先秀效果图(不是很美观,只为实现效果):
二:整体结构
1,src(由于工程名较敏感,所以******)
2, webContent
三:主要配置文件
1.web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>Spring3MVC</display-name> <filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
2.spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --> <context:component-scan base-package="com.fingerknow.project" /> <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="cacheSeconds" value="0" /> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> </list> </property> </bean> <!--对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/views/" p:suffix=".jsp" /> <!--文件上传配置 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8"> <property name="maxUploadSize"> <value>104857600</value> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"> </property> <property name="username" value="root"></property> <property name="password" value=""></property> </bean> </beans>
3.***.properties
projectURL=http://localhost:8080/fk/ downloadURL=http://localhost:8080/fk/upload/download/ uploadURL=http://localhost:8080/fk/temp/
四:java类(business为本例实例)
1,AbstractDao
public class AbstractDao extends JdbcDaoSupport { @Resource(name = "dataSource") public void setSuperDataSource(DataSource dataSource) { super.setDataSource(dataSource); } }
2,BusinessDao(只展示分页查询方法)
@Repository("businessDao") public class BusinessDao extends AbstractDao{ /** * 分页查询 * @param currentPage 当前页 * @param numPerPage 每页记录数 * @return */ public Pagination queryPageBusiness(Integer currentPage,Integer numPerPage) { String sql="SELECT * FROM business ORDER BY busines
一、工具介绍
Cppcheck是一个C/C++代码分析工具,只检测那些编译器通常无法检测到的bug类型。这个工具容易上手,建议大家安装使用。
PC-Lint这个工具上手慢,需要学习一下才能使用。目前研发中心在使用这个工具。
二、内存分配使用建议
1、嵌入式系统内存分配要受控,如果实现一个功能需要分配或使用大于10K同时小于100K的内存,需要重新审视数据结构和算法,寻找优化的方法;如果需要大于100K的内存,尽量放弃使用此数据结构或算法;
2、内存分配函数malloc和free,内存分配运算符new和delete最好要封装使用,方便以后查内存泄漏;
3、如果需要分配缓冲,建议采用STL的string来实现;
4、对于永不释放的内存占用(采用malloc和new分配的内存),尽量采用静态全局变量来实现,这样可以防止堆区零零碎碎,即产生过多的碎片。
三、项目代码走查工作安排
各个项目负责人根据当前工作及项目的紧急情况,在6月份完成负责项目的代码走查,并按走查结果,根据建议情况进行酌情修改,即能调整或方便调整的,改成工具要求的样式。
四、项目代码走查汇总
项目
错误
一般告警
风格问题
可移植性问题
性能问题
营配项目(dyjc_8090)
117
1776
883
179
532
广东负控项目
51
360
408
92
108
重庆集抄项目
33
789
994
174
332
计量核心资源项目
14
52
31
0
19
新标准国网嵌软项目
1
65
51
342
62
1、以前的老项目代码走查耗时较久,约要半小时。新开发的项目,如核心资源代码、新国网代码,在一分钟内就完成了走查。
2、总体上来说,新开发的项目代码质量优于老项目。
五、项目代码走查具体情况
1、营配项目(dyjc_8090)
2、广东负控项目
3、国网重庆集抄项目
4、计量核心资源
5、新标准国网嵌软
六、
使用场景:
整个系统中只允许有一个实例,例如:调度程序,某些特殊服务等。
实现方法:
将构造函数设置为private或者protected,然后设置一个静态方法(为什么必须要静态?因为无法new出一个对象来),供其他函数访问这个唯一的实例。
代码:
#include <iostream> using namespace std; class Singleton { protected: Singleton(){}; public: static Singleton * getInstance() { if(_instance==0) { _instance = new Singleton(); } return _instance; } ///other class functions... void show() { cout<<"This is a Singleton !"<<endl; } private: static Singleton * _instance; ///other class members ... }; ///静态成员的初始化方法 Singleton * Singleton::_instance = 0; int main() { Singleton *s=Singleton::getInstance(); s->show(); return 0; }
单例模式应该是设计模式中最简单的一个吧~
下一个:工厂模式。