创建SpringMVC+Mybatis项目
2017-09-04 13:35
183 查看
创建maven的web项目
next后面自己写
配置pom.xml
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <!-- 表示开发的时候引入,发布的时候不会加载此包 --> <scope>test</scope> </dependency> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>4.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.1.0.RELEASE</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- 导入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <!-- JSTL标签类 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- 日志文件管理包 --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</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>1.7.7</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.12</version> </dependency> <!-- log end --> <!-- 映入JSON --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.3</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>
配置web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <servlet> <servlet-name>spring-mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
配置spring-servlet.xml
在resource目录下创建spring-servlet.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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 引入配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:*.properties</value> </list> </property> </bean> <!--注解自动扫描--> <context:component-scan base-package="com.demo" /> <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 --> </list> </property> </bean> <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8" index="0"></constructor-arg><!-- 避免出现乱码 --> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> <!-- 文件下载 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="2048" /> </bean> <import resource="classpath:spring-ds.xml" /> </beans>
数据库连接配置
配置jdbc.properties#jdbc jdbc.driver=com.mysql.jdbc.Driver jdbc.username=root jdbc.password=1234 jdbc.url=jdbc:mysql://127.0.0.1:3306/mydatabase?useUnicode=true&characterEncoding=utf-8 initialSize=0 maxActive=20 maxIdle=20 minIdle=1 maxWait=60000
配置spring-ds.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:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!-- JDBC配置 --> <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}" /> <!-- 初始化连接大小 --> <property name="initialSize" value="${initialSize}"></property> <!-- 连接池最大数量 --> <property name="maxActive" value="${maxActive}"></property> <!-- 连接池最大空闲 --> <property name="maxIdle" value="${maxIdle}"></property> <!-- 连接池最小空闲 --> <property name="minIdle" value="${minIdle}"></property> <!-- 获取连接最大等待时间 --> <property name="maxWait" value="${maxWait}"></property> </bean> <!-- mybatis 配置 SQLSession模板 --> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" scope="prototype"> <constructor-arg index="0" ref="sqlSessionFactory" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" /> <!--扫描mapper文件留个地方--> <property name="mapperLocations" > <list> <value>classpath:mybatis/mapper/**/*.xml</value> </list> </property> </bean> <!-- spring与mybatis整合配置,扫描所有dao --> <bean id="mybatisMapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.demo.dao.**" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean> <!--spring 的JDBC模板 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"> </property> </bean> <!-- 事务配置 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> </beans>
mybatis配置
在resource目录下创建mybatis目录。然后创建mybatis-config.xml<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties> <property name="dialect" value="MYSQL"/> </properties> <settings> <setting name="cacheEnabled" value="false" /> <setting name="lazyLoadingEnabled" value="true" /> <setting name="multipleResultSetsEnabled" value="true" /> <setting name="useColumnLabel" value="true" /> <setting name="defaultExecutorType" value="SIMPLE" /> <!-- 默认全局超时都设置成30秒 --> <setting name="defaultStatementTimeout" value="30"/> </settings> </configuration>
在resource/mybatis目录下创建mapper目录, mybatis相关mapper文件放在resource/mybatis/mapper目录下。
这里推荐使用mybatis_generator插件生成数据库对应的mybatis的mapper文件和实体类
简单的generator配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <classPathEntry location="C:\Users\Desktop\mybatis\mysql-connector-java-5.1.26.jar" /> <context id="MysqlContext" targetRuntime="MyBatis3" defaultModelType="flat"> <commentGenerator> <property name="suppressAllComments" value="true"/> <property name="suppressDate" value="true"/> </commentGenerator> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/myDatabase" userId="root" password="1234"> </jdbcConnection> <javaModelGenerator targetPackage="com.demo.entity" targetProject="java"> <property name="trimStrings" value="true" /> </javaModelGenerator> <sqlMapGenerator targetPackage="user" targetProject="resources/mybatis"/> <!--生成Dao文件 可以配置 type="XMLMAPPER"生成xml的dao实现 context id="DB2Tables" 修改targetRuntime="MyBatis3" --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.demo.dao" targetProject="java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <table tableName="user" domainObjectName="User"> <generatedKey column="id" sqlStatement="Mysql" identity="true"/> </table> </context> </generatorConfiguration>
建议:工具生成的文件最好不用动,表字段如果有更新直接覆盖文件,如果需要手写sql,最好把自己新增的sql创建一个新文件 xxxxMapper_extend.xml,然后在里面写,对应的DAO也用一个新的dao继承原来工具创建的DAO。
这里我创建一个user表,用工具生成对应的文件,文件结构如下,UserMapper即DAO
然后配置log4j
log4j.rootLogger = DEBUG, Console log4j.appender.A = org.apache.log4j.ConsoleAppender log4j.appender.A.Target = System.out log4j.appender.A.layout = org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern = %p %t %c - %m%n log4j.appender.B = org.apache.log4j.DailyRollingFileAppender log4j.appender.B.File = logs/log.log log4j.appender.B.Append = true log4j.appender.B.Threshold = DEBUG log4j.appender.B.layout = org.apache.log4j.PatternLayout log4j.appender.B.layout.ConversionPattern = %p %t %c - %m%n log4j.appender.C = org.apache.log4j.DailyRollingFileAppender log4j.appender.C.File = logs/error.log log4j.appender.C.Append = true log4j.appender.C.Threshold = ERROR log4j.appender.C.layout = org.apache.log4j.PatternLayout log4j.appender.C.layout.ConversionPattern =%p %t %c - %m%n #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=INFO log4j.logger.java.sql.Statement=INFO log4j.logger.java.sql.PreparedStatement=INFO
创建一个简单的demo
1.创建service接口&实现类public interface UserService { Object doAddUser(User user); }
@Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; public Object doAddUser(User user) { userMapper.insertSelective(user); return user; } }
2.创建controller
@Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @ResponseBody @RequestMapping("/addUser") public Object addUser(String name){ User user = new User(); user.setName(name); user = (User) userService.doAddUser(user); return user; } }
3.修改默认的index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test</title> </head> <body> <h2> 用户名:<input type="text" value="" id="name"> <input type="button" id="add" value="测试添加"></br> <span id="result"></span> </h2> </body> <script type="text/javascript" src="/js/jquery-1.10.2.js"></script> <script type="text/javascript"> $('#add').click(function () { $.ajax({ url:'/user/addUser', type:'post', data:{ name:$('#name').val() }, dataType:'json', success:function (data) { $('#result').html('添加成功,用户ID:'+data.id); } }) }) </script> </html>
这里我加入了jquery.js ,你们自己下一个加进去。
配置tomcat
效果
项目已上传至github:https://github.com/StoneKings/Base_web_SM.git
相关文章推荐
- [置顶] idea创建maven,spring,springmvc,mybatis,项目(三)
- idea创建maven,spring,springmvc,mybatis,项目(三)
- Intellij Idea创建基于Maven的SpringMVC+MyBatis项目
- SpringMVC创建web项目基础之(二)——Spring MVC与Mybatis整合详解
- idea创建maven,spring,springmvc,mybatis,项目(二)
- Maven下的Spring-springmvc-mybatis框架一(创建Maven项目)
- 使用maven 创建 springmvc整合mybatis项目 踩过的坑
- [置顶] idea创建maven,spring,springmvc,mybatis,项目(二)
- Intellij IDEA 创建 Maven + Spring + SpringMVC + MyBatis 项目
- Maven搭建SpringMVC+Mybatis项目详解
- Spring+Springmvc+Mybatis+Maven创建Web项目实践
- 【springmvc+mybatis项目实战】杰信商贸-23.重点知识回顾
- 项目视频讲解_基于SpringMVC、MyBatis、FreeMarker架构实战CMS大型门户网站(自定义模板)
- SpringMVC 4 + MyBatis 3 + Spring 4 快速搭建企业项目教程
- Maven搭建SpringMVC+Mybatis项目详解
- 【springmvc+mybatis项目实战】杰信商贸-7.生产厂家新增
- Maven搭建SpringMVC+Mybatis项目详解
- 【springmvc+mybatis项目实战】杰信商贸-34.业务出口报运WebService1
- 【springmvc+mybatis项目实战】杰信商贸-18.附件分类基础表+数据字典
- 【springmvc+mybatis项目实战】杰信商贸-10.生产厂家停用+启用