首先我們需要創建一個maven項目
1.右鍵 new maven project
第一個勾選然後下一步
groupid 可以寫com.xxx.xxx 之類的
artifaceid 寫項目名 xxx
web項目選擇打war包 然後下一步就ok
2.項目中少web.xml /WEB-INFO 右鍵項目 properties → project faces → Dynamic Web Module 勾選去掉點擊apply →再勾選上 然後 它會提醒你配置 然後第二個框目錄 寫src/main/webapp 應用就好了 maven的setting 路徑自己配置 鏡像位置推薦用阿里雲的
3.pom文件的配置
這裏jar包miss報錯 還有項目紅色歎號 怎麼弄maven update project 還有build path clean都沒有用, 直接去網址下載jar包 然後放進文件夾裏
具體的pom 需要的jar包 如下
<dependencies>
<!-- springwebmvc包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- springjdbc事務控制 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!--spring aspects 面向切面編程 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.2</version>
</dependency>
<!-- mybatis spring 整合適配 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!--數據庫鏈接池 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!--mysql驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<!--開發web的標配包 jstl seevlet-api junit -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope> <!--系統本來就有打包自動剔除 -->
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
4.我們對WEB-INF 下的web.xml 進行編寫 <web-app> </web-app> 這個分開 在裏面補充
1).spring 的容器 ContextLoaderListener 快捷鍵補全 alt+/
<param-value>classpath:applicationContext.xml</param-value>
只用修改這個 並且在src/main/resources 右鍵 new spring bean configuration File 創建上面的 spring的配置文件
2).springMVC前端控制器
DispatcherServlet 快捷鍵提示補全
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>location</param-value>
</init-param> 刪掉不指定 默認全部掃描
將<servlet-name>dispatcherServlet</servlet-name> 全改成這個名
<url-pattern>/</url-pattern> 全部掃描
然後在web.xml同級目錄下創建dispatcherServlet-servlet.xml 創建方式同上applicationContext.xml
在這個裏面控制springMVC掃描
3).添加兩個基本的過濾器
<!-- 3.字符編碼過濾器 -->
<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>forceRequestEncoding</param-name> <!-- 返回 -->
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name> <!-- 響應 -->
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern> <!--攔截所有 -->
</filter-mapping>
<!--4.Rest風格的URI 將頁面post請求轉爲指定的delete 或者put請求 -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern> <!--攔截所有 -->
</filter-mapping>
5.在dispatcherServlet-servlet.xml配置文件頂部加這個
xmlns:context="http://www.springframework.org/schema/context"
然後對SpringMVC 的配置文件 包含網站跳轉邏輯的控制,配置 即註解的掃描的範圍的指定
選擇該xml下面的Namespaces mvc勾選上
<!-- SpringMVC 的配置文件 包含網站跳轉邏輯的控制,配置 -->
<context:component-scan base-package="com.ice" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!--配置視圖解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property> <!--指定頁面位置 -->
<property name="suffix" value=".jsp"></property> <!-- 指定後綴 -->
</bean>
<!-- 兩個標準配置 -->
<!-- 將springmvc不能處理的交給tomcat -->
<mvc:default-servlet-handler/>
<mvc:annotation-driven>
<!-- 能支持springmvc更高級的一些功能 快捷的ajax請求, JSR303校驗,映射動態請求 -->
</mvc:annotation-driven>
6. 配置c3p0數據庫相關
在applicationContext.xml 文件打開 然後選擇namespace aop(√) context (√) tx(√)
<context:component-scan base-package="com.ice">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <!-- springmvc掃描帶註解的這裏spring不掃描 -->
</context:component-scan>
<!-- spring的配置文件 與主要配置及業務邏輯有關的 -->
<!-- 數據源的控制 事務控制 xxx -->
<context:property-placeholder location="classpath:dbconfig.properties"/>
<bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 配置和mybatis的整合 -->
<bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--指定mybatis全局配置文件的位置 -->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<!--數據源就是上面的數據源 -->
<property name="dataSource" ref="pooledDataSource"></property>
<!-- mapper 文件放的位置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
</bean>
<!-- 配置掃描器 將mybatis接口的實現加入到ioc容器中 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--掃描所有dao接口的mapper的實現 加入到ioc容器中 -->
<property name="basePackage" value="com.ice.dao"></property>
</bean >
<!--事務控制 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="pooledDataSource"></property> <!-- 說明數據源 -->
</bean>
<!-- 開啓註解的事務,使用xml配置的形式的事務(比較重要的使用這個) -->
<aop:config>
<!-- 切入表達式 下面是所有的方法多少個參數都能切入事務-->
<aop:pointcut expression="execution(* com.ice.service..*(..))" id="txPoint"/>
<!-- 配置事務增強 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
</aop:config>
<!-- 配置事務增強如何切入 -->
<tx:advice id="txAdvice" ><!-- 默認屬性transaction-manager="transactionManager" -->
<tx:attributes>
<tx:method name="*"/> <!--所有方法都是事務方法 -->
<tx:method name="get*" read-only="true"/><!-- 以get開始的所有方法 -->
</tx:attributes>
</tx:advice>
此步驟創建了 mapper包 同時還有mybatis的配置文件 mybatis-config.xml 與applicationContext在同一目錄下
7.mybatis的配置 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"> <!--從mybatis官網的 getting started 獲得 -->
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 這個類從configuration xml settings mapUnderscoreToCamelCase 駝峯命名規則 -->
</settings>
<typeAliases >
<package name="com.ice.bean" />
</typeAliases>
</configuration>
然後就是 mybatis逆向工程 必須的xml 和java類
這個是xxx.xml 直接放在包下面 跟pom.xml同級
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--數據庫驅動,最好不要有中文字符,不然會找不到-->
<!-- <classPathEntry location="D:/mysql-connector-java-5.1.40-bin.jar" /> -->
<context id="cosmetic" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自動生成的註釋 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--配置數據庫鏈接信息賬號密碼-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.204.131:3306/ssh_crud" userId="root" password="123456">
</jdbcConnection>
<!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析爲 Integer,爲 true時把JDBC DECIMAL 和
NUMERIC 類型解析爲java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成javabean類存放位置-->
<javaModelGenerator targetPackage="com.ice.bean" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件mapper接口存放位置-->
<sqlMapGenerator targetPackage="com.ice.dao" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成mapper接口、mapper.xml類存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.ice.dao" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成對應表及類名,需要記住的一點是逆向工程無法生成關聯關係,只能生成單表操作-->
<table tableName="emp" domainObjectName="Employee" />
<table tableName="dept" domainObjectName="Department" />
</context>
</generatorConfiguration>
xxx.java
package com.ice.test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
public class MBGTest {
//生成bean mapper 的方法
public void generator() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File("mbg.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
callback, warnings);
myBatisGenerator.generate(null);
}
public static void main(String[] args) throws Exception {
try {
MBGTest generatorSqlmap = new MBGTest();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
運行上面的java 就生成了所需的 mapper 以及實體類javabean
我們的框架三部分就完成的差不多了