SSM003/构建Maven单模块项目(一)

一。环境准备

1。开发工具:IDEA

2。JDK版本:jdk1.8

3。Maven版本:apache-maven-3.2.5

4。数据库mysql.

二。基于Maven构建web项目

Step1:File->new module

Step2:Next->输入坐标值(GroupId/ArtifactId/version)

Step3:配置maven及maven所在仓库

Step4:指定模块名及所在文件目录

OK。

基于Maven搭建单模块web项目框架已完成!

三。完整包结构

 最终项目结构如下图所示:

注意点:

Dao的Mapper.xml文件存储位置放到resources目录下面。放置到java目录下面,会一直报Mybatis绑定错误。

四。配置文件

1。依赖配置(pom.xml)

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 
  3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5     <modelVersion>4.0.0</modelVersion>
  6 
  7     <groupId>com.yufeng.web</groupId>
  8     <artifactId>web-ssm-single</artifactId>
  9     <packaging>war</packaging>
 10 
 11     <name>web-ssm-single Maven Webapp</name>
 12 
 13     <properties>
 14         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 15         <jdk.version>1.8</jdk.version>
 16         <spring.version>4.2.5.RELEASE</spring.version>
 17         <mysql.version>5.1.6</mysql.version>
 18         <c3p0.version>0.9.1.2</c3p0.version>
 19     </properties>
 20 
 21     <dependencies>
 22         <!-- 1.数据库相关依赖-->
 23             <!-- 1.1).mysql-->
 24         <dependency>
 25             <groupId>mysql</groupId>
 26             <artifactId>mysql-connector-java</artifactId>
 27             <version>${mysql.version}</version>
 28         </dependency>
 29             <!-- 1.2).c3p0数据连接池-->
 30         <dependency>
 31             <groupId>c3p0</groupId>
 32             <artifactId>c3p0</artifactId>
 33             <version>${c3p0.version}</version>
 34         </dependency>
 35 
 36         <!-- 2.dao框架:MyBatis依赖-->
 37         <dependency>
 38             <groupId>org.mybatis</groupId>
 39             <artifactId>mybatis</artifactId>
 40             <version>3.2.4</version>
 41         </dependency>
 42         <!--mybatis自身实现的spring整合依赖-->
 43         <dependency>
 44             <groupId>org.mybatis</groupId>
 45             <artifactId>mybatis-spring</artifactId>
 46             <version>1.2.2</version>
 47         </dependency>
 48 
 49         <!-- 3.Servlet web相关依赖-->
 50         <dependency>
 51             <groupId>taglibs</groupId>
 52             <artifactId>standard</artifactId>
 53             <version>1.1.2</version>
 54         </dependency>
 55         <dependency>
 56             <groupId>javax.servlet</groupId>
 57             <artifactId>jstl</artifactId>
 58             <version>1.2</version>
 59             <type>jar</type>
 60         </dependency>
 61         <dependency>
 62             <groupId>com.fasterxml.jackson.core</groupId>
 63             <artifactId>jackson-databind</artifactId>
 64             <version>2.9.3</version>
 65         </dependency>
 66         <dependency>
 67             <groupId>javax.servlet</groupId>
 68             <artifactId>servlet-api</artifactId>
 69             <version>2.5</version>
 70             <scope>provided</scope>
 71         </dependency>
 72 
 73         <!--4.Spring依赖 -->
 74          <!--4.1)Spring核心依赖 -->
 75         <dependency>
 76             <groupId>org.springframework</groupId>
 77             <artifactId>spring-core</artifactId>
 78             <version>${spring.version}</version>
 79         </dependency>
 80         <dependency>
 81             <groupId>org.springframework</groupId>
 82             <artifactId>spring-beans</artifactId>
 83             <version>${spring.version}</version>
 84         </dependency>
 85         <dependency>
 86             <groupId>org.springframework</groupId>
 87             <artifactId>spring-context</artifactId>
 88             <version>${spring.version}</version>
 89         </dependency>
 90         <!--4.2)spring dao层依赖-->
 91         <dependency>
 92             <groupId>org.springframework</groupId>
 93             <artifactId>spring-jdbc</artifactId>
 94             <version>${spring.version}</version>
 95         </dependency>
 96         <dependency>
 97             <groupId>org.springframework</groupId>
 98             <artifactId>spring-tx</artifactId>
 99             <version>${spring.version}</version>
100         </dependency>
101         <!--4.3)springweb相关依赖-->
102         <dependency>
103             <groupId>org.springframework</groupId>
104             <artifactId>spring-web</artifactId>
105             <version>${spring.version}</version>
106         </dependency>
107         <dependency>
108             <groupId>org.springframework</groupId>
109             <artifactId>spring-webmvc</artifactId>
110             <version>${spring.version}</version>
111         </dependency>
112         <!--4.4)spring test相关依赖 不加则@RunWith(SpringJUnit4ClassRunner.class)不能应用-->
113         <dependency>
114             <groupId>org.springframework</groupId>
115             <artifactId>spring-test</artifactId>
116             <version>${spring.version}</version>
117         </dependency>
118 
119         <!--3.0的junit是使用编程的方式来进行测试,而junit4是使用注解的方式来运行junit -->
120         <dependency>
121             <groupId>junit</groupId>
122             <artifactId>junit</artifactId>
123             <version>4.9</version>
124             <scope>test</scope>
125         </dependency>
126 
127         <!--log依赖 -->
128         <!--
129             1.日志 java日志有:slf4j,log4j,logback,common-logging
130               slf4j:是规范/接口
131               日志实现:log4j,logback,common-logging
132               使用:slf4j+logback
133         -->
134         <dependency>
135             <groupId>org.slf4j</groupId>
136             <artifactId>slf4j-api</artifactId>
137             <version>1.7.5</version>
138         </dependency>
139     </dependencies>
140 
141     <build>
142         <finalName>web-ssm-single</finalName>
143         <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
144             <plugins>
145                 <plugin>
146                     <groupId>org.apache.maven.plugins</groupId>
147                     <artifactId>maven-compiler-plugin</artifactId>
148                     <version>2.3.2</version>
149                     <configuration>
150                         <source>${jdk.version}</source>
151                         <target>${jdk.version}</target>
152                         <encoding>${project.build.sourceEncoding}</encoding>
153                     </configuration>
154                 </plugin>
155                 <plugin>
156                     <groupId>org.apache.maven.plugins</groupId>
157                     <artifactId>maven-resources-plugin</artifactId>
158                     <version>2.5</version>
159                 </plugin>
160             </plugins>
161         </pluginManagement>
162     </build>
163 </project>
View Code

2。jdbc属性配置(jdbc.properties)

1 #数据库连接配置信息
2 jdbc.driver=com.mysql.jdbc.Driver
3 jdbc.url=jdbc:mysql://127.0.0.1:3306/learn
4 jdbc.username=root
5 jdbc.userpwd=root
View Code

3。mybatis配置(mybatis-config.xml)

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <!-- mybatis全局配置文件-->
 7     <!-- 配置全局属性-->
 8     <settings>
 9         <!-- 使用jdbc的getGeneratekeys获取自增主键值-->
10         <setting name="useGeneratedKeys" value="true"/>
11         <!--使用列别名替换列名,默认值为true
12             select name as title(实体中的属性名为title) from table
13             开启后,mybatis会自动帮我们把表中的值赋到对应实体的title上。
14          -->
15         <setting name="useColumnLabel" value="true" />
16         <!-- 开启驼峰命名转换Table:create_time到Entity:createTime-->
17         <setting name="mapUnderscoreToCamelCase" value="false" />
18     </settings>
19 </configuration>
View Code

4。Spring & Mybatis整合配置(spring-dao.xml)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xmlns:context="http://www.springframework.org/schema/context"
 5        xsi:schemaLocation="
 6         http://www.springframework.org/schema/beans
 7         http://www.springframework.org/schema/beans/spring-beans.xsd
 8         http://www.springframework.org/schema/context
 9         http://www.springframework.org/schema/context/spring-context.xsd">
10 
11     <!--Spring整合mybatis文件相关配置 -->
12 
13     <!-- Step1:配置数据库相关参数(引入属性文件)-->
14     <context:property-placeholder location="classpath:/properties/jdbc.properties" />
15 
16     <!--Step2:配置数据库连接池 -->
17     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
18         <!--配置连接池属性 -->
19         <property name="driverClass" value="${jdbc.driver}" />
20 
21         <!-- 基本属性:连接url/username/password-->
22         <property name="jdbcUrl" value="${jdbc.url}" />
23         <property name="user" value="${jdbc.username}" />
24         <property name="password" value="${jdbc.userpwd}" />
25 
26         <!-- c3p0私有属性-->
27         <property name="maxPoolSize" value="30" />
28         <property name="minPoolSize" value="10" />
29         <!-- 关闭连接后不自动提交-->
30         <property name="autoCommitOnClose" value="false" />
31         <!-- 获取连接超时时间-->
32         <property name="checkoutTimeout" value="10000" />
33         <!-- 当获取连接失败重试次数-->
34         <property name="acquireRetryAttempts" value="2" />
35     </bean>
36 
37     <!--约定大于配置 -->
38     <!-- Step3: 配置sqlSessionFactory对象-->
39     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >
40         <!-- mybatis & Spring整合真正配置(以下)-->
41         <!--注入数据库连接池 -->
42         <property name="dataSource" ref="dataSource" />
43         <!-- 配置mybatis全局配置文件:mybatis-config.xml-->
44         <property name="configLocation" value="classpath:/config/mybatis-config.xml" />
45         <!-- 扫描entity包,使用别名,多个用;隔开-->
46         <property name="typeAliasesPackage" value="com.csvalue.model" />
47         <!-- 扫描sql配置文件:mapper需要的xml文件-->
48         <property name="mapperLocations" value="classpath:/mapper/*Mapper.xml" />
49     </bean>
50 
51     <!--Step4:配置扫描dao接口包,动态实现Dao接口,注入到spring容器 -->
52     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
53         <!--注入SqlSessionFactory -->
54         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
55         <!-- 给出需要扫描的dao接口-->
56         <property name="basePackage" value="com.csvalue.dao" />
57     </bean>
58 </beans>
View Code

5。Springmvc配置(spring-mvc.xml)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xmlns:context="http://www.springframework.org/schema/context"
 5        xmlns:mvc="http://www.springframework.org/schema/mvc"
 6        xsi:schemaLocation="
 7         http://www.springframework.org/schema/beans
 8         http://www.springframework.org/schema/beans/spring-beans.xsd
 9         http://www.springframework.org/schema/context
10         http://www.springframework.org/schema/context/spring-context.xsd
11         http://www.springframework.org/schema/mvc
12         http://www.springframework.org/schema/mvc/spring-mvc.xsd">
13 
14     <!--配置springmvc -->
15     <!-- Step1:开启springmvc注解模式
16           【1】。自动注册:DefaultAnnotaionHandlerMapping,AnnotationMethodHandlerAdaptor
17           【2】。默认提供一系列的功能,数据绑定,数字和日期的format@NumberFormat,@DateTimeFormat
18           【3】。xml,json的默认读写支持
19      -->
20     <mvc:annotation-driven />
21 
22     <!-- Step2:静态资源默认servlet配置 -->
23     <!--
24         【1】。加入对静态资源处理:js/gif/png...
25         【2】。允许使用"/"做整体映射
26      -->
27     <mvc:default-servlet-handler />
28 
29     <!--Step3:配置jsp,显示ViewResolver -->
30     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
31         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
32         <property name="prefix" value="/WEB-INF/view/"/>
33         <property name="suffix" value=".jsp" />
34     </bean>
35 
36     <!-- Step4:扫描web相关的bean-->
37     <context:component-scan base-package="com.csvalue.controller" />
38 
39 </beans>
View Code

6。Spring事务管理(spring-service.xml)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xmlns:context="http://www.springframework.org/schema/context"
 5        xmlns:tx="http://www.springframework.org/schema/tx"
 6        xmlns:aop="http://www.springframework.org/schema/aop"
 7        xsi:schemaLocation="
 8         http://www.springframework.org/schema/beans
 9         http://www.springframework.org/schema/beans/spring-beans.xsd
10         http://www.springframework.org/schema/context
11         http://www.springframework.org/schema/context/spring-context.xsd
12         http://www.springframework.org/schema/tx
13         http://www.springframework.org/schema/tx/spring-tx.xsd
14         http://www.springframework.org/schema/aop
15         http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
16 
17     <!--Spring事务配置文件 -->
18 
19     <!-- 扫描service包下的所有使用注解的类型-->
20     <context:component-scan base-package="com.csvalue.service" />
21 
22     <!-- 配置事务管理器(真正管理事务)-->
23     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
24         <!-- 注入数据库连接池-->
25         <property name="dataSource" ref="dataSource" />
26     </bean>
27 
28     <!-- 配置基于注解的声明式事务。默认使用注解来管理事务行为-->
29     <!--<tx:annotation-driven transaction-manager="transactionManager" />-->
30 
31     <!--为事务transactionManager增强 -->
32     <tx:advice id="txAdvice" transaction-manager="transactionManager">
33         <tx:attributes>
34             <!-- 写操作-->
35             <tx:method name="insert*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>
36             <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>
37             <tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>
38             <!-- 读操作-->
39             <tx:method name="find*" propagation="SUPPORTS" isolation="DEFAULT" read-only="true"/>
40             <tx:method name="get*" propagation="SUPPORTS" isolation="DEFAULT" read-only="true"/>
41             <tx:method name="query*" propagation="SUPPORTS" isolation="DEFAULT" read-only="true"/>
42         </tx:attributes>
43     </tx:advice>
44 
45     <!-- 定义AOP切面管理器,指定事务作用到哪。-->
46     <aop:config>
47         <!-- 定义切面在所有service包下-->
48         <aop:pointcut id="txPointcut" expression="execution(* com.csvalue.service..*.*(..))"/>
49         <!-- 把事务控制在service层-->
50         <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" />
51     </aop:config>
52 </beans>
View Code

7。Spring总配置文件整合spring相关配置(applicationContext.xml)(不指定)

注:也可以不使用该文件,指定spring配置时,直接指定:classpath:/config/spring-*.xml即可。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xsi:schemaLocation="
 5        http://www.springframework.org/schema/beans
 6        http://www.springframework.org/schema/beans/spring-beans.xsd">
 7 
 8     <import resource="classpath:/config/spring-dao.xml" />
 9     <import resource="classpath:/config/spring-service.xml" />
10     <import resource="classpath:/config/spring-mvc.xml" />
11 </beans>
View Code

8。web配置(web.xml)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3          xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 4          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 5          version="2.5">
 6 
 7   <!-- DispatcherServlet,Spring MVC的核心
 8        配置springmvc需要配置文件
 9        spring-dao.xml , spring-service.xml,spring-mvc.xml
10        mybatis    ->      spring        ->  springmvc
11    -->
12   <servlet>
13     <servlet-name>mvc-dispatcher</servlet-name>
14     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
15     <init-param>
16       <param-name>contextConfigLocation</param-name>
17       <param-value>classpath:/config/spring-*.xml</param-value>
18     </init-param>
19     <load-on-startup>1</load-on-startup>
20   </servlet>
21   <servlet-mapping>
22     <servlet-name>mvc-dispatcher</servlet-name>
23     <!--MVC拦截所有请求 -->
24     <url-pattern>/</url-pattern>
25   </servlet-mapping>
26 </web-app>
View Code

五。示例代码

1。User.java(模型类)

 1 package com.csvalue.model;
 2 
 3 public class User {
 4     private Long userId;
 5     private String userName;
 6     private String userPwd;
 7     private Long age;
 8     private String email;
 9 
10     public Long getUserId() {
11         return userId;
12     }
13 
14     public void setUserId(Long userId) {
15         this.userId = userId;
16     }
17 
18     public String getUserName() {
19         return userName;
20     }
21 
22     public void setUserName(String userName) {
23         this.userName = userName;
24     }
25 
26     public String getUserPwd() {
27         return userPwd;
28     }
29 
30     public void setUserPwd(String userPwd) {
31         this.userPwd = userPwd;
32     }
33 
34     public Long getAge() {
35         return age;
36     }
37 
38     public void setAge(Long age) {
39         this.age = age;
40     }
41 
42     public String getEmail() {
43         return email;
44     }
45 
46     public void setEmail(String email) {
47         this.email = email;
48     }
49 
50     @Override
51     public String toString() {
52         return "User{" +
53                 "userId=" + userId +
54                 ", userName='" + userName + '\'' +
55                 ", userPwd='" + userPwd + '\'' +
56                 ", age=" + age +
57                 ", email='" + email + '\'' +
58                 '}';
59     }
60 }
View Code

2。UserDao.java(Dao层接口)

 1 package com.csvalue.dao;
 2 
 3 import com.csvalue.model.User;
 4 import org.springframework.stereotype.Repository;
 5 
 6 import java.util.List;
 7 
 8 @Repository
 9 public interface UserMapper {
10 
11     public List<User> queryUserList();
12 }
View Code

3。UserMapper.xml(Dao层mapper映射)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <mapper namespace="com.csvalue.dao.UserMapper">
 4 
 5     <resultMap id="userResultMap" type="com.csvalue.model.User">
 6         <id column="user_id" jdbcType="BIGINT" property="userId" />
 7         <result column="user_name" jdbcType="VARCHAR" property="userName" />
 8         <result column="user_pwd" jdbcType="VARCHAR" property="userPwd" />
 9         <result column="age" jdbcType="BIGINT" property="age" />
10         <result column="email" jdbcType="VARCHAR" property="email" />
11     </resultMap>
12 
13     <select id="queryUserList" resultMap="userResultMap">
14        select user_id,user_name,user_pwd,age,email from com_user
15     </select>
16 
17     <select id="queryUserList1" resultType="com.csvalue.model.User">
18         select user_id,user_name,user_pwd,age,email from com_user
19     </select>
20 </mapper>
View Code

4。IUserService.java(service接口)

1 package com.csvalue.service;
2 
3 import com.csvalue.model.User;
4 
5 import java.util.List;
6 
7 public interface IUserService {
8     List<User> queryUserList();
9 }
View Code

5。UserService.java(service实现类)

 1 package com.csvalue.service.impl;
 2 
 3 import com.csvalue.dao.UserMapper;
 4 import com.csvalue.model.User;
 5 import com.csvalue.service.IUserService;
 6 import org.springframework.beans.factory.annotation.Autowired;
 7 import org.springframework.stereotype.Service;
 8 
 9 import java.util.List;
10 
11 @Service
12 public class UserServiceImpl implements IUserService {
13 
14     @Autowired
15     private UserMapper userMapper;
16 
17     @Override
18     public List<User> queryUserList() {
19         return userMapper.queryUserList();
20     }
21 }
View Code

6。UserController.java(Controller类)

 1 package com.csvalue.controller;
 2 
 3 import com.csvalue.model.User;
 4 import com.csvalue.service.IUserService;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 import org.springframework.web.bind.annotation.RequestMethod;
 9 import org.springframework.web.bind.annotation.ResponseBody;
10 
11 import java.util.List;
12 
13 @Controller
14 @RequestMapping("/user")
15 public class UserController {
16     @Autowired
17     private IUserService iUserService;
18 
19     @ResponseBody
20     @RequestMapping(value = "/query",method = {RequestMethod.GET,RequestMethod.POST})
21     public String queryUserList(){
22         List<User> userList=iUserService.queryUserList();
23         for (User user:userList){
24             System.out.println("out=>"+user.toString());
25         }
26         return "hello springmvc";
27     }
28 }
View Code

部署tomcat

在web.xml中添加欢迎页index.jsp,不添加默认也为index.jsp(不指定)

1  <welcome-file-list>
2     <welcome-file>index.jsp</welcome-file>
3   </welcome-file-list>
View Code

index.jsp文件内容

1 <html>
2 <body>
3 <h2>Hello World!</h2>
4 <h3><a href="/user/query">send request</a></h3>
5 </body>
6 </html>
View Code

浏览器启动,效果如下:

点击“send reques”链接-》

7。IUserServiceTest(测试类)

创建测试类:在所需要测试的service接口上,按住ctrl+shift+t键。mac是command+shift+t键

创建新的测试类即可。 

 1 package com.csvalue.service;
 2 
 3 import com.csvalue.model.User;
 4 import org.junit.Test;
 5 import org.junit.runner.RunWith;
 6 import org.springframework.beans.factory.annotation.Autowired;
 7 import org.springframework.test.context.ContextConfiguration;
 8 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 9 
10 import java.util.List;
11 
12 import static org.junit.Assert.*;
13 
14 @RunWith(SpringJUnit4ClassRunner.class)
15 @ContextConfiguration(locations = {"classpath:applicationContext.xml"})
16 public class IUserServiceTest {
17 
18     @Autowired
19     IUserService iUserService;
20 
21     /**
22      * 测试查询用户列表:开启/关闭mybatis驼峰命名
23      * */
24     @Test
25     public void queryUserList() {
26         List<User> userList=iUserService.queryUserList();
27         for(User user:userList){
28             System.out.println("out=>"+user.toString());
29         }
30     }
31 }
View Code

六。常见问题汇总

1。注意:*Mapper.xml文件包位置

由于*Mapper.xml文件放置到java/目录下面。所以导致mybatis绑定错误。

2。MyBatis绑定错误:Invalid bound statement (not found)

    可参考博客:https://my.oschina.net/wangdaoliang/blog/652266

上述发现target中mapper包/*mapper.xml未加载进来。IDEA默认加载resources包下的资源文件。

所以。修改mapper包位置(由java目录下转移到resources目录下面)即可。

总结:

【1】、检查xml文件所在的package名称是否和interface对应的package名称一一对应

【2】、检查xml文件的namespace是否和xml文件的package名称一一对应

【3】、检查函数名称能否对应上

【4】、去掉xml文件中的中文注释

【5】、随意在xml文件中加一个空格或者空行然后保存

【6】、mapper.xml文件是否有用错误的标签

3。org.apache.ibatis.type.TypeException: Could not resolve type alias 'BIGINT'

问题原因:UserMapper.xml文件错误,类型为jdbcType而不是javaType。

4。编译生成的target文件内容不全,如没有配置文件等。

解决方案:可先删除target,重新用maven编译,可右击项目-》Rebuild Module...即可。

5。注意spring-service.xml事务文件,加该段代码有时候会报错。可以先去掉该事务配置。

 1 <!--为事务transactionManager增强 -->
 2     <tx:advice id="txAdvice" transaction-manager="transactionManager">
 3         <tx:attributes>
 4             <!-- 写操作-->
 5             <tx:method name="insert*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>
 6             <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>
 7             <tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>
 8             <!-- 读操作-->
 9             <tx:method name="find*" propagation="SUPPORTS" isolation="DEFAULT" read-only="true"/>
10             <tx:method name="get*" propagation="SUPPORTS" isolation="DEFAULT" read-only="true"/>
11             <tx:method name="query*" propagation="SUPPORTS" isolation="DEFAULT" read-only="true"/>
12         </tx:attributes>
13     </tx:advice>
14 
15     <!-- 定义AOP切面管理器,指定事务作用到哪。-->
16     <aop:config>
17         <!-- 定义切面在所有service包下-->
18         <aop:pointcut id="txPointcut" expression="execution(* com.csvalue.service..*.*(..))"/>
19         <!-- 把事务控制在service层-->
20         <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" />
21     </aop:config>
View Code

6。启动项目时,浏览器访问会找不到Controller.注意几点:

【1】配置文件所配置的controller包路径是否正确(spring-mvc.xml)

【2】controller类上是否包含@Controller注解。(注解是否加上)

【3】路径名是否写正确。(@RequestMapping指定的路径及指定的method是get/post)

7。将项目添加到github,以方便后续查看。

step1:  登录gitHub(https://github.com/),账号/密码;yufeng_2016@sina.com/a+0

step2: myworkspace目录下初始化git ($ git init)

step3: 提交文件到暂存区 ($ git add *    |   $ git commit -m "springmvc")

step4: 本地仓库与远程仓库建立连接(git remote add origin https://github.com/shi***

step5:向远程仓库推送代码($ git push origin master)

此时报错。

解决方案,输入命令:

https://stackoverflow.com/questions/18328800/github-updates-were-rejected-because-the-remote-contains-work-that-you-do-not-h

git pull origin master --allow-unrelated-histories

此时会进入编辑界面,输入:q!退出即可。效果如下所示:

再执行step5,向远程仓库推送代码。($ git push origin master)

8。打war包。部署。制作docker镜像。

-》构建war包 

本文代码地址:https://github.com/shiyufeng0919/kaixinyufeng/tree/master/idea/ssm-web

本文参考博客:https://blog.csdn.net/cjq2013/article/details/76166173 

posted @ 2018-06-06 09:08  kaixinyufeng  阅读(295)  评论(0)    收藏  举报