Spring+SpringMVC+Mybatis 简单的整合实例
2017-05-18 16:53
405 查看
自己搭了一个SSM的简易框架,其中也遇到了很多问题,记录下来,遇到问题纠结是正常的,敲代码就是如此,慢慢磨,各种渠道磨,总会解决的。
工程总体目录如下图:
用到的 jar 包:
先导入jar包。
分成了四个配置文件+web.xml文件
【spring.xml[b]】:[/b]springMVC 的主要配置文件,配置比较简单,具体里面都写了注释,如下:
【spring-mybatis.xml[b]】:[/b]spring和mybatis的整合配置文件
【mybatis.xml[b]】:[/b]mybatis的配置文件,主要是mappers标签配置,上面的settings是mybatis的参数,具体可以百度之
【jdbc.properties[b]】:[/b]数据库连接配置。
【web.xml[b]】[/b]其中主要是监听器和前端控制器的配置。
用的数据库是mysql,先建立一张用户表 t_user 表,字段很简单,建表语句如下:
插入一条数据:
接下来就是 java 类的编写。
新建用户实体类,只有几个字段(id,姓名,年龄,地址)这个可以根据自己的需求来(实体类也可以不写spring 注解,当然写了更加规范一些)。
新建dao 接口(此处无需加springMVC的注解,亲测无误!)
新建mapper 文件(有了该文件就相当于 dao的实现类 XXXdaoImpl了,无需再写写 dao 接口的实现类了)
接下来是 service 层,用于调用 dao 层。
IUserService 接口(此处无需加spring的注解,亲测无误!这里特别说一下原因是搭建时参考了很多网上的资料,有很多都说需要在接口处添加注解,但是后来自己试了之后发现并不需要,故特此记录。)
IUserService 接口的实现类 UserServiceImpl
编写 核心控制器 UserController 调用 service 层,为了简便,就只写了一个方法。
接下来写 loginSuccess.jsp 页面,也就是 UserController.java 中getUser 方法要跳转的页面,也是怎么简单怎么来,接受响应的结果,打印姓名和年龄,如下:
至此,编码工作全部完成。接下来就是编译项目,无误之后部署到 tomcat 服务器上,这些步骤就省略了(懒!)
在浏览器输入请求地址(原谅我懒的写jsp页面了)http://localhost:8080/springMVC/getUser.lj
springMVC是项目名称,可自行在项目属性中更改,请求响应页面如下:
为了简单,因此没有加其他功能了,比如log4j 日志,只要框架流程通了,这些可以根据自己的需要在次基础上添加。
工程总体目录如下图:
用到的 jar 包:
先导入jar包。
分成了四个配置文件+web.xml文件
【spring.xml[b]】:[/b]springMVC 的主要配置文件,配置比较简单,具体里面都写了注释,如下:
<!-- 组件扫描路径 --> <context:component-scan base-package="com" > </context:component-scan> <!-- SpringMVC 激活基于注解的配置 --> <mvc:annotation-driven /> <!-- 视图解析器配置 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/page/"/> <property name="suffix" value=".jsp"/> </bean>
【spring-mybatis.xml[b]】:[/b]spring和mybatis的整合配置文件
<!-- 1. 配置数据源 : DriverManagerDataSource --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass"><value>${jdbc.driver}</value></property> <property name="jdbcUrl"><value>${jdbc.url}</value></property> <property name="user"><value>${jdbc.user}</value></property> <property name="password"><value>${jdbc.password}</value></property> <property name="initialPoolSize" value="50" /> <property name="minPoolSize" value="20" /> </bean> <!-- 2. mybatis的SqlSession的工厂,dataSource:引用数据源;configLocation:指向mybatis.xml --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:config/mybatis.xml" /> </bean> <!-- 3. DAO接口所在包名,Spring会自动查找其下的类,有了该配置可以不用写具体的DAO实现类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.dao"></property> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean>
【mybatis.xml[b]】:[/b]mybatis的配置文件,主要是mappers标签配置,上面的settings是mybatis的参数,具体可以百度之
<configuration> <!-- could be omitted in sake of defaults --> <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="false"/> <setting name="aggressiveLazyLoading" value="false"/> <setting name="autoMappingBehavior" value="FULL"/> <setting name="multipleResultSetsEnabled" value="true"/> <setting name="useColumnLabel" value="true"/> <setting name="useGeneratedKeys" value="false"/> </settings> <!-- 配置mapper路径,如果有多个可以在下面添加多个 --> <mappers> <mapper resource="com/mapper/User.xml"/> </mappers> </configuration>
【jdbc.properties[b]】:[/b]数据库连接配置。
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://X.X.X.X\:3306/XXX?useUnicode\=true&characterEncoding\=UTF-8 jdbc.user=root jdbc.password=root jdbc.initialPoolSize=50 jdbc.minPoolSize=20 jdbc.maxPoolSize=200
【web.xml[b]】[/b]其中主要是监听器和前端控制器的配置。
<!-- 监听器,在启动Web容器时,自动装配spring-mybatis.xml配置信息。 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring-mybatis.xml</param-value> </context-param> <!-- 统一编码 --> <filter> <filter-name>charsetEncoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</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>charsetEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 前端控制器 --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring.xml</param-value> </init-param> <!-- 加载/WEB-INF/[servlet-name]-servlet.xml --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>*.lj</url-pattern> </servlet-mapping>
用的数据库是mysql,先建立一张用户表 t_user 表,字段很简单,建表语句如下:
CREATE TABLE t_user( id INT (3) PRIMARY KEY NOT NULL AUTO_INCREMENT, NAME VARCHAR(10) NOT NULL , age INT(3) NOT NULL , addr VARCHAR(100) NOT NULL , timestamp_C TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );
插入一条数据:
接下来就是 java 类的编写。
新建用户实体类,只有几个字段(id,姓名,年龄,地址)这个可以根据自己的需求来(实体类也可以不写spring 注解,当然写了更加规范一些)。
// id private int id; // 姓名 private String name; // 年龄 private int age; // 地址 private String addr; // get、set方法省略
新建dao 接口(此处无需加springMVC的注解,亲测无误!)
public interface IuserDao { // 添加 void save(User user); // 修改 void update(User user); // 删除 void delete(int id); // 查找 User getUser(int id); }
新建mapper 文件(有了该文件就相当于 dao的实现类 XXXdaoImpl了,无需再写写 dao 接口的实现类了)
<?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:必须与对应的接口全类名一致 id:必须与对应接口的某个对应的方法名一致 --> <mapper namespace="com.dao.IuserDao"> <insert id="save" parameterType="com.model.User"> insert into t_user(name,age) values(#{name},#{age}) </insert> <update id="update" parameterType="com.model.User"> update t_user set name=#{name},user_age=#{age} where id=#{id} </update> <delete id="delete" parameterType="int"> delete from t_user where id=#{id} </delete> <select id="getUser" parameterType="int" resultType="com.model.User"> select id,name,age,addr from t_user where id=#{id} </select> </mapper>
接下来是 service 层,用于调用 dao 层。
IUserService 接口(此处无需加spring的注解,亲测无误!这里特别说一下原因是搭建时参考了很多网上的资料,有很多都说需要在接口处添加注解,但是后来自己试了之后发现并不需要,故特此记录。)
public interface IUserService { public User getUserById(int id); }
IUserService 接口的实现类 UserServiceImpl
@Service("userService") public class UserServiceImpl implements IUserService { @Autowired private IuserDao user; // 此处的变量名可以随意命名,因为@Autowired 是按类型的。 public com.model.User getUserById(int id) { return user.getUser(id); } }
编写 核心控制器 UserController 调用 service 层,为了简便,就只写了一个方法。
@Controller public class UserController { @Autowired private IUserService userService; @RequestMapping("/getUser") public ModelAndView getUser(){ User user = userService.getUserById(1); ModelAndView model = new ModelAndView(); model.addObject("user", user); model.setViewName("loginSuccess"); return model; } }
接下来写 loginSuccess.jsp 页面,也就是 UserController.java 中getUser 方法要跳转的页面,也是怎么简单怎么来,接受响应的结果,打印姓名和年龄,如下:
<body> <div align="center"><h1>登录成功</h1></div> <h1 align="center">欢迎,${user.name},${user.age}!</h1> </body>
至此,编码工作全部完成。接下来就是编译项目,无误之后部署到 tomcat 服务器上,这些步骤就省略了(懒!)
在浏览器输入请求地址(原谅我懒的写jsp页面了)http://localhost:8080/springMVC/getUser.lj
springMVC是项目名称,可自行在项目属性中更改,请求响应页面如下:
为了简单,因此没有加其他功能了,比如log4j 日志,只要框架流程通了,这些可以根据自己的需要在次基础上添加。
相关文章推荐
- Spring MVC+Mybatis+Maven+Velocity+Mysql整合实例
- SpringMVC+Hibernate+Spring 简单的一个整合实例
- Spring+SpringMVC+mybatis+easyui整合实例(一)实例介绍
- Spring+SpringMVC+mybatis+easyui整合实例(四)easyUI界面部分
- 简单整合Spring+SpringMVC+Mybatis
- Spring MVC+Mybatis+Maven+Velocity+Mysql整合实例
- Spring+SpringMVC+mybatis+easyui整合实例-----easyUI界面部分
- 简单的SpringMVC+Mybatis整合
- Spring+SpringMVC+mybatis+easyui整合实例(六)mybatis一对一、一对多关联查询
- Spring+SpringMVC+mybatis+easyui整合实例(一)实例介绍
- spring+mybatis+springMvc+maven简单整合
- springmvc+spring+mybatis整合实例
- Spring+SpringMVC+mybatis+easyui整合实例(三)spring mvc整合及mybatis事务部分
- SpringMVC+Mybatis整合实现简单权限控制系统代码
- spring mvc+mybatis整合实例讲解
- Spring MVC+Mybatis+Maven+Velocity+Mysql整合实例
- spring、mybatis、mvc 整合简单例子
- Spring+SpringMVC+Mybatis+Mysql整合实例
- SpringMVC + Spring + Mybatis + Maven整合实例
- Spring+SpringMVC+mybatis+easyui整合实例----使用mybatis拦截器分页