下面是我的實(shí)例實(shí)現(xiàn)的詳細(xì)步驟、源代碼和一些筆記、遇到的問題 版本信息Eclipse版本 Neon.1a Release (4.6.1)
apache-maven-3.3.9
數(shù)據(jù)庫 MySQL5.7.12
.
.
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
.
.
完整項(xiàng)目結(jié)構(gòu)SSM項(xiàng)目創(chuàng)建過程1.新建一個(gè)Maven Project建好之后會提示下面的錯誤: The superclass 'javax.servlet.http.HttpServlet' was not found on the Java Build Path index.jsp
在項(xiàng)目右鍵 修改 JRE 版本, Edit 更改為 Eclipse 工作空間默認(rèn)的 JRE 版本,我的是1.8
...
<plugins>
<!-- 修改maven默認(rèn)的JRE編譯版本
防止maven update project之后 把jre配置的成默認(rèn)的1.5
根據(jù)自己的情況更改為1.7或1.8
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
2.配置Maven Project的pom.xml 文件
<project xmlns='http://maven./POM/4.0.0' xmlns:xsi='http://www./2001/XMLSchema-instance'
xsi:schemaLocation='http://maven./POM/4.0.0 http://maven./maven-v4_0_0.xsd'>
<modelVersion>4.0.0</modelVersion>
<groupId>com.jxust</groupId>
<artifactId>SSM-Test2</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>SSM-Test2 Maven Webapp</name>
<url>http://maven.</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>SSM-Test2</finalName>
</build>
</project>
Maven Project 最重要的就是配置這個(gè) pom.xml 文件,我在引用別人的pom.xml文件時(shí),發(fā)生了很多問題,這和 maven 中央倉庫的地址應(yīng)該也有關(guān)系。
在配置 pom.xml 過程中,遇到了的幾個(gè)問題:
2.0版本前叫org.codehaus.jackson ,2.0版本之后com.fasterxml.jackson ,配置方式不同 <!-- 2.0版本之后引入JSON -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.5</version>
</dependency>
<!-- 2.0版本之前 引入JSON -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
升級 Spring 或者 Mybatis 的版本是,mybatis-spring 包的版本也要跟著升級 <!--mybatis spring 插件 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
Maven引入需要的SSM 框架jar包,修改后: <project xmlns='http://maven./POM/4.0.0' xmlns:xsi='http://www./2001/XMLSchema-instance'
xsi:schemaLocation='http://maven./POM/4.0.0 http://maven./maven-v4_0_0.xsd'>
<modelVersion>4.0.0</modelVersion>
<groupId>com.jxust</groupId>
<artifactId>SSM-Test2</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>SSM-Test2 Maven Webapp</name>
<url>http://maven.</url>
<properties>
<!-- spring版本號 -->
<spring.version>4.3.3.RELEASE</spring.version>
<!-- mybatis版本號 -->
<mybatis.version>3.4.0</mybatis.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- 表示開發(fā)的時(shí)候引入,發(fā)布的時(shí)候不會加載此包 -->
<scope>test</scope>
</dependency>
<!-- spring核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.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>1.3.0</version>
</dependency>
<!-- 導(dǎo)入java ee jar 包 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!-- 導(dǎo)入Mysql數(shù)據(jù)庫鏈接jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<!-- 導(dǎo)入dbcp的jar包,用來在applicationContext.xml中配置數(shù)據(jù)庫 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<!-- JSTL標(biāo)簽類 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 日志文件管理包 -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- 格式化對象,方便輸出日志 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->
<!-- 引入JSON -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.5</version>
</dependency>
<!-- 上傳組件包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
<build>
<finalName>SSM-Test2</finalName>
<plugins>
<!-- 修改maven默認(rèn)的JRE編譯版本
防止maven update project之后 把jre配置的成默認(rèn)的1.5
根據(jù)自己的情況更改為1.7或1.8
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
之后保存,右擊項(xiàng)目-maven-update project,如果出現(xiàn)以下的異常 JavaServer Faces 2.2 can not be installed : One or more constraints have not been satisfied.
JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer. SSM-Test2
這是 解決步驟1:
<?xml version='1.0' encoding='UTF-8'?>
<web-app xmlns:xsi='http://www./2001/XMLSchema-instance'
xmlns='http://java./xml/ns/javaee'
xsi:schemaLocation='http://java./xml/ns/javaee http://java./xml/ns/javaee/web-app_3_0.xsd'
id='WebApp_ID' version='3.0'>
</web-app>
解決步驟2:關(guān)閉Eclipse,修改項(xiàng)目目錄下 <installed facet='jst.web' version='2.3'/>
改為 <installed facet='jst.web' version='3.0'/>
重啟Eclipse,右擊項(xiàng)目-maven-update project(不行,就先移除項(xiàng)目,導(dǎo)入) 項(xiàng)目結(jié)構(gòu)為: 之后可以在 3.Spring與MyBatis的整合3.1數(shù)據(jù)庫連接配置文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/db_ssm
username=root
password=root
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000
3.2 Spring文件中配置mybatis
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns='http://www./schema/beans'
xmlns:xsi='http://www./2001/XMLSchema-instance'
xmlns:context='http://www./schema/context'
xmlns:mvc='http://www./schema/mvc'
xmlns:tx='http://www./schema/tx'
xsi:schemaLocation='http://www./schema/beans http://www./schema/beans/spring-beans-4.2.xsd
http://www./schema/context http://www./schema/context/spring-context-4.3.xsd
http://www./schema/mvc http://www./schema/mvc/spring-mvc-4.3.xsd
http://www./schema/tx http://www./schema/tx/spring-tx-4.3.xsd'>
<!-- 自動掃描 -->
<context:component-scan base-package='com.jxust.ssm' >
<!-- 不掃描@Controller注解的類-->
<context:exclude-filter type='annotation' expression='org.springframework.stereotype.Controller'/>
</context:component-scan>
<!-- 引入配置文件 -->
<bean id='propertyConfigurer'
class='org.springframework.beans.factory.config.PropertyPlaceholderConfigurer'>
<property name='location' value='classpath:jdbc.properties' />
</bean>
<bean id='dataSource' class='org.apache.commons.dbcp.BasicDataSource'
destroy-method='close'>
<property name='driverClassName' value='${driver}' />
<property name='url' value='${url}' />
<property name='username' value='${username}' />
<property name='password' value='${password}' />
<!-- 初始化連接大小 -->
<property name='initialSize' value='${initialSize}'></property>
<!-- 連接池最大數(shù)量 -->
<property name='maxActive' value='${maxActive}'></property>
<!-- 連接池最大空閑 -->
<property name='maxIdle' value='${maxIdle}'></property>
<!-- 連接池最小空閑 -->
<property name='minIdle' value='${minIdle}'></property>
<!-- 獲取連接最大等待時(shí)間 -->
<property name='maxWait' value='${maxWait}'></property>
</bean>
<!-- spring和MyBatis整合,不需要mybatis的配置映射文件 -->
<bean id='sqlSessionFactory' class='org.mybatis.spring.SqlSessionFactoryBean'>
<property name='dataSource' ref='dataSource' />
<!-- 自動掃描mapping.xml文件 -->
<property name='mapperLocations' value='classpath:com/jxust/ssm/mapping/*.xml'></property>
</bean>
<!-- DAO接口所在包名,Spring會自動查找其下的類 動態(tài)代理實(shí)現(xiàn) 不用寫dao的實(shí)現(xiàn)類-->
<bean class='org.mybatis.spring.mapper.MapperScannerConfigurer'>
<property name='basePackage' value='com.jxust.ssm.dao' />
<property name='sqlSessionFactoryBeanName' value='sqlSessionFactory'></property>
</bean>
<!-- (事務(wù)管理)transaction manager, use JtaTransactionManager for global tx -->
<bean id='transactionManager'
class='org.springframework.jdbc.datasource.DataSourceTransactionManager'>
<property name='dataSource' ref='dataSource' />
</bean>
<tx:annotation-driven transaction-manager='transactionManager'/>
<!--
在這里我有一個(gè)疑惑,原文博客這里并沒有配置事務(wù)注解,我測試了向數(shù)據(jù)庫添加數(shù)據(jù),也能成功,(我在寫Hibernate是需要配置事務(wù)注解的)
不知道是不是,service實(shí)現(xiàn)類,bean 使用了注解的方式,還是其他什么的
這里我把事務(wù)注解加上
spring、mybatis 配置方式 可以看這篇博客:http://blog.csdn.net/qh_java/article/details/51601139
-->
</beans>
3.3 log4j 的配置
#定義LOG輸出級別
log4j.rootLogger=INFO,Console,File
#定義日志輸出目的地為控制臺
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以靈活地指定日志輸出格式,下面一行是指定具體的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到達(dá)指定尺寸的時(shí)候產(chǎn)生一個(gè)新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定輸出目錄
log4j.appender.File.File = logs/ssm.log
#定義文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 輸出所以日志,如果換成DEBUG表示輸出DEBUG以上級別日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
3.4 創(chuàng)建 MySQL 數(shù)據(jù)庫和表建表語句和原始數(shù)據(jù) mysql> use db_ssm;
Database changed
mysql> CREATE TABLE tb_user(
-> id int(11) NOT NULL AUTO_INCREMENT,
-> user_name varchar(40) NOT NULL,
-> password varchar(40) NOT NULL,
-> age int(4) NOT NULL,
-> PRIMARY KEY(id))
-> ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.33 sec)
mysql> select * from tb_user;
---- ----------- ---------- -----
| id | user_name | password | age |
---- ----------- ---------- -----
| 1 | 李白 | 123454 | 23 |
| 2 | 杜甫 | 234234 | 23 |
---- ----------- ---------- -----
2 rows in set (0.00 sec)
3.5 利用MyBatis Generator自動創(chuàng)建代碼
你可以自己去嘗試自動創(chuàng)建,下面給出這3個(gè)文件(注釋是我加的)。
package com.jxust.ssm.pojo;
/**
* 用戶實(shí)體類
* 對應(yīng)數(shù)據(jù)表tb_user
* @author Peng
* @Date2016年12月10日下午10:30:16
*/
public class User {
private Integer id;
private String userName;
private String password;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return 'User [id=' id ', userName=' userName ', password=' password ', age=' age ']';
}
}
package com.jxust.ssm.dao;
import com.jxust.ssm.pojo.User;
/**
* User類Dao層接口
*
* 之前我們會在dao層自己手動實(shí)現(xiàn)dao層然后自動注入SqlSessionTemplate 實(shí)例
* 來調(diào)用具體的方法 比如 insert('','') selectOne('','') 等方法
* 其中第一個(gè)參數(shù)就是映射文件的地址: namespace id 而第二個(gè)參數(shù)就是傳遞的條件這樣mybatis
* 就會按照我們傳遞的這兩個(gè)參數(shù)找到具體的映射文件進(jìn)行解析查詢。
* 而這里使用動態(tài)代理就省去了我們實(shí)現(xiàn)dao接口的這一步驟,而是由spring提我們實(shí)現(xiàn)了
* @author Peng
* @Date2016年12月10日下午10:31:27
*/
public interface UserDao {
int deleteByPrimaryKey(Integer id);
int insert(User record);
int insertSelective(User record);
User selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(User record);
int updateByPrimaryKey(User record);
}
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE mapper PUBLIC '-////DTD Mapper 3.0//EN' 'http:///dtd/mybatis-3-mapper.dtd' >
<!-- namespace的值就是dao接口的完整路徑,就這個(gè)demo而言namespace 就是userDao.java的完整路徑-->
<mapper namespace='com.jxust.ssm.dao.UserDao'>
<resultMap id='BaseResultMap' type='com.jxust.ssm.pojo.User'>
<id column='id' property='id' jdbcType='INTEGER' />
<result column='user_name' property='userName' jdbcType='VARCHAR' />
<result column='password' property='password' jdbcType='VARCHAR' />
<result column='age' property='age' jdbcType='INTEGER' />
</resultMap>
<sql id='Base_Column_List'>
id, user_name, password, age
</sql>
<select id='selectByPrimaryKey' resultMap='BaseResultMap'
parameterType='java.lang.Integer'>
select
<include refid='Base_Column_List' />
from tb_user
where id = #{id,jdbcType=INTEGER}
</select>
<delete id='deleteByPrimaryKey' parameterType='java.lang.Integer'>
delete from
tb_user
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id='insert' parameterType='com.jxust.ssm.pojo.User'>
insert into tb_user (id,
user_name, password,
age)
values (#{id,jdbcType=INTEGER},
#{userName,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR},
#{age,jdbcType=INTEGER})
</insert>
<insert id='insertSelective' parameterType='com.jxust.ssm.pojo.User'>
insert into tb_user
<trim prefix='(' suffix=')' suffixOverrides=','>
<if test='id != null'>
id,
</if>
<if test='userName != null'>
user_name,
</if>
<if test='password != null'>
password,
</if>
<if test='age != null'>
age,
</if>
</trim>
<trim prefix='values (' suffix=')' suffixOverrides=','>
<if test='id != null'>
#{id,jdbcType=INTEGER},
</if>
<if test='userName != null'>
#{userName,jdbcType=VARCHAR},
</if>
<if test='password != null'>
#{password,jdbcType=VARCHAR},
</if>
<if test='age != null'>
#{age,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id='updateByPrimaryKeySelective' parameterType='com.jxust.ssm.pojo.User'>
update tb_user
<set>
<if test='userName != null'>
user_name = #{userName,jdbcType=VARCHAR},
</if>
<if test='password != null'>
password = #{password,jdbcType=VARCHAR},
</if>
<if test='age != null'>
age = #{age,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id='updateByPrimaryKey' parameterType='com.jxust.ssm.pojo.User'>
update tb_user
set
user_name = #{userName,jdbcType=VARCHAR},
password =
#{password,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER}
where id =
#{id,jdbcType=INTEGER}
</update>
</mapper>
3.6 創(chuàng)建 Service層 接口和實(shí)現(xiàn)類
package com.jxust.ssm.service;
import com.jxust.ssm.pojo.User;
/**
* Service層接口
* @author Peng
* @Date2016年12月11日下午7:05:05
*/
public interface UserService {
//根據(jù)id查找
public User getUserById(Integer userid);
//添加一條數(shù)據(jù)
public int insert(User user);
}
package com.jxust.ssm.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jxust.ssm.dao.UserDao;
import com.jxust.ssm.pojo.User;
import com.jxust.ssm.service.UserService;
/**
* userService 接口的實(shí)現(xiàn)類
*
* @author Peng
* @Date2016年12月11日上午11:50:01
*/
@Transactional
@Service('userService')
public class UserServiceImpl implements UserService {
/**
* 因?yàn)闆]有在spring的文件中顯式的聲明userService實(shí)現(xiàn)類,直接通過getBean得到 userService 會找不到
* 需要顯式配置 @Service ('userService'),指定bean的名稱
* 相當(dāng)與<bean id='userService' class='com.jxust.ssm.service.impl.UserServiceImpl'></bean>
*/
@Resource
private UserDao userDao;
public User getUserById(Integer userid) {
return this.userDao.selectByPrimaryKey(userid);
}
@Override
public int insert(User user) {
return this.userDao.insert(user);
}
}
3.7 Junit 測試Spring整合Mybatis
package com.test;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.alibaba.fastjson.JSON;
import com.jxust.ssm.pojo.User;
import com.jxust.ssm.service.UserService;
@RunWith(SpringJUnit4ClassRunner.class) // 表示繼承了SpringJUnit4ClassRunner類
@ContextConfiguration(locations = { 'classpath:spring-mybatis.xml' })
/**
* 測試spring整合mybatis spring方式
*
* @author Peng
* @Date2016年12月11日上午11:52:56
*/
public class TestMyBatis {
private static Logger logger = Logger.getLogger(TestMyBatis.class);
@Resource
private UserService userService = null;
/**
* 測試查詢
*/
@Test
public void test1() {
User user = userService.getUserById(2);
logger.info('值:' user.getUserName());
logger.info(JSON.toJSONString(user));
}
/**
* 測試添加
*/
@Test
public void test2() {
User user = new User();
user.setUserName('杜甫3');
user.setPassword('234234');
user.setAge(23);
int count = userService.insert(user);
logger.info('count:' count);
}
}
package com.test;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.jxust.ssm.pojo.User;
import com.jxust.ssm.service.UserService;
/**
* 測試spring整合mybatis 普通方式
* @author Peng
* @Date2016年12月11日上午11:52:11
*/
public class TestMyBatis2 {
private ApplicationContext ac = null;
private UserService userService = null;
@Before
public void before() {
ac = new ClassPathXmlApplicationContext('classpath:spring-mybatis.xml');
userService = (UserService) ac.getBean('userService');
}
/**
* 測試查詢
*/
@Test
public void test1() {
User user = userService.getUserById(2);
System.out.println(user.toString());
}
/**
* 測試添加
*/
@Test
public void test2() {
User user = new User();
user.setUserName('杜甫');
user.setPassword('234234');
user.setAge(23);
int count = userService.insert(user);
System.out.println('插入' count '條數(shù)據(jù)成功');
}
}
測試結(jié)果: ...
[org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
[com.test.TestMyBatis] - 值:杜甫
[com.test.TestMyBatis] - {'age':23,'id':2,'password':'234234','userName':'杜甫'}
[org.springframework.context.support.GenericApplicationContext] - Closing org.springframework.context.support.GenericApplicationContext@55d56113: startup date [Sun Dec 11 20:23:43 CST 2016]; root of context hierarchy
正確輸入結(jié)果,則測試成功! 項(xiàng)目結(jié)構(gòu)為:
4.項(xiàng)目整合 SpringMVCSpringMVC 涉及到視圖了,需要配置 4.1配置
|
|