spring mvc 的配置文件编写完毕后 我们开始来编写我们的程序的业务层和数据层
本人编写一个简单的示例 来研究spring mvc
这个示例的目标是 完成用户的登陆 登陆后查看 所有的用户信息
数据库采用的是mysql 程序架构使用spring mvc+ibatis 页面采用freemarker
因为需要使用freemarker 所以 我们需要在spring配置文件applicationContext.xml中 添加如下配置:
<!-- freemarker的配置 -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!-- 此处配置的freemarker的的模板文件所在的位置 -->
<property name="templateLoaderPath" value="/WEB-INF/view/" />
<property name="defaultEncoding" value="utf-8" />
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">10</prop>
<prop key="locale">zh_CN</prop>
<prop key="datetime_format">yyyy-MM-dd</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="number_format">#.##</prop>
</props>
</property>
</bean>
然后 我们再在dispatcher.xml中添加如下配置
<!-- 针对freemarker的视图配置 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true" />
<property name="prefix" value="" />
<!-- 此处配置的是freemarker的文件的后缀名称 -->
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html;charset=UTF-8"></property>
<property name="requestContextAttribute" value="request" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
</bean>
如果代码使用的是jsp页面 则我们不需要在spring的配置文件applicationContext.xml添加上面的freemarker配置 只需要将dispatcher.xml中的freemarker的配置修改成如下配置:
<!-- 针对jsp的视图配置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 此处配置的jsp文件存在的目录 -->
<property name="prefix" value="/WEB-INF/views/"></property>
<!-- 此处配置的是jsp文件的后缀 -->
<property name="suffix" value=".jsp"></property>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
</bean>
在后面 我会专门开篇文章来记录如何配置spring的多种视图。
首先 我们创建数据库 然后创建数据表sys_user 表结构如下图所示
然后 我们创建实体类 users users中代码如下:
package com.hoo.entity;
import java.io.Serializable;
import javax.persistence.Entity;
//@是一种依赖注入,可以为我们写entitybean时,省去写xml的配置,减少错误的发生。
//@Entity表明该类是实体bean
@Entity
@SuppressWarnings("serial")
public class UserDmo implements Serializable{
private String uid;
private String uname;
private String upass;
private String regeditTime;
private Integer userType;
private String regerees;
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpass() {
return upass;
}
public void setUpass(String upass) {
this.upass = upass;
}
public String getRegeditTime() {
return regeditTime;
}
public void setRegeditTime(String regeditTime) {
this.regeditTime = regeditTime;
}
public Integer getUserType() {
return userType;
}
public void setUserType(Integer userType) {
this.userType = userType;
}
public String getRegerees() {
return regerees;
}
public void setRegerees(String regerees) {
this.regerees = regerees;
}
@Override
public String toString() {
return "UserDmo [regeditTime=" + regeditTime + ", regerees=" + regerees + ", uid=" + uid + ", uname=" + uname
+ ", upass=" + upass + ", userType=" + userType + "]";
}
}
其中 @entity表明该类是实体bean 当我们添加他时 不需要再spring配置文件在添加bean
实体类编写完毕后,我们在编写ibatis所需的查询的xml文件 在这里 我的xml文件名称叫做user.xml 下面贴上代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
<typeAlias alias="User" type="com.hoo.entity.UserDmo" />
<select id="User.selectAllUsers" resultClass="User">
select * from sys_users
</select>
<select id="User.selectUserByUname" resultClass="User">
select * from sys_users where uname=#uname#
</select>
<select id="User.selectUser" resultClass="User" parameterClass="int">
select * from sys_users where uid=#uid#
</select>
<insert id="User.insertUser" parameterClass="User">
insert into sys_users
values (
#uid#,#uname#,#upass#,#regeditTime#,#userType#,#regerees#
)
</insert>
<update id="User.updateUser" parameterClass="User">
update sys_users set uname
= #uname#,upass=#upass#
where uid=#uid#
</update>
<delete id="User.deleteUser" parameterClass="int">
delete from sys_users
where uid=#uid#
</delete>
</sqlMap>
最后 在附上 ibatis的sqlMapConfig.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings
lazyLoadingEnabled="true"
useStatementNamespaces="true" />
<!-- 使用spring之后,数据源的配置移植到了spring上,所以iBATIS本身的配置可以取消 -->
<sqlMap resource="com/hoo/entity/user.xml" />
</sqlMapConfig>
至此 数据库的建立和实体类的编写已经完毕 关于数据层的编写和业务逻辑层的编写 请参考《Spring mvc 代码详解 二》