Maven Spring MVC+Mybatisプロジェクト詳細
前言
最近は暇なので、復習してプロジェクトを作ります.今回は主にSpring+SpringMVC+Mybatisを使います.プロジェクトの耐久層はMybatis 3を使用して、コントロール層はSprigMVC 4.1を使用して、Spring 4.1を使用してコントローラを管理して、データベース接続池はdruidデータソースを使用して、このデータベースはしばらくMySQLを使用します.
1、データベース表の構造及びmavenプロジェクト構造
データテーブルは非常に簡単です.
mavenプロジェクトを作成します.詳細は前のmavenの作成を参照してください.http://blog.csdn.net/fengshizty/article/details/43019561)Maven Projectを作成する場合、Filterをorg.apache.maven.archtypesに選択します.関連項目の座標情報を記入した後、プロジェクトの構造は以下の通りです.
注:src/main/java、src/test/java、Src/test/reourcesがない場合、このいくつかのSource Folderを作成します.
2、pom.xml添加の対応するパッケージ依存性を修正する.
ここで使用している全てのMavenの依存を貼り付けました.どのような役割に対応するかについて説明があります.
pom.xml
表のModel,Mapping,Daoファイルを自動的に生成します. http://blog.csdn.net/fengshizty/article/details/43086833
プロジェクトのSrc/main/javaパッケージに導入します.
生成されたModelのUserInfoは以下の通りである.
UserInfo.java(List courseInfosが手動で追加された)
src/main/resourceでspringのプロファイルを作成しました.ここでspring.xmlを作成しました.情報は以下の通りです.
5.1、データ接続池druidの配置情報
接続池の設定情報は、config.propertiesで以下の通りです.
mybatisの設定情報は以下の通りです.spring-mybatis.xml(ps:名前は簡単につけます.)
6、日記の導入
src/main/resourceにロゴ4 jログの設定情報を追加します.
log 4 j.properties
src/main/javaに関連するorg.andy.shop.serviceバッグとorg.andy.shop.service.Implバッグを作成します.
UserServiceインターフェース:
Src/test/javaにテストクラスを書いて、データを読み出すことができるかどうかを検出します.読めばSpring+Mybatisの統合が成功したと証明します.
TestUserServiceテストクラス:
9、SprigMVCの導入
9.1 SprigMVCの配置情報
SpringMVCの構成情報は主にコントロール層Controllerのbean管理、ビュー層とコントロール層構成などを含み、以下はspring-mvc.xml情報である.
9.2、Web容器web.xml配置
web容器配置ローディングのプロファイルを起動し、SpringMVCブロックの要求を設定する(ここでブロックする.htmlsの最後のurl要求)
org.andy.shop.com ntrollerでUserController.javaのような制御層を作成します.
WEB-INFでビューの総カタログviewを作成し(セキュリティのために一般的にはWEB-INFで作成します)、user/showInfo.jspビューファイルを作成します.
ここにdemo及び基本作成のための総カタログは以下の通りです.
10、プロジェクトテスト
プロジェクトをコンパイルして、Maven build…clean comple packageを入力して、Tomcatサーバーに配置して、プロジェクトをスタートします.
テスト1:最初のurlをテストします. http://localhost:8080/springmvc_mybatisdemo/user/show Info/1.httmls
テスト2:2番目のjsonデータを返したurlをテストします. http://localhost:8080/springmvc_mybatisdemo/user/show Infos.hmls
ok、データは正常に表示されています.SprigMVC+Mybatisの構築に成功しました.
クリックしてリンクを開く
最近は暇なので、復習してプロジェクトを作ります.今回は主にSpring+SpringMVC+Mybatisを使います.プロジェクトの耐久層はMybatis 3を使用して、コントロール層はSprigMVC 4.1を使用して、Spring 4.1を使用してコントローラを管理して、データベース接続池はdruidデータソースを使用して、このデータベースはしばらくMySQLを使用します.
1、データベース表の構造及びmavenプロジェクト構造
データテーブルは非常に簡単です.
mavenプロジェクトを作成します.詳細は前のmavenの作成を参照してください.http://blog.csdn.net/fengshizty/article/details/43019561)Maven Projectを作成する場合、Filterをorg.apache.maven.archtypesに選択します.関連項目の座標情報を記入した後、プロジェクトの構造は以下の通りです.
注:src/main/java、src/test/java、Src/test/reourcesがない場合、このいくつかのSource Folderを作成します.
2、pom.xml添加の対応するパッケージ依存性を修正する.
ここで使用している全てのMavenの依存を貼り付けました.どのような役割に対応するかについて説明があります.
pom.xml
4.0.0
org.andy.sm
springmvc_mybatis_demo
war
0.0.1-SNAPSHOT
springmvc_mybatis_demo Maven Webapp
http://maven.apache.org
UTF-8
4.1.4.RELEASE
2.5.0
junit
junit
4.12
test
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-test
${spring.version}
test
org.mybatis
mybatis
3.2.8
org.mybatis
mybatis-spring
1.2.2
mysql
mysql-connector-java
5.1.34
com.alibaba
druid
1.0.12
org.aspectj
aspectjweaver
1.8.4
log4j
log4j
1.2.17
javax.servlet
servlet-api
3.0-alpha-1
javax.servlet
jstl
1.2
org.codehaus.jackson
jackson-mapper-asl
1.9.13
com.alibaba
fastjson
1.2.3
com.fasterxml.jackson.core
jackson-annotations
${jackson.version}
com.fasterxml.jackson.core
jackson-core
${jackson.version}
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
commons-io
commons-io
2.4
commons-fileupload
commons-fileupload
1.2.2
springmvc_mybatis_demo
org.apache.maven.plugins
maven-surefire-plugin
2.4.2
true
org.apache.maven.plugins
maven-war-plugin
2.3
src/main/webapp/WEB-INF/web.xml
org.apache.maven.plugins
maven-javadoc-plugin
2.9.1
target/javadoc
target/javadoc
UTF-8
UTF-8
UTF-8
private
org.codehaus.cargo
cargo-maven2-plugin
1.0
tomcat6x
D:\WebServer\apache-tomcat-6.0.39
existing
D:\WebServer\apache-tomcat-6.0.39
3、Generatorを使って自動的にMybatis関連表の情報を生成する表のModel,Mapping,Daoファイルを自動的に生成します. http://blog.csdn.net/fengshizty/article/details/43086833
プロジェクトのSrc/main/javaパッケージに導入します.
生成されたModelのUserInfoは以下の通りである.
UserInfo.java(List courseInfosが手動で追加された)
package org.andy.shop.model;
import java.util.List;
public class UserInfo {
private Integer id;
private String uname;
private Integer unumber;
private List courseInfos;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname == null ? null : uname.trim();
}
public Integer getUnumber() {
return unumber;
}
public void setUnumber(Integer unumber) {
this.unumber = unumber;
}
public List getCourseInfos() {
return courseInfos;
}
}
Daoバッグの中のUserInfoMapper.javapackage org.andy.shop.dao;
import java.util.List;
import org.andy.shop.model.UserInfo;
public interface UserInfoMapper {
int deleteByPrimaryKey(Integer id);
int insert(UserInfo record);
int insertSelective(UserInfo record);
UserInfo selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(UserInfo record);
int updateByPrimaryKey(UserInfo record);
List selectAll();
}
mapping中のプロファイルUserInfoMapper.xml
id, uname, unumber
delete from
user_info
where id = #{id,jdbcType=INTEGER}
insert into user_info (id,
uname, unumber
)
values (#{id,jdbcType=INTEGER},
#{uname,jdbcType=VARCHAR},
#{unumber,jdbcType=INTEGER}
)
insert into user_info
id,
uname,
unumber,
#{id,jdbcType=INTEGER},
#{uname,jdbcType=VARCHAR},
#{unumber,jdbcType=INTEGER},
update user_info
uname = #{uname,jdbcType=VARCHAR},
unumber = #{unumber,jdbcType=INTEGER},
where id = #{id,jdbcType=INTEGER}
update user_info
set uname = #{uname,jdbcType=VARCHAR},
unumber =
#{unumber,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
4、Springを導入し、関連属性を配置するsrc/main/resourceでspringのプロファイルを作成しました.ここでspring.xmlを作成しました.情報は以下の通りです.
5、Mybatisを導入し、データ接続池などの情報を配置する5.1、データ接続池druidの配置情報
接続池の設定情報は、config.propertiesで以下の通りです.
#mysql version database druid setting
validationQuery=SELECT 1
jdbc.url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=12345
5.2、Mybatis関連情報の配置mybatisの設定情報は以下の通りです.spring-mybatis.xml(ps:名前は簡単につけます.)
主にデータ接続池、事務管理、mybatis関連マッピングなどを配置し、事務はaopの声明式事務を採用する.6、日記の導入
src/main/resourceにロゴ4 jログの設定情報を追加します.
log 4 j.properties
### set log levels ###
log4j.rootLogger = INFO , C , D , E
### console ###
log4j.appender.C = org.apache.log4j.ConsoleAppender
log4j.appender.C.Target = System.out
log4j.appender.C.layout = org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern = [springmvc_mybatis_demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n
### log file ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ../logs/springmvc-mybatis-demo.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = [springmvc_mybatis_demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n
### exception ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ../logs/springmvc-mybatis-demo_error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = [sspringmvc_mybatis_demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n
7、Serviceを作成するsrc/main/javaに関連するorg.andy.shop.serviceバッグとorg.andy.shop.service.Implバッグを作成します.
UserServiceインターフェース:
package org.andy.shop.service;
import java.util.List;
import org.andy.shop.model.UserInfo;
/**
* :2015-1-27 5:15:03
* @author andy
* @version 2.2
*/
public interface UserService {
UserInfo getUserById(int id);
List getUsers();
int insert(UserInfo userInfo);
}
UserServiceImplはServiceを実現する:package org.andy.shop.service.impl;
import java.util.List;
import org.andy.shop.dao.UserInfoMapper;
import org.andy.shop.model.UserInfo;
import org.andy.shop.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* :2015-1-27 5:22:59
*
* @author andy
* @version 2.2
*/
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserInfoMapper userInfoMapper;
@Override
public UserInfo getUserById(int id) {
return userInfoMapper.selectByPrimaryKey(id);
}
@Override
public List getUsers() {
return userInfoMapper.selectAll();
}
@Override
public int insert(UserInfo userInfo) {
int result = userInfoMapper.insert(userInfo);
System.out.println(result);
return result;
}
}
8、SpringとMybatisの配置をテストします.Src/test/javaにテストクラスを書いて、データを読み出すことができるかどうかを検出します.読めばSpring+Mybatisの統合が成功したと証明します.
TestUserServiceテストクラス:
package org.andy.shop.service;
import java.util.List;
import org.andy.shop.model.UserInfo;
import org.apache.log4j.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.alibaba.fastjson.JSON;
/**
* :2015-1-27 10:45:38
*
* @author andy
* @version 2.2
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring.xml",
"classpath:spring-mybatis.xml" })
public class TestUserService {
private static final Logger LOGGER = Logger
.getLogger(TestUserService.class);
@Autowired
private UserService userService;
@Test
public void testQueryById1() {
UserInfo userInfo = userService.getUserById(1);
LOGGER.info(JSON.toJSON(userInfo));
}
@Test
public void testQueryAll() {
List userInfos = userService.getUsers();
LOGGER.info(JSON.toJSON(userInfos));
}
@Test
public void testInsert() {
UserInfo userInfo = new UserInfo();
userInfo.setUname("xiaoming");
userInfo.setUnumber(4);
int result = userService.insert(userInfo);
System.out.println(result);
}
}
テストが成功すれば、もう半分成功したということです.9、SprigMVCの導入
9.1 SprigMVCの配置情報
SpringMVCの構成情報は主にコントロール層Controllerのbean管理、ビュー層とコントロール層構成などを含み、以下はspring-mvc.xml情報である.
text/html;charset=UTF-8
UTF-8
32505856
4096
自動スキャンorg.andy.shop.com ntrollerには@Controllerのコントロール層があり、beanに注入されます.9.2、Web容器web.xml配置
web容器配置ローディングのプロファイルを起動し、SpringMVCブロックの要求を設定する(ここでブロックする.htmlsの最後のurl要求)
springmvc_mybatis_demo
contextConfigLocation
classpath:spring.xml,classpath:spring-mybatis.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
encodingFilter
/*
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
spring mvc servlet
rest
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
rest
*.htmls
30
index.jsp
9.3、制御層org.andy.shop.com ntrollerでUserController.javaのような制御層を作成します.
package org.andy.shop.controller;
import java.util.List;
import org.andy.shop.model.UserInfo;
import org.andy.shop.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* :2015-1-28 1:17:27
* @author andy
* @version 2.2
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/showInfo/{userId}")
public String showUserInfo(ModelMap modelMap, @PathVariable int userId){
UserInfo userInfo = userService.getUserById(userId);
modelMap.addAttribute("userInfo", userInfo);
return "/user/showInfo";
}
@RequestMapping("/showInfos")
public @ResponseBody Object showUserInfos(){
List userInfos = userService.getUsers();
return userInfos;
}
}
9.4、ビュー層WEB-INFでビューの総カタログviewを作成し(セキュリティのために一般的にはWEB-INFで作成します)、user/showInfo.jspビューファイルを作成します.
userInfo
: ${userInfo.uname}
9.5、プロジェクト全体のディレクトリ構造ここにdemo及び基本作成のための総カタログは以下の通りです.
10、プロジェクトテスト
プロジェクトをコンパイルして、Maven build…clean comple packageを入力して、Tomcatサーバーに配置して、プロジェクトをスタートします.
テスト1:最初のurlをテストします. http://localhost:8080/springmvc_mybatisdemo/user/show Info/1.httmls
テスト2:2番目のjsonデータを返したurlをテストします. http://localhost:8080/springmvc_mybatisdemo/user/show Infos.hmls
ok、データは正常に表示されています.SprigMVC+Mybatisの構築に成功しました.
クリックしてリンクを開く