【准备工作】
1,以 scott模式登录 Oracle数据库,并新建表t_ent_ent_base,SQL脚
本,并新增测试数据5条以上
create table t_ent_ent_base (ent_code CHAR(32) DEFAULT sys_guid() not null,-- 企业编号
ent_name VARCHAR2(150),-- 企业名称c
logo VARCHAR2(500),--企业 logo
loc VARCHAR2(50),--企业所在地
addr VARCHAR2(100),--企业详细地址
zip_code CHAR(6),-- 邮政编码
biz_lic VARCHAR2(50) not null,--营业执照编号
biz_lic_auth VARCHAR2(100),--营业执照发证机关
ent_type VARCHAR2(50),--企业类型(股份,国企,央企)
fnd_date DATE,-- 成立日期
corp VARCHAR2(50),--法人
biz_scope VARCHAR2(200),-- 经营范围
contact VARCHAR2(50),-- 联系人
tel VARCHAR2(50),-- 联系电话
ofc_tel VARCHAR2(50),-- 办公电话
ent_desc VARCHAR2(1000),-- 企业简介
constraint PK_T_ENT_ENT_BASE primary key (ent_code)
);
步骤 2,参照新建Web项目 ent,添加 Spring、Spring MVC、MyBatis、Oracle JDBC驱动、Druid数据源等库文件。
步骤 3,修改部署描述符 web.xml文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>
com.alibaba.druid.support.http.StatViewServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
步骤 4,在 WEB-INF目录中,新建 mvc-servlet.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://mybatis.org/schema/mybatis-spring
http://mybatis.org/schema/mybatis-spring.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<context:component-scan base-package="com.it.ent.ctrl"/>
<mvc:resources location="/WEB-INF/res/js/*" mapping="/js/**"/>
<mvc:resources location="/WEB-INF/res/css/*" mapping="/css/**"/>
<mvc:resources location="/WEB-INF/res/img/*" mapping="/img/**"/>
<mvc:annotation-driven/>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
步骤 5,在工程的 src目录下,新建spring-base.xml文件
<!--读取属性文件 -->
<bean id="config"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties"></property>
</bean>
<!--配置 druid数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!--基本属性 url、user、password -->
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!--配置连接池初始化大小、最小、最大 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="20" />
<!--配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000" />
<!--配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!--配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 'x' FROM DUAL" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!--打开 PSCache,并且指定每个连接上 PSCache的大小 -->
<property name="poolPreparedStatements" value="false" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
<!--配置监控统计拦截的 filters -->
<property name="filters" value="stat" />
</bean>
<!--扫描 service,自动生成 Bean-->
<context:component-scan base-package="com.it.ent.service" />
<!--配置 mybatis会话工厂 -->
<bean id="sessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation"
value="classpath:mybatis-config.xml"></property>
</bean>
<!--自动扫描 mybatis映射接口,并生成实现类 -->
<mybatis:scan base-package="com.it.ent.dao" />
<!--配置事务管理器 -->
<bean id="txMgr" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--配置声明试事务 -->
<tx:advice transaction-manager="txMgr" id="txAdvice">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="find*" propagation="REQUIRED" read-only="true" />
<tx:method name="search*" propagation="REQUIRED" read-only="true" />
<tx:method name="get*" propagation="REQUIRED" read-only="true" />
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* *..service..*.*(..))"
id="txSrvMethod" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="txSrvMethod" />
</aop:config>
步骤 6,在工程 src目录下,新建 jdbc.properties属性文件,用于配置数据库连接信息
driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
username=scott
password=tiger
步骤 7,在工程 src目录下,新建 mybatis-config.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--配置日志系统,采用 log4j作为日志工具 -->
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<!--配置别名 -->
<typeAliases>
<package name="com.it.ent.entity" />
</typeAliases>
</configuration>
步骤 8,新建 com.it.ent.entity包,并创建 Enterprise实体类
public class Enterprise implements Serializable{
private static final long serialVersionUID = -8494899139939004344L;
private String ent_code;
private String ent_name;
private String logo;
private String loc;
private String addr;
/*省略 getter/setter方法和构造方法*/
}
步骤 9,新建 com.it.ent.dao包,并创建 IEnterpriseDao数据访问接口
public interface IEnterpriseDao {
List<Enterprise> searchEntList(Integer begin,Integer end);
}
步骤 10,在 com.it.ent.dao包中,新建 IEnterpriseDao.xml 接口映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.it.ent.dao.IEnterpriseDao">
<!--企业列表数据分页查询语句,注意带排序的分页查询写法-->
<select id="searchEntList" resultType="enterprise">
SELECT * FROM
(SELECT t.*, ROWNUM rn FROM
(SELECT ent_name,biz_lic,fnd_date
FROM t_ent_ent_base t ORDER BY fnd_date) t
WHERE ROWNUM <=#{1})
WHERE rn > #{0}
</select>
</mapper>
步骤 11,新建 com.it.ent.service 包,并在包中新建 IEnterpriseService 业务接口
public interface IEnterpriseService {
List<Enterprise> searchEntList(Integer begin,Integer end);
}
步骤 12,在 com.it.ento.service 包中,新建 EnterpriseServiceImpl 业务实现类
@Service
public class EnterpriseServiceImpl implements IEnterpriseService{
@Autowired
private IEnterpriseDao enterpriseDao;
public void setEnterpriseDao(IEnterpriseDao enterpriseDao) {
this.enterpriseDao = enterpriseDao;
}
public List<Enterprise> searchEntList(Integer begin, Integer end) {
return enterpriseDao.searchEntList(begin, end);
}
}
步骤 13,新建 com.it.ent.ctrl包,并在包中新建 EnterpriseController 请求处理类
@Controller
public class EnterpriseController {
@Autowired
private IEnterpriseService enterpriseService;
public void setEnterpriseService(IEnterpriseService enterpriseService) {
this.enterpriseService = enterpriseService;
}
/**
*请求处理方法,访问 url:http://localhost:8080/ent/list/?pageNo=2
* @param pageNo所需也页码
* @return模型数据和逻辑视图
*/
@RequestMapping({"/list"})
public ModelAndView list(Integer pageNo){
Integer begin = (pageNo - 1) * Constants.PAGE_SIZE;
Integer end = begin + Constants.PAGE_SIZE;
ModelAndView modelAndView = new ModelAndView(ViewNames.ENT_LIST);
List<Enterprise> list = enterpriseService.searchEntList(begin, end);
modelAndView.addObject("entList", list);
return modelAndView;
}
}
步骤 14,在 WEB-INF/pages工程文件夹下新建 ent_list.jsp文件,展现企业列
表数据。(内容省略……)
步骤 15,发布应用,并在浏览器地址栏输入http://localhost:8080/ent/list?pageNo=2
进行测试。
ok完成工程