首先我们需要创建一个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
我们的框架三部分就完成的差不多了