Este artículo presenta principalmente la integración de MVC MVEN, MyBatis y Spring (imágenes y textos) de Java Framework Construction. Se comparte contigo. Los detalles son los siguientes:
SSM (Spring+SpringMVC+MyBatis), actualmente una solución de arquitectura de nivel empresarial relativamente convencional. El modelo de diseño MVC estándar divide todo el sistema en cuatro capas: capa de visualización, capa de controlador, capa de servicio y capa DAO. SpringMVC se usa para ser responsable de la gestión de reenvío y vista de solicitud, Spring implementa la gestión de objetos comerciales y MyBatis se utiliza como motor de persistencia del objeto de datos.
Detalles del marco
Spring es un marco de desarrollo Java ligero creado para resolver la complejidad del desarrollo de aplicaciones empresariales. El propósito de Spring no se limita al desarrollo del lado del servidor. Desde una simplicidad, probabilidad y una perspectiva de acoplamiento suelto, cualquier aplicación de Java puede beneficiarse de la primavera. En pocas palabras, Spring es una inversión ligera de control de control (COI) y marco de contenedores orientado a la sección (AOP).
SpringMVC es un producto posterior de Springframework, que separa los roles de los controladores, objetos modelo, despachadores y objetos de controlador. Esta separación los hace más fáciles de personalizar.
MyBatis es un marco de capa de persistencia basado en Java. MyBatis proporciona un marco de capa de persistencia que incluye mapas SQL y objetos de acceso a datos (DAO) que elimina la configuración manual de casi todos los códigos y parámetros JDBC y la recuperación de conjuntos de resultados. MyBatis utiliza XML o anotaciones simples para la configuración y las asignaciones sin procesar para mapear interfaces y Java para registrar en la base de datos.
1. Descarga Eclipse
Descargar http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/marsr
Elija la versión que desee
2. Cree un nuevo proyecto Maven
Seleccione Archivo> Nuevo> Proyecto Maven
Puedes ver la siguiente interfaz
Haga clic en Siguiente para ver la siguiente interfaz. Seleccionamos Maven-Archetype-WebApp
Haga clic en Siguiente para ver. La identificación del grupo es el nombre del paquete, y el ID de artefacto es el nombre del proyecto. Aquí entramos en el grupo id = com.cjt, artefacto id = mymaven.
Finalmente, haga clic en Finalizar para crear con éxito el proyecto
3. Preparación antes de la operación del proyecto
Después de crear un nuevo proyecto, puede ver un error, que es causado por la ruta de compilación y la falta de introducir el paquete Javaee.
1) Establezca la ruta de compilación
Haga clic con el botón derecho en la ruta del proyecto> Build-> Configurar la ruta de compilación ...
Luego seleccione bibliotecas
Maven selecciona una biblioteca de forma predeterminada. Esto está mal. Hagamos doble clic en esto para editar.
En la siguiente interfaz, elegimos JRE o el espacio de trabajo predeterminado JRE. Aquí elegimos JRE alternativo.
2) Presente el paquete Javaee
Presentación del paquete Javaee en Pom.xml
<
4. Configuración del archivo de configuración del proyecto
1) establecer pom.xml
Ahora configuramos pom.xml y descargamos el paquete JAR. Este proceso puede ser un poco lento
Pom.xml:
<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.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. http://maven.apache.org/maven-v4_0_0.xsd "> <modelVersion> 4.0.0 </modelversion> <MoupRupid> com.cjt </groupid> <artifactid> mymaven </artifactid> <cackaging> war </packaging> <versión> 0.0.1-snapshot </versión> <nerifactIn WebApp </name> <URL> http://maven.apache.org </sl> <properties> <!-Spring Version Number-> <spring.version> 4.0.2.release </spring.version> <!-Número de versión de mybatis-> <myBatis.version> 3.2.6 </mybatis.version> <!-Log 4J Management Version-Log Version-Log Version- <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> <!-- Import java Paquete EE JAR-> <PERSEDENCY> <MOUMPOMID> JAVAX </Groupid> <StarifactId> javaee-api </artifactid> <versión> 7.0 </versión> </pendency> <!-Spring Core Package-> <Spendency> <MoupRoupId> org.springFrameFramework </proupId> <AtifactId> spring-core </artifiCACT> <PROPELED> $ {SprecE {SprecE {SprecE {springeT </pendency> <pendency> <uproupid> org.springframework </groupid> <artifactid> spring-web </artifactid> <verserse> $ {spring.version} </version> </dependency> <pendency> <proupid> org.springfrframework </groupid> <artifactid> spring-oxmm </artifactid>> <Persion> $ {spring.version} </verse> </dependency> <epardency> <grupid> org.springframework </groupid> <artifactid> spring-tx </artifactid> <version> $ {spring.version} </versión> </dependence> <epardency> <grupid> org.springframework </groupid> <artifactid> spring-jdbc </artifactid> <versión> $ {spring.version} </versión> </pendency> <pendency> <proupid> org.springframework </groupid> <arifactid> spring-webmvc </artifactid> <lection> $ {spring.version} </versión> <///version> <fependency> <MoupRid> org.springframework </groupid> <artifactid> spring-aoop </artifactid> <ververy> $ {spring.version} </versewers> </pendency> <epardency> <proupid> org.springframework </groupid> <artifactID> spring-coNtext-supporte </pendency> <pendency> <uproupid> org.springframework </proupid> <artifactID> spring-test </arfactiD> <versión> $ {spring.version} </versión> </dependency> <!-myBatis paquete central-> <pendency> <proupid> org.mybatis </groupid> <artifactid> mybatis </artid> <fependency> <versión> $ {mybatis.version} </verververs> </pepersency> <!-MyBatis/Spring Package-> <Spendency> <Groupid> org.mybatis </groupid> <artifactID> myBatis-spring </artifactid> <versión> 1.2.2 </versión> </dependencia> <! <MoupRid> javax </proupid> <artifactid> javaee-api </artifactid> <versión> 7.0 </versión> </pendency> <!-Importar el paquete Jar de la base de datos MySQL de datos-> <Spendency> <ProupId> MySQL </GroupId> <arifactid> </pendency> <!-Importe el paquete JAR de DBCP para configurar la base de datos en ApplicationContext.xml-> <Spendency> <MoupRupid> Commons-DBCP </Groupid> <AtifactId> Commons-DBCP </ArtifactId> <Version> 1.2.2 </Version> </sentencency> <!-Jstl Tag Class-> <pendency> <PaperId> <artifactid> jstl </artifactid> <versión> 1.2 </versión> </pendency> <!-paquete de administración de archivos de registro-> <!-log start-> <pendency> <proupid> log4j </groupid> <artifactid> log4j </artifactid> <versión> $ {log4j.version} </borsion> </versión> </versión>! <Spendency> <MoupRid> com.alibaba </proupid> <artifactId> fastJSson </artifactid> <versión> 1.1.41 </versión> </pendency> <pendency> <MoupRupid> org.slf4j </groupId> <artifactID> slf4j-opi </artifactid> <versión> $ {slf4j.version} </versión> versión <Spendency> <MoupRoD> org.slf4j </groupid> <artifactId> slf4j-log4j12 </arfactiD> <versión> $ {slf4j.version} </versión> </dependency> <!-log final-> <!-input json-> <ependency> <proupid> org.codehaus.jackson </groupid> <AtifactId> Jackson-Mapper-Asl </arfactid> <versión> 1.9.13 </versión> </pendency> <!-Paquete de componente de carga-> <pendency> <MoupRoMID> Commons-FileUpload </groupId> <AtifactID> commons-FileUpload </artifactId> <PROPONSE> 1.3.1 </Version> <//dependence> <fependency> <MoupRid> Commons-io </proupid> <artifactid> commons-io </artifactid> <versión> 2.4 </versión> </pendency> <pendency> <moupid> commons-codec </groupid> <artifactid> commons-codec </artifactid> <lection> 1.9 </lipsion> </pendency> </dependence> </built>> <FinalName> testMaven01 </inalName> </struct> </jection>2) crear JDBC.Properties
controlador = com.mysql.jdbc.driverurl = jdbc: mysql: // localhost: 3306/testUsername = rootpassword =#Define el número de conexión inicial InitialSize = 1#Define el número máximo de conexión Maxactive = 20#Define Máximo Idle Máxidle = 20#define mínimo minidle minidle = 1#Define Máximo Tiempo de espera MAXWAIT = 60000#600#
3) Log4J.Properties
### Establecer niveles de registro #### log4j.rootlogger = debug, stdout, d, elog4j.rootlogger = debug, stdout, d ### Salida a la consola ### log4j.appender.stdout = org.apache.log4j.consoleppenderlog4j.appender.stdout.tout = = = System.outlog4j.appender.stdout.layout = org.apache.log4j.patternlayout#log4j.appender.stdout.layout.conversionPattern = %d {absoluto} %5p %c {1}: %l- %m %nlog4j.appender.stdout.layout.conversionpattern = %- %-{ HH: MM: SS} [%C]-[%P]%m%n ### Salida al archivo de registro ### log4j.appender.d = org.apache.log4j.dailyRollingFilePepeppenderlog4j.appender.d.file = $ {springmvc.Root} /webinf/logs/logs/log.logLog4J.Append.Append.Append.Append.Append. truelog4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### Save exception information to separate file ### log4j.appender.d = org.apache.log4j.dailyRollingFileAppenderlog4j.appender.d.file = $ {springmvc.Root} /webinf/logs/error.log log4j.appender.d.append = truelog4j.appender.d.threshold = error log4j.appender = org.apache.log4j.patternlayoutlog4j.appender.d.layout.conversionPattern = %-d {aayyy-mm-dd hh: mm: ss} [ %t: %r]-[ %p] %m %n4) Spring-MVC.XML
<? xml versión = "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/mvc" xsi: schemalocation = "http://www.springframework.org/schema/schem 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 "> <!-Escanear automáticamente el paquete para que Springmvc crea que la clase de clase anotada en @Controller es el paquete es el paquete de controles. Base-Package = "com.cjt.controller"/> <!-Evite descargar archivos cuando IE ejecute AJAX y regrese a JSON-> <bean id = "MappingjacksonhtttpmessageConverter"> <Property name = " Función de anotación de SpringMVC para completar la asignación de solicitudes y anotaciones POJOS-> <Bean> <Property Name = "MessageConverters"> <list> <ref Bean = "MappingjacksonhttpMessageConverter"/> <!-JSON Converter-> </list> </propiedad> </ bean> <! < Si no usa la carga de archivos, no necesita configurarlo. Por supuesto, si no coincide, entonces no hay necesidad de introducir el paquete de componente de carga en el archivo de configuración-> <bean id = "multipartresolver"> <!-codificación predeterminada-> <name de propiedad = "defaultEncoding" valor = "utf-8" /> <!-tamaño máximo de archivo-> <name de propiedad = "maxuploadsize" value = "10485760000" " /! <propiedad name = "maxinMemorySize" value = "40960"/> </bean> </les>
5) Spring-Mybatis.xml
<? xml versión = "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/mvc" xsi: schemalocation = "http://www.springframework.org/schema/schem 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 "> <!-Automatic Scan-> <context: component-scan-backage =" com.cjt.sss "/> <! id = "PropertyConfigurer"> <Property name = "ubicación" value = "classpath: jdbc.properties" /> < /bean> <bean id = "dataSource" destruye-method = "cerrar"> <propiedad name = "conductorClassName" valor = "$ {controlador}" /> <name de propiedad = "url" valor = "$ {url}" /> <name de propiedad " valor = "$ {username}" /> <propiedad name = "contraseña" value = "$ {contraseña}" /> <!-Inicializar el tamaño de conexión-> <propiedad de propiedad = "inicial" value = "$ {inicialsize}"> </sperties> <!-Número máximo de grupos de conexión-> <name de propiedad = "maxactive" valor = "$ {maxactive} < /< /< /propiedad de la propiedad>"> <. -> <Property name = "maxidle" value = "$ {maxidle}"> </property> <!-Minimum inactivo grupo de conexión-> <propiedad name = "minidle" value = "$ {minidle}"> </sperty> <!-Obtener el tiempo máximo de espera de la conexión-> <nombre de propiedad = "Máxwait" valor = "$ {maxwait}"> </propiedad> <</beay <! and MyBatis, no mybatis configuration mapping file--> <bean id="sqlSessionFactory"> <property name="dataSource" ref="dataSource" /> <!-- Automatic scanning of mapping.xml files--> <property name="mapperLocations" value="classpath:com/cjt/mapping/*.xml"></property> </bean> <!-- The Nombre del paquete Donde se encuentra la interfaz DAO, Spring encontrará automáticamente la clase en él-> <Bean> <Property Name = "BasePackage" value = "com.cjt.dao"/> <Property name = "sqlsessionFactoryBeanName" value = "sqlSessionFactory"> </protper> </bean> <!-(Transaction Management Manager, use JTATRACTIONSACTIONMAGER FOR GLOBE id = "TransActionManager"> <Property Name = "DataSource" ref = "DataSource"/> </bean> </beans>Todos los archivos anteriores se crean en la carpeta de recursos
5. Generar automáticamente el código de la base de datos
1) Crear una nueva tabla
Primero, creamos una nueva tabla user_t, y los campos son los siguientes:
2) Descargar paquete
Los paquetes de descarga incluyen: mybatis-3.2.6.jar , mybatis-generator-core-1.3.3.jar, mysql-confonector-java-5.1.39-bin.jar
3) Ejecutar - Generar automáticamente el código
Cree una nueva carpeta, incluidos los siguientes archivos
GeneratorConfig.xml es el archivo XML que genera el código, y el contenido es el siguiente:
<? xml versión = "1.0" encoding = "utf-8"?> <! DOCTYPE GeneratorConfiguration public "-// mybatis.org//dtd Configuración del generador de MyBatis 1.0 // en" "http://mybatis.org/dtd/mybatis-Generator-config_1_0.dtdd" <200 < name = "supressallComments" value = "true"/> </commentGenerator> <!-URL de enlace de base de datos, username, contraseña-> <jdbcconnection conductClass = "com.mysql.jdbc.driver" ConnectionUrl = "jdbc: mysql: // localhost: 3306/test" userid = "rooter" = "<" <"<jdbcconnection <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- Generate the package name and location of the model --> <javaModelGenerator targetPackage="com.cjt.domain" targetProject="src"> <property name="enableSubPackages" value="true"/> <property name = "trimStrings" value = "true"/> </javamodelGenerator> <!-Genere el nombre del paquete y la ubicación del archivo de asignación-> <sqlmapGenerator targetPackage = "com.cjt.mapping" targetProject = "src"> <name de propiedad = "enveableSubAckages" valor = "verdadero"/> </sqlmapGenerator> <!-Genere el nombre del paquete = "Nombre del paquete <! del dao-> <javaclientGenerator type = "xmlmapper" targetPackage = "com.cjt.dao" targetProject = "src"> <propiedad name = "enableSubpackage" value = "true"/> </javaClientGenerator> <!-La tabla a generar es el nombre de la tabla en el nombre database o el nombre de visión name Domaineo <table tableName = "user_t" domaineObjectName = "user" enableCountByExample = "false" EnableUpdateByExample = "false" habilitEleteByExample = "false" habildByExample = "false" selectbyExamplequeryId = "false"> </cuentre> </contexto> </generadorconfiguración>
Luego usamos el comando CMD para ingresar la carpeta recién creada e ingresar:
java -jar mybatis -generador -core -1.3.3.jar -configfile generadorconfig.xml -verwrite
Finalmente, se genera el código.
Nota: El código se genera automáticamente aquí a través de la línea de comandos, y los lectores también pueden generarlo a través del complemento de Eclipse.
6. Código Inicio
Cree un nuevo paquete, de la siguiente manera: (Las flechas se generan automáticamente códigos anteriores)
Iuserservice.java
Interfaz pública IUSERService {usuario público getUserById (int id); }UserServiceImpl.java
@ServicePublic Public UserServiceImpl implementa IUSERService {@AUTOWIREDIREDIRDIRED IUSERDAO USERDAO; public UserserviceImpl () {System.out.println ("UserServiceImpl"); } Public User getUserById (int id) {return userDao.SelectByPrimaryKey (id); }}UserController.java
@Controlador@requestmapping ("/user") public class UserController {public UserController () {System.out.println ("UserController"); } @Resource IUSERVICE IUSERVICE privado UserService; @RequestMapping ("/showUser") Cadena pública a IDEX (solicitud httpservletrequest, modelo modelo) {system.out.println ("UserController showUser"); int id = Integer.ParseInt (request.getParameter ("id")); Usuario usuario = Userservice.getUserById (id); model.addattribute ("usuario", usuario); regresar "showuser"; }}Cree un nuevo directorio JSP en Web-INF y cree un nuevo archivo showuser.jsp a continuación
showuser.jsp
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" PageEncoding = "utf-8" import = "java.util.*, com.cjt.domain.*"%> < "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <title> title aquí </titter> <body> <fody> <ser.username} </Body </htmlil>
Finalmente, adjunte web.xml
<? xml versión = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" " xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/Javaee/web-app_3_0.xsd" Versión = "3.0" Aplicación web </sipplave-name> <!-Archivos de configuración Spring y MyBatis-> <context-param> <amamname> contextConfigLocation </param-name> <amam-value> classpath: spring-mybatis.xml </param-value> </context-param> <!-Filtro de encodado-> <filter> <filter> name> encodingfilter </filtro> <Scilia-Class> org.springframework.web.filter.CharacteriCoDingFilter </filter-class> <async-supported> true </async-supported> <it-param> <amamamname> codificando </param-name> <amarry-Value> utf-8 </amam-value> </initero> </filtro> <filter-name> EncodingFilter </filter-name> <url-pattern>/*</url-pattern> </filtre-mapping> <!-spring oyeer-> <searcher-class> org.springframework.web.context.contextloaderListener </chearer-class> </oyear> <! <Oyerer-class> org.springframework.web.util.introspectORCleanupplistener </searer-class> </oyer> <!-spring mvc servlet-> <ervlet> <servlet-name> springmvc </servlet-name> <ervlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-name> <ervlet-class> org.springframework.web.servlet.dispatcherservlet </Servlet-class> <Initparam> <amamname> contextConfigLocation </amamname> <amam-value> classpath: spring-mvc.xml </amam-value> </it-param> <load-on-startup> 1 </load on-startup> <async-supported> true </async-supported> </servlet> <ervlet> <servlet> <servlet-mapping> <Servlet-name> springmvc </servlet-name> <!-Aquí puede configurar *.do, correspondiente al hábito de sufijo de los puntales-> <url-pattern>/</url-pattern> </servlet-mapping> <bequey-file-list> <deche-file> /index.jsp </ bequey-file> </beleve-file-list> </web-app>
Arriba, la generación de código está completa.
Se pueden descargar proyectos: https://github.com/cjt321/mavenspirngmvcmybatis
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.