Maven+SSM 프레임 워 크 는 간단 한 첨삭 검 사 를 실현 합 니 다.
spring 은 기본 적 인 자바 빈 을 사용 하여 이전 에는 EJB 만 이 할 수 있 었 던 일 을 완성 합 니 다.그러나 Spring 의 용 도 는 서버 개발 에 만 국한 되 는 것 이 아니다.단순 성,테스트 가능 성,소나무 결합 측면 에서 볼 때 모든 자바 응용 은 Spring 에서 이득 을 볼 수 있다.쉽게 말 해 스프링 은 가 벼 운 제어 반전(IoC)과 절단면(AOP)을 위 한 용기 프레임 이다.
SpringMVC 소개
스프링 MVC 는 스프링 프레임 워 크 의 후속 제품 으로 스프링 웹 플 로 우 에 융합 됐다.Spring MVC 컨트롤 러,모델 대상,분파 기,처리 프로그램 대상 의 역할 을 분리 하여 더욱 쉽게 맞 춤 형 제작 을 할 수 있 도록 한다.
MyBatis 소개
MyBatis apache 의 오픈 소스 프로젝트 인 iBatis 입 니 다.2010 년 에 이 프로젝트 는 apache software fornidation 입 니 다. google code 로 이전 하고 MyBatis 로 이름 을 바 꿨 습 니 다. 。MyBatis 는 자바 기반 의 영구적 인 프레임 워 크 입 니 다.iBATIS 가 제공 하 는 지구 층 프레임 워 크 는 SQL Maps 와 Data Access Objects(DAO)MyBatis 를 포함한다. 거의 모든 JDBC 코드 와 인자 의 수 동 설정 과 결과 집합 검색 을 제거 합 니 다.MyBatis 간단 하 다 XML 또는 주 해 는 설정 과 원본 맵 에 사용 되 며 인터페이스 와 Java Plain Old Java Objects 자바 대상)데이터베이스 에 비 친 기록 입 니 다.
우선 Maven 구조 통합 이 아 닙 니 다. SSM 프레임 워 크
데이터베이스 만 들 기,표 dbzsl t_user user_t[맨 아래 에 sql 문구 가 있 습 니 다]
1.프로젝트 전체 구조
2.관련 jar 패키지 추가
3.프로젝트 의 전체적인 구조 가 나 왔 다
4.모델[사용자]생 성
package comlytmodel;
/**
*
* @author
*
*/
public class User {
private int id;
private String userName;
private String age;
@Override
public String toString() {
return "User [id=" + id + ", age=" + age + ", userName=" + userName
+ "]";
}
public User(){
super();
}
public int getId() {
return id;
}
public void setId(int id) {
thisid = id;
}
public String getAge() {
return age;
}
public void setAge(String age) {
thisage = age;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
thisuserName = userName;
}
public User(int id, String age, String userName) {
super();
thisid = id;
thisage = age;
thisuserName = userName;
}
}
5.DAO 인 터 페 이 스 를 만 듭 니 다[my batis 에서 mapper 는 dao 에 해당 합 니 다]
package comlytmapper;
import javautilList;
import comlytmodelUser;
/**
* DAO
* @author
*/
public interface UserMapper {
void save(User user);
boolean update(User user);
boolean delete(int id);
User findById(int id);
List<User> findAll();
}
6.dao 인터페이스 구현[my batis 에서 UserMapper.xml 파일]
<?xml version="0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatisorg//DTD Mapper 0//EN"
"http://mybatisorg/dtd/mybatis-3-mapperdtd">
<!--
namespace: UserMapperjava
id : UserMapperjava 。
-->
<mapper namespace="comlytmapperUserMapper">
<insert id="save" parameterType="User">
insert into t_user(user_name,user_age) values(#{userName},#{age})
</insert>
<update id="update" parameterType="User">
update t_user set user_name=#{userName},user_age=#{age} where user_id=#{id}
</update>
<delete id="delete" parameterType="int">
delete from t_user where user_id=#{id}
</delete>
<!-- mybsits_config alias , resultType -->
<select id="findById" parameterType="int" resultType="User">
select user_id id,user_name userName,user_age age from t_user where user_id=#{id}
</select>
<select id="findAll" resultType="User">
select user_id id,user_name userName,user_age age from t_user
</select>
</mapper>
여기 서 이 xml 파일 에 대해 몇 가지 설명 을 합 니 다.1.namespace 는 대응 하 는 인터페이스 의 모든 유형 과 일치 해 야 합 니 다.
2.id 는 인터페이스 에 대응 하 는 방법 명 과 일치 해 야 합 니 다.즉,UserMapper.자바 인터페이스 에 있 는 방법 과 이름 이 같 아야 합 니 다.
7.mybatis 와 Spring 통합[spring-common.xml]src 루트 디 렉 터 리 에 놓 기
Mybatis 와 Spring 의 통합 은 이 박문 의 중점 이 며,배치 해 야 할 내용 은 아래 에 상세 하 게 설명 되 어 있다.
<?xml version="0" encoding="UTF-8"?>
<beans xmlns="http://wwwspringframeworkorg/schema/beans"
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance" xmlns:p="http://wwwspringframeworkorg/schema/p"
xmlns:context="http://wwwspringframeworkorg/schema/context" xmlns:tx="http://wwwspringframeworkorg/schema/tx"
xsi:schemaLocation="
http://wwwspringframeworkorg/schema/beans
http://wwwspringframeworkorg/schema/beans/spring-beans-xsd
http://wwwspringframeworkorg/schema/context
http://wwwspringframeworkorg/schema/context/spring-context-xsd
http://wwwspringframeworkorg/schema/tx
http://wwwspringframeworkorg/schema/tx/spring-tx-xsd">
<!-- Mybatis Spring -->
<!-- : DriverManagerDataSource -->
<bean id="dataSource"
class="orgspringframeworkjdbcdatasourceDriverManagerDataSource">
<property name="driverClassName" value="commysqljdbcDriver" />
<property name="url" value="jdbc:mysql://localhost:3306/db_zsl" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<!--
mybatis SqlSession : SqlSessionFactoryBean dataSource:
MyBatis ,
-->
<bean id="sqlSessionFactory" class="orgmybatisspringSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis-configxml" />
</bean>
<!--
mybatis Sql / : MapperScannerConfigurer sqlSessionFactory
basePackage: sql / ( )
-->
<bean class="orgmybatisspringmapperMapperScannerConfigurer">
<property name="basePackage" value="comlytmapper"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
<!--
: DataSourceTransactionManager dataSource:
-->
<bean id="txManager"
class="orgspringframeworkjdbcdatasourceDataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--
transaction-manager:
-->
<tx:annotation-driven transaction-manager="txManager" />
</beans>
8.mybatis 설정 파일[mybatis-config.xml]을 src 디 렉 터 리 에 놓 기
<?xml version="0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatisorg//DTD Config 0//EN"
"http://mybatisorg/dtd/mybatis-3-configdtd">
<configuration>
<!-- , - -->
<typeAliases>
<typeAlias alias="User" type="comlytmodelUser" />
</typeAliases>
<!-- -->
<!--
: xxMapperxml xxMapperjava ,mappers , orgmybatisspringmapperMapperFactoryBean xxMapperjava xxMapperxml
-->
<mappers>
<mapper resource="com/lyt/mapper/userMapperxml" />
</mappers>
</configuration>
log4j.properties 설정
### set log levels ###
log4jrootLogger = info , Console , D
#Console
log4jappenderConsole=orgapachelog4jConsoleAppender
log4jappenderConsolelayout=orgapachelog4jPatternLayout
log4jappenderConsolelayoutConversionPattern=%d [%t] %-5p [%c] - %m%n
log4jloggerjavasqlResultSet=INFO
log4jloggerorgapache=INFO
log4jloggerjavasqlConnection=INFO
log4jloggerjavasqlStatement=INFO
log4jloggerjavasqlPreparedStatement=INFO
#output2file
log4jappenderD = orgapachelog4jDailyRollingFileAppender
log4jappenderDFile = D\:/logs/loglog
log4jappenderDAppend = true
log4jappenderDThreshold = INFO \#\# \u00E8\u00BE\u0093\u00E5\u0087\u00BAinfo\u00E7\u00BA\u00A7\u00E5\u0088\u00AB\u00E4\u00BB\u00A5\u00E4\u00B8\u008A\u00E7\u009A\u0084\u00E6\u0097\u00A5\u00E5\u00BF\u0097
log4jappenderDlayout = orgapachelog4jPatternLayout
log4jappenderDlayoutConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n
10.통합 Springmvcsrc 루트 디 렉 터 리 에[spring-mvc.xml]설정
<?xml version="0" encoding="UTF-8"?>
<beans xmlns="http://wwwspringframeworkorg/schema/beans"
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance" xmlns:context="http://wwwspringframeworkorg/schema/context"
xmlns:mvc="http://wwwspringframeworkorg/schema/mvc"
xsi:schemaLocation="http://wwwspringframeworkorg/schema/beans
http://wwwspringframeworkorg/schema/beans/spring-beansxsd
http://wwwspringframeworkorg/schema/context
http://wwwspringframeworkorg/schema/context/spring-context-xsd
http://wwwspringframeworkorg/schema/mvc
http://wwwspringframeworkorg/schema/mvc/spring-mvc-xsd">
<!-- -->
<context:component-scan base-package="comlytcontroller" />
<context:component-scan base-package="comlytservice" />
<!-- -->
<mvc:annotation-driven />
<!--
, , DispatcherServlet ,04 , spring-mvc-xsd
-->
<mvc:resources mapping="/img/**" location="/img/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/html/**" location="/html/" />
<!-- , -->
<bean id="viewResolver"
class="orgspringframeworkwebservletviewInternalResourceViewResolver">
<!-- action return , url -->
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value="jsp" />
</bean>
</beans>
11.웹.xml 설정
<?xml version="0" encoding="UTF-8"?>
<web-app version="5" xmlns="http://javasuncom/xml/ns/javaee"
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"
xsi:schemaLocation="http://javasuncom/xml/ns/javaee
http://javasuncom/xml/ns/javaee/web-app_2_xsd">
<!-- Spring -->
<listener>
<listener-class>orgspringframeworkwebcontextContextLoaderListener</listener-class>
</listener>
<!-- Spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<!-- <param-value>classpath:config/spring-*xml</param-value> -->
<param-value>classpath:spring-commonxml,classpath:spring-mvcxml</param-value>
</context-param>
<!-- SpringMVC -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>orgspringframeworkwebservletDispatcherServlet</servlet-class>
<!-- , contextConfigLocation -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-commonxml,classpath:spring-mvcxml</param-value>
</init-param>
<!-- -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- DispatcherServlet -->
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<!-- *do, struts -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Spring -->
<listener>
<listener-class>orgspringframeworkwebutilIntrospectorCleanupListener</listener-class>
</listener>
<!-- -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>orgspringframeworkwebfilterCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>indexjsp</welcome-file>
</welcome-file-list>
</web-app>
12.서비스 구축 및 서비스 실현[UserService.java]
package comlytservice;
import javautilList;
import comlytmodelUser;
public interface UserService {
void save(User user);
boolean update(User user);
boolean delete(int id);
User findById(int id);
List<User> findAll();
}
【UserServiceImpl.java】
package comlytserviceimpl;
import javautilList;
import javaxannotationResource;
import orgspringframeworkstereotypeService;
import orgspringframeworktransactionannotationTransactional;
import comlytmapperUserMapper;
import comlytmodelUser;
import comlytserviceUserService;
@Service
@Transactional
// SqlSession , spring 。
public class UserServiceImpl implements UserService {
@Resource
private UserMapper mapper;
/**
* id
*/
public boolean delete(int id) {
return mapperdelete(id);
}
/**
* User
*/
public List<User> findAll() {
List<User> findAllList = mapperfindAll();
return findAllList;
}
/**
* id
*/
public User findById(int id) {
User user = mapperfindById(id);
return user;
}
/**
*
*/
public void save(User user) {
mappersave(user);
}
/**
* id
*/
public boolean update(User user) {
return mapperupdate(user);
}
}
13.컨트롤 러 구축[UserController.java]
package comlytcontroller;
import javaioIOException;
import javaioPrintWriter;
import javautilList;
import javaxservlethttpHttpServletRequest;
import javaxservlethttpHttpServletResponse;
import orgspringframeworkbeansfactoryannotationAutowired;
import orgspringframeworkstereotypeController;
import orgspringframeworkuiModel;
import orgspringframeworkwebbindannotationRequestMapping;
import comlytmodelUser;
import comlytserviceUserService;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
*
* @param request
* @return
*/
@RequestMapping("/getAllUser")
public String getAllUser(HttpServletRequest request,Model model){
List<User> user = userServicefindAll();
modeladdAttribute("userList", user);
requestsetAttribute("userList", user);
return "/allUser";
}
/**
*
* @param request
* @return
*/
@RequestMapping("/toAddUser")
public String toAddUser(){
return "/addUser";
}
/**
*
* @param user
* @param request
* @return
*/
@RequestMapping("/addUser")
public String addUser(User user,Model model){
userServicesave(user);
return "redirect:/user/getAllUser";
}
/**
*
* @param user
* @param request
* @return
*/
@RequestMapping("/updateUser")
public String updateUser(User user,HttpServletRequest request,Model model){
if(userServiceupdate(user)){
user = userServicefindById(usergetId());
requestsetAttribute("user", user);
modeladdAttribute("user", user);
return "redirect:/user/getAllUser";
}else{
return "/error";
}
}
/**
* id
* @param id
* @param request
* @return
*/
@RequestMapping("/getUser")
public String getUser(int id,HttpServletRequest request,Model model){
requestsetAttribute("user", userServicefindById(id));
modeladdAttribute("user", userServicefindById(id));
return "/editUser";
}
/**
*
* @param id
* @param request
* @param response
*/
@RequestMapping("/delUser")
public void delUser(int id,HttpServletRequest request,HttpServletResponse response){
String result = "{\"result\":\"error\"}";
if(userServicedelete(id)){
result = "{\"result\":\"success\"}";
}
responsesetContentType("application/json");
try {
PrintWriter out = responsegetWriter();
outwrite(result);
} catch (IOException e) {
eprintStackTrace();
}
}
}
이로써 대부분의 구조 와 코드 는 이미 구축 되 었 다.저희 가 프론트 페이지 를 만 들 겠 습 니 다.-index.jsp 수정.
<%@ page language="java" import="javautil*" pageEncoding="utf-8"%>
<%
String path = requestgetContextPath();
String basePath = requestgetScheme() + "://"
+ requestgetServerName() + ":" + requestgetServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >
<title> </title>
</head>
<body>
<h5>
<a href="<%=basePath%>user/getAllUser" rel="external nofollow" > </a>
</h5>
</body>
</html>
WEB-INF 에서 jsp 폴 더[아래 파일 새로 만 들 기][addUser.jsp][allUser.jsp][editUser.jsp]addUser.jsp 내용
<%@ page language="java" import="javautil*" pageEncoding="UTF-8"%>
<%
String path = requestgetContextPath();
String basePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";
%>
<%@ taglib uri="http://javasuncom/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >
<title> </title>
<script type="text/javascript">
function addUser(){
var form = documentforms[0];
formaction = "<%=basePath%>user/addUser";
formmethod="post";
formsubmit();
}
</script>
</head>
<body>
<h1><%=path%> <%=basePath%></h1>
<form action="" name="userForm">
:<input type="text" name="userName">
:<input type="text" name="age">
<input type="button" value=" " onclick="addUser()">
</form>
</body>
</html>
allUser.jsp
<%@ page language="java" import="javautil*" pageEncoding="UTF-8"%>
<%
String path = requestgetContextPath();
String basePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";
%>
<%@ taglib uri="http://javasuncom/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >
<script type="text/javascript" src="js/jquery-js"></script>
<title> </title>
<script type="text/javascript">
function del(id){
$get("<%=basePath%>user/delUser?id=" + id,function(data){
if("success" == dataresult){
alert(" ");
windowlocationreload();
}else{
alert(" ");
}
});
}
</script>
</head>
<body>
<h6><a href="<%=basePath%>user/toAddUser" rel="external nofollow" > </a></h6>
<table border="1">
<tbody>
<tr>
<th> </th>
<th> </th>
<th> </th>
</tr>
<c:if test="${!empty userList }">
<c:forEach items="${userList}" var="user">
<tr>
<td>${useruserName }</td>
<td>${userage }</td>
<td>
<a href="<%=basePath%>user/getUser?id=${userid}" rel="external nofollow" > </a>
<a href="javascript:del('${userid }')" rel="external nofollow" > </a>
</td>
</tr>
</c:forEach>
</c:if>
</tbody>
</table>
</body>
</html>
editUser.jsp
<%@ page language="java" import="javautil*" pageEncoding="UTF-8"%>
<%
String path = requestgetContextPath();
String basePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";
%>
<%@ taglib uri="http://javasuncom/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >
<title> </title>
<script type="text/javascript">
function updateUser(){
var form = documentforms[0];
formaction = "<%=basePath%>user/updateUser";
formmethod="post";
formsubmit();
}
</script>
</head>
<body>
<h1> </h1>
<form action="" name="userForm">
<input type="hidden" name="id" value="${userid }"/>
:<input type="text" name="userName" value="${useruserName }"/>
:<input type="text" name="age" value="${userage }"/>
<input type="button" value=" " onclick="updateUser()"/>
</form>
</body>
</html>
SSM 을 간단하게 통합 하 겠 습 니 다.[기본 적 인 조작 내용 이 완료 되 었 습 니 다.]화면 이 실행 되 는 것 을 보 여 드 리 겠 습 니 다.주소:http://localhost:8088/SpringMVC_Spring_mybatis/
첫 페이지:
편집 을 클릭 하여 들 어가 기:
클릭 하여 추가:
제 가 인터넷 문제 때문에... 사진 은 잠시 올 라 가지 않 았 습 니 다.지금 제 가 사진 을 다 올 렸 어 요.많이 응원 해 주세요.]
대응 하 는 데이터베이스 시트
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 50515
Source Host : localhost:3306
Source Database : db_zsl
Target Server Type : MYSQL
Target Server Version : 50515
File Encoding : 65001
Date: 2016-05-16 16:10:51
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `t_user`
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(20) NOT NULL,
`user_age` varchar(20) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES ('2', ' ', '25');
INSERT INTO `t_user` VALUES ('3', ' ', '150');
INSERT INTO `t_user` VALUES ('4', 'jiuqiyuliang', '23');
INSERT INTO `t_user` VALUES ('5', 'jiuqiyuliang', '23');
INSERT INTO `t_user` VALUES ('6', 'jiuqiyuliang', '23');
INSERT INTO `t_user` VALUES ('7', 'jiuqiyuliang', '23');
INSERT INTO `t_user` VALUES ('9', 'liyintao123', '23123');
-- ----------------------------
-- Table structure for `user_t`
-- ----------------------------
DROP TABLE IF EXISTS `user_t`;
CREATE TABLE `user_t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(40) NOT NULL,
`password` varchar(255) NOT NULL,
`age` int(4) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user_t
-- ----------------------------
INSERT INTO `user_t` VALUES ('1', ' ', 'sfasgfaf', '24');
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows에서 CodeArtifact(Maven)용 토큰을 자동으로 생성하는 방법CodeArtifact를 사용한 적이 있거나 사용할 계획이라면 매일 모든 Maven 프로젝트에서 수동으로 토큰(CODEARTIFACT_AUTH_TOKEN)을 생성해야 합니다. 이는 어려울 수 있으며 개발 속도를 늦출...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.