《基于PKI的课程设计选题系统》算是我第一个完全独立完成的项目,虽然功能上面很简单,模块也很少,但是整个项目做下来,期间也有不少收获,现记录如下.

1

在编写Maven配置文件pom.xml的时候,可以在Maven中央仓库(http://search.maven.org/)搜索jar包的相关信息

2

使用阿里巴巴wenshao开发的fastjson库,可以很方便的将一个对象的完整信息以JSON格式输出

3

JSONView是一个JSON格式数据的查看器,小巧的绿色软件,可以配合fastjson使用

4

在eclipse中使用Log4E插件可以方便的进行日志记录操作

5

使用Eclipse创建Maven项目时,需要(可以)修改项目属性中Project Facets(Dynamic Web Module,Java)(依情况选择合适的),Java Build Path(Libraries(JRE System Library))(改为Workspace default JRE),Resource(Text file encoding)(数据库,java文件,jsp文件统一为UTF-8)

6

<!-- 在使用Mybatis-Generator时需要指定数据库表,可以将那些Example属性设为false,就不会生产Example文件,提供一个完整的表描述如下 -->
<table tableName="student" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />

7

/* log4j配合Spring-test使用,只需在测试类声明前加上如下注解
 * 其中"classpath:spring.xml","classpath:spring-mybatis.xml"
 * 为Spring配置文件
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring.xml","classpath:spring-mybatis.xml"})

8

<!-- 在SpringMVC中使用commons-fileupload和commons-io进行文件上传时,需要在SpringMVC配置CommonsMultipartResolver Bean -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<!-- <property name="defaultEncoding">
		<value>UTF-8</value>
	</property> -->
	<property name="maxUploadSize">
		<value>10000</value>
	</property>
	<!-- <property name="maxInMemorySize">
		<value>4096</value>
	</property> -->
</bean>

9

<!-- 自定义Mybatis Mapper文件的ResultMap
 	 一对一关系使用association标签
     一对多关系使用collection标签 
     如下是一个示例,使用extends完成继承 -->
<resultMap type="diseng.github.model.Student" id="NoCourseResultMap" extends="BaseResultMap">
		<association property="pki" javaType="diseng.github.model.Pki">
			<id property="pid" column="pki_pid" />
			<result property="cert" column="pki_cert" />
		</association>
</resultMap>
	
<resultMap type="diseng.github.model.Student" id="loginSelectInfo" extends="NoCourseResultMap">
	<collection property="courses" javaType="list" ofType="diseng.github.model.Course">
		<id property="cid" column="course_cid" />
		<result property="title" column="course_title" />
		<result property="amount" column="course_amount" />
		<result property="stime" column="course_stime" />
		<result property="etime" column="course_etime" />
		<result property="info" column="course_info" />
		<association property="teacher" javaType="diseng.github.model.Teacher">
			<id property="tid" column="teacher_tid" />
			<result property="username" column="teacher_username" />
			<result property="college" column="teacher_college" />
		</association>
	</collection>
</resultMap>

10

<!-- Mybatis的Mapper文件中,parameterType可以是Java内置的基础类型,引用类型或者用户自定义的类型
	 如果启用useGeneratedKeys和keyProperty,则完成数据库操作后,会将生成的id置入到对象中 -->
<insert id="insert" parameterType="diseng.github.model.Student" useGeneratedKeys="true" keyProperty="sid">
	insert into student (sid, pid,
	username,
	college, grade, major,
	number)
	values (#{sid,jdbcType=INTEGER},
	#{pid,jdbcType=INTEGER},
	#{username,jdbcType=VARCHAR},
	#{college,jdbcType=VARCHAR}, #{grade,jdbcType=CHAR},
	#{major,jdbcType=VARCHAR},
	#{number,jdbcType=CHAR})
</insert>

11

<!-- 将页面输入的String转换为Date时,需要在SpringMVC配置中为Bean AnnotationMethodHandlerAdapter设定webBindingInitializer -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
	<property name="messageConverters">
		<list>
			<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
		</list>
	</property>
	<property name="webBindingInitializer">
		<bean
			class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
			<property name="conversionService">
				<bean
					class="org.springframework.format.support.FormattingConversionServiceFactoryBean"></bean>
			</property>
		</bean>
	</property>
</bean>

12

/* ~~ 使用jstl/fmt标签,以让JSP中显示Date为yyyy-MM-dd格式 ~~ */
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<fmt:formatDate pattern="yyyy-MM-dd" value="${course.stime}" />


blog comments powered by Disqus

Published

27 May 2013

Category

program