English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Concepts de base
1.1、Spring
Spring est un cadre open source, Spring est2003 Une légère plateforme de développement Java est apparue en-On-One J2Les idées et les prototypes exposés dans EE Development and Design ont été dérivés. Il a été créé pour résoudre la complexité du développement des applications d'entreprise. Spring utilise des JavaBean de base pour accomplir ce qui ne pouvait être fait que par EJB auparavant. Cependant, l'utilisation de Spring ne se limite pas au développement du côté serveur. Du point de vue de la simplicité, de la testabilité et de la déconnexion, toute application Java peut bénéficier de Spring. En d'autres termes, Spring est un conteneur léger pour l'inversion de contrôle (IoC) et l'orientation aspect (AOP).
1.2, SpringMVC
Spring MVC est un produit dérivé de SpringFrameWork, intégré dans Spring Web Flow. Spring MVC sépare les rôles de contrôleur, d'objet modèle, de dispatcher et d'objet traitant, ce qui facilite leur personnalisation.
1.3, MyBatis
MyBatis était à l'origine un projet open source d'Apache, iBatis, 2010Cette année, le projet a été migré de Apache Software Foundation vers Google Code et renommé en MyBatis. MyBatis est un cadre de couche de persistance basé sur Java. Le cadre de persistance fourni par iBATIS inclut SQL Maps et Data Access Objects (DAO). MyBatis élimine presque tout le code JDBC et la configuration manuelle des paramètres ainsi que la récupération des ensembles de résultats. MyBatis utilise des XML simples ou des annotations pour la configuration et la cartographie primitive, et mappe les interfaces et les POJOs (Plain Old Java Objects, objets Java ordinaires) aux enregistrements de la base de données.
Première étape :Créez un projet web avec Maven.
Deuxième étape :Importation de jar dans le fichier pom
(1) pom.xml
J'ai copié intégralement mon fichier pom, certains éléments d'initialisation doivent être supprimés, conservez la version générée par votre propre pom.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.test</groupId> <artifactId>ssm</artifactId> <packaging>war</packaging> <version>0.0.<1-SNAPSHOT</version> <name>ssm Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <!-- Numéro de version de Spring --> <spring.version>4.0.<2.RELEASE</spring.version> <!-- numéro de version mybatis --> <mybatis.version>3.2.6</mybatis.version> <!-- log4version du paquet de gestion des fichiers de log j --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <dependency> <groupId>junit/groupId> <artifactId>junit/artifactId> <version>3.8.1</version> <scope>test/scope> </dependency> <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> <!-- paquet nucléaire mybatis --> <dependency> <groupId>org.mybatis/groupId> <artifactId>mybatis/artifactId> <version>${mybatis.version}/version> </dependency> <!-- mybatis/paquet spring --> <dependency> <groupId>org.mybatis/groupId> <artifactId>mybatis-spring/artifactId> <version>1.2.2</version> </dependency> <!-- importation du paquet jar java ee --> <dependency> <groupId>javax/groupId> <artifactId>javaee-api/artifactId> <version>7.0</version> </dependency> <!-- importation du paquet jar de connexion de base de données Mysql --> <dependency> <groupId>mysql/groupId> <artifactId>mysql-connector-java/artifactId> <version>5.1.30</version> </dependency> <!-- importation du paquet jar dbcp, utilisé pour configurer la base de données dans applicationContext.xml --> <dependency> <groupId>commons-dbcp/groupId> <artifactId>commons-dbcp/artifactId> <version>1.2.2</version> </dependency> <!-- classes de balises JSTL --> <dependency> <groupId>jstl/groupId> <artifactId>jstl/artifactId> <version>1.2</version> </dependency> <!-- paquet de gestion des fichiers de log --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version</version> </dependency> <!-- formatter d'objet, pratique pour l'output des logs --> <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 --> <!-- introduction dans JSON --> <dependency> <groupId>org.codehaus.jackson/groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <!-- componente de carga --> <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</finalName> </build> </project>
第三步:看整体的项目架构,先说明下我这里还没有有关springMVC的相关东西,因为我先整合sping-mybatis,在测试是否成功,成功在整合springMVC
第四步:建立model类
public class User { private int id; private String name; private String password; private String password2; /*提供set和get方法,toString方法*/ }
Étape 5 :创建数据库,UserDao接口和mapper映射文件
(1)建立很简单的一张表
(2)UserDao接口
public interface UserDao { User findUserById(User user); }
(3)UesrMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace命名空间,指向UserDao全路径--> <mapper namespace="com.ssm.dao.UserDao"> <!-- 根据id查询用户信息 --> <!-- id:唯一标识一个statement,和UserDao方法名一致 #{}:表示一个占位符,如果#{}中传入简单类型的参数,#{}中的名称随意 parameterType:输入参数的类型,和UserDao()里参数一致 resultType:输出结果类型,和UserDao()返回类型一致 --> <select id="findUserById" parameterType="com.ssm.model.User" resultType="com.ssm.model.User"> SELECT * FROM USER <where> <if test="name != null"> AND Name= #{name} </if> <if test="password != null"> AND password= #{password} </if> </where> </select> </mapper>
Étape 5 :Créer UserService et UserServiceImpl
(1)UserService
public interface UserService { public User getUserById(User user); }
(2)UserServiceImpl
import org.springframework.stereotype.Service; import com.ssm.dao.UserDao; import com.ssm.model.User; import com.ssm.service.UserService; @Service("userService") public class UserServerImpl implements UserService { @Resource private UserDao userDao; public User getUserById(User user) { return this.userDao.findUserById(user); } }
Étape 6 :Créer les fichiers jdbc et log journaux
(1)jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://localhost\:3306/test?useUnicode=true&&characterEncoding=UTF-8 jdbc.username=root jdbc.password=root
(2)log4j.properties
log4j.rootLogger=INFO,Console,File Définir la destination de sortie des journaux comme console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out Le format de sortie des journaux peut être spécifié de manière flexible, la ligne suivante spécifie le format spécifique log4j.appender.Console.layout = org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n # Un nouveau fichier est généré lorsque la taille du fichier atteint la taille spécifiée log4j.appender.File = org.apache.log4j.RollingFileAppender # Spécifiez le répertoire de sortie log4j.appender.File.File = logs/ssm.log # Définir la taille maximale du fichier log4j.appender.File.MaxFileSize = 10MB # Affichez tous les journaux, si vous changez en DEBUG, cela signifie que vous affichez les journaux au niveau DEBUG ou supérieur 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
Étape 7 :Intégration de Spring-mybatis.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- Scan automatique --> <context:component-scan base-package="com.ssm" /> <!-- Introduire la mise en œuvre du fichier de configuration jdbc --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties" /> </0" <!-- 2.Pool de connexions de base de données --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </0" <!-- L'intégration de Spring et MyBatis, en utilisant Spring pour gérer la session factory de SqlSessionFactory de MyBatis --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- spécifie la référence au pool de connexions de base de données --> <property name="dataSource" ref="dataSource" /> <!-- scanne automatiquement les fichiers mapping.xml --> <property name="mapperLocations" value="classpath:com/ssm/mapper/*.xml"></property> </0" <!-- DAO interface package name, Spring will automatically search for the classes under it --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.ssm.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </0" <!-- (gestion des transactions) gestionnaire de transactions, utilisez JtaTransactionManager pour les transactions globales --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </0" </bean>
Huitième étape :建立测试类
经过以上步骤(log4j不配也没影响),我们已经完成了Spring和mybatis的整合,这样我们就可以编写一段测试代码来试试是否成功了。
测试类在src/test/java中建立,如果测试成功,表示Spring和Mybatis已经整合成功了。输出信息使用的是Log4j imprime sur la console.
(1)TestMyBatis测试类
package ssm; 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.ssm.model.User; import com.ssm.service.UserService; /*让测试运行于Spring测试环境*/ @RunWith(SpringJUnit4ClassRunner.class) /*用来指定加载的Spring配置文件的位置,会加载默认配置文件*/ @ContextConfiguration(locations = { "classpath:spring-mybatis.xml" }) public class TestMyBatis { @Resource(name = "userService") private UserService userService; @Test public void test1() { User user=new User(); user.setName("张三"); user.setPassword("123"); User user1 = userService.getUserById(user); System.out.println(user1.toString()); } }
最后!关键看后台输出,也是见证奇迹的时候,如果输出对象那说明你配置整合成功!
那接下来我们开始整合springMVC
第九步:配置springmvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <context:component-scan base-package="com.ssm.controller" /> <!--Éviter que Internet Explorer ne télécharge le fichier lorsque l'exécution d'AJAX renvoie un JSON --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </0" <!-- Activer la fonction d'annotation de SpringMVC, réaliser la correspondance entre les requêtes et les POJO annotés --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> <!-- Convertisseur JSON --> </list> </property> </0" <!-- Définir les préfixes et suffixes des fichiers de redirection, configuration du mode de vue--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- Mon interprétation de cette configuration est de donner automatiquement un préfixe et un suffixe aux chaînes renvoyées par les méthodes action suivantes, ce qui en fait une adresse URL utilisable --> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </0" <!-- Configurer le téléversement de fichiers, si vous n'utilisez pas de téléversement de fichiers, vous n'avez pas besoin de configurer, bien sûr, si vous ne configurez pas, alors vous n'avez pas besoin d'introduire le paquet de composants de téléversement dans le fichier de configuration --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- Encodage par défaut --> <property name="defaultEncoding" value="utf-8" /> <!-- La taille maximale du fichier --> <property name="maxUploadSize" value="1048576"0000" /> <!-- La valeur maximale en mémoire -->(2)en écrivant UserController
import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.ssm.dao.UserDao; import com.ssm.model.User; @Controller public class UserController { @Resource private UserDao userDao; @RequestMapping("/jsp/login") public String login(HttpServletRequest request){ String username=request.getParameter("username"); String password=request.getParameter("password"); User user=new User(); //Recherchez dans la base de données en fonction du nom d'utilisateur et de l'étudiant user.setName(username); user.setPassword(password); User users=userDao.findUserById(user); //S'il y a des étudiants, cela signifie que la connexion a réussi if(users!=null){ return "susscss"; } //Je n'ai pas écrit ce jsp, vous savez, vous pouvez l'écrire vous-même return "err"; } }(3)dernier susscss.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <body> <P>Le compte utilisateur et le mot de passe sont corrects, la connexion a réussi</P> </body> </html>Parfait !
Voici la totalité du contenu de cet article, j'espère qu'il vous sera utile dans vos études, et j'espère que vous soutiendrez également le tutoriel d'alarme.
Déclaration : le contenu de cet article est issu du réseau, propriété de l'auteur original, contribué et téléversé par les utilisateurs d'Internet de manière spontanée. Ce site ne détient pas de droits de propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu présumé enfreindre les droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu présumé enfreindre les droits d'auteur.)