1、建立一個工程css
選擇Maven,勾選create from archetype,選中maven-archetype-webappjava
2、編輯Mavenmysql
一、Spring框架必須web
二、Spring整合ORM框架(如調用事務管理器)spring
三、Spring對web的支持(無論Struts2仍是SpringMVC都須要,它不是SpringMVC)sql
四、SpringMVC數據庫
五、Spring依賴的jackson(SpringMVC使用@ResponseBody時輸出JSON要用到)spring-mvc
六、Mybatis緩存
七、Mybatis-spring (1、SqlSessionFactory 2、完成Dao的實現類)mybatis
八、Mybatis須要依賴的數據庫的驅動
九、Mybatis須要依賴的C3P0
十、JSTL
POM.XML參考:
<properties>
<spring-version>5.0.5.RELEASE</spring-version>
<jackson-version>2.9.5</jackson-version>
<mybatis-version>3.4.6</mybatis-version>
<mybatis-spring-version>1.3.2</mybatis-spring-version>
<c3p0-version>0.9.5.2</c3p0-version>
<!--oracle的使用私有庫(Maven自己不提供Oracle的驅動)-->
<mysql-version>8.0.11</mysql-version>
<jstl-version>1.2</jstl-version>
</properties>
<!--一、Spring框架必須-->
<!--Spring框架必須:Spring Core、Spring Context、Spring Beans、Spring AOP-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring-version}</version>
</dependency>
<!--二、Spring整合ORM框架(如調用事務管理器)-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring-version}</version>
</dependency>
<!--三、Spring對web的支持(無論Struts2仍是SpringMVC都須要,它不是SpringMVC)-->
<!--spring對web的支持 1.新建一個applicationContext.xml 2.把applicationContext.xml寫到web.xml(整個web項目的啓動文件)-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring-version}</version>
</dependency>
<!--4.SpringMVC-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring-version}</version>
</dependency>
<!--5.Spring依賴的jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson-version}</version>
</dependency>
<!--六、Mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis-version}</version>
</dependency>
<!--七、Mybatis 和Spring的整合-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring-version}</version>
</dependency>
<!--八、Mybatis須要依賴的數據庫的驅動,Oracle,MySQL-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-version}</version>
</dependency>
<!--9.c3p0是一個很是穩定的數據庫鏈接池-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0-version}</version>
</dependency>
<!--10.jsp使用JSTL-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstl-version}</version>
</dependency>
3、5份配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
</web-app>
加入Spring的支持
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
加入SpringMVC(分別是中央控制器和編碼過濾器)
<!--SpringMVC的中央控制器-->
<servlet>
<servlet-name>springmvc-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc-servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--字符集編碼過濾器,設置爲UTF8-->
<!--至關於request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");-->
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2. db.properties
jdbc_driver=oracle.jdbc.driver.OracleDriver
jdbc_url=jdbc:oracle:thin:@192.168.88.88:1521:orcl
jdbc_username=oa
jdbc_password=123456
#oracle參考字符串
#oracle.jdbc.driver.OracleDriver
#jdbc:oracle:thin:@192.168.88.88:1521:orcl
#mysql參考字符串(注意6.0以上的jar包發生了變化)
#jdbc:mysql://localhost:3306/pyq?serverTimezone=UTC
#com.mysql.cj.jdbc.Driver
3.applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
">
<context:property-placeholder location="classpath:db.properties"></context:property-placeholder>
<context:component-scan base-package="com.nf"></context:component-scan>
<!--如下配置數據庫相關的信息-->
<!-- 使用c3p0鏈接池註冊數據源 -->
<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 基礎配置 -->
<property name="jdbcUrl" value="${jdbc_url}"></property>
<property name="driverClass" value="${jdbc_driver}"></property>
<property name="user" value="${jdbc_username}"></property>
<property name="password" value="${jdbc_password}"></property>
<!-- 關鍵配置 -->
<!--初始化時獲取三個鏈接,取值應在minPoolSize與maxPoolSize之間。Default: 3 -->
<property name="initialPoolSize" value="3"></property>
<!--鏈接池中保留的最小鏈接數。Default: 2 -->
<property name="minPoolSize" value="2"></property>
<!--鏈接池中保留的最大鏈接數。Default: 15 -->
<property name="maxPoolSize" value="15"></property>
<!--當鏈接池中的鏈接耗盡的時候c3p0一次同時獲取的鏈接數。Default: 3 -->
<property name="acquireIncrement" value="1"></property>
<!-- 性能配置 -->
<!-- 控制數據源內加載的PreparedStatements數量。若是maxStatements與maxStatementsPerConnection均爲0,則緩存被關閉。Default: 0 -->
<property name="maxStatements" value="8"></property>
<!-- maxStatementsPerConnection定義了鏈接池內單個鏈接所擁有的最大緩存statements數。Default: 0 -->
<property name="maxStatementsPerConnection" value="5"></property>
<!--最大空閒時間,1800秒內未使用則鏈接被丟棄。若爲0則永不丟棄。Default: 0 -->
<property name="maxIdleTime" value="1800"></property>
<property name="testConnectionOnCheckout" value="false"></property>
</bean>
<!--配置Mybatis SqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--就這一行,咱們取代了手動寫Builder,sqlMapConfig.xml-->
<property name="dataSource" ref="myDataSource"></property>
<property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
</bean>
<!--因爲不用寫Dao的實現類,這個交給Mybatis完成,但仍是須要寫接口-->
<!---DAO接口所在的包名,spring會自動查找-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.nf.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
<!--事務管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="myDataSource"></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
</beans>
4. spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
">
<!--掃描包-->
<context:component-scan base-package="com.nf"></context:component-scan>
<!--啓動註解驅動-->
<mvc:annotation-driven></mvc:annotation-driven>
<!--啓動視圖解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!--定義靜態資源(css,js),通通不用SpringMVC進行解析-->
<mvc:resources mapping="/static/**" location="/static/"></mvc:resources>
</beans>
5.1. sqlMapConfig.xml(其實這個文件也能夠跟spring融合)
<?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>
<typeAliases>
<package name="nf.entity"/>
</typeAliases>
<mappers>
<mapper resource="mapper/XxxDao.xml"/>
</mappers>
</configuration>
四 創建Xxx模版
1、4個包
com.nf.action
com.nf.service
com.nf.dao
com.nf.entity
二、 新建一個實體類
取名Xxx (能夠跟表名一致)
三、 新建XxxDao (根據需求,例如查詢全部,查詢一個,添加、修改、刪除等)
四、 對應Dao層接口,新建Mapper
創建一個/mapper/XxxMapper.xml
五、 新建XxxService的Interface
六、 新建XxxServiceImpl的實現類
七、 新建XxxAction
8、新建showxxx.jsp
1. db.properties