下面来看java代码:
1、Control层代码:
- package com.hl.usersmanager.controller;
-
-
import java.util.List;
-
-
import org.springframework.beans.factory.annotation.Autowired;
-
import org.springframework.stereotype.Controller;
-
import org.springframework.ui.ModelMap;
-
import org.springframework.web.bind.annotation.RequestMapping;
-
-
import com.hl.usersmanager.model.Users;
-
import com.hl.usersmanager.service.IUserService;
-
-
@Controller
-
public class UserController {
-
-
@Autowired
-
private IUserService userService;
-
-
@RequestMapping(value = "findUserByName.do")
-
public String findUserByName(String name,ModelMap model) {
- Users users = userService.findUserByName(name);
-
model.addAttribute("userPhone",users.getPhone());
-
System.out.println("userPhone:" + users.getPhone());
-
return "showUser";
- }
-
- ……
- }
package com.hl.usersmanager.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import com.hl.usersmanager.model.Users;
import com.hl.usersmanager.service.IUserService;
@Controller
public class UserController {
// 使用注解实现自动装配 不需要再写get set方法以及在context中配置bean
@Autowired
private IUserService userService;
@RequestMapping(value = "findUserByName.do")
public String findUserByName(String name,ModelMap model) {
Users users = userService.findUserByName(name);
model.addAttribute("userPhone",users.getPhone());
System.out.println("userPhone:" + users.getPhone());
return "showUser";
}
……
}
在较低版本Spring中,Controller需要实现一个接口,在Spring3中,我们采用注解的方式实现。只需要加入一个@Controller注解即可(当然,你需要在配置文件中开启注解功能。可参考Spring3+mybatis+mysql整合详解(三))。
再使用注解声明一个IUserService(Service层接口)属性。
@RequestMapping(value = "findUserByName.do")表示拦截findUserByName.do的请求,交由被注解的方法处理。
findUserByName方法有两个参数,第一个参数name从页面上传入。由于我们需要找到Users后将其userPhone属性返回给页面,所以我们需要第二个参数model。这个参数由Spring自行封装,我们不管它。然后将users.getPhone()放入model中。就好像我们往response中放参数一样。
最后返回一个String类型的showUser,告诉Spring mvc这个Controller执行完了需要返回到showUser这个视图。具体由哪个页面进行渲染,由Spring mvc的视图解析器配置决定。当然findUserByName也可以使用其他返回类型。
这里有篇帖子讲得比较详细,分享给大家:
http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/
2、Service层代码
- package com.hl.usersmanager.service.impl;
-
-
import java.util.List;
-
-
import org.springframework.beans.factory.annotation.Autowired;
-
import org.springframework.stereotype.Service;
-
import org.springframework.transaction.annotation.Transactional;
-
-
import com.hl.usersmanager.dao.IUserMapper;
-
import com.hl.usersmanager.model.Users;
-
import com.hl.usersmanager.service.IUserService;
-
-
-
@Service
-
public class UserServiceImpl implements IUserService{
-
@Autowired
-
private IUserMapper userMapper;
-
-
@Override
-
@Transactional
-
public Users findUserByName(String name) {
-
return userMapper.findUserByName(name);
- }
-
- ……
- }
package com.hl.usersmanager.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.hl.usersmanager.dao.IUserMapper;
import com.hl.usersmanager.model.Users;
import com.hl.usersmanager.service.IUserService;
//使用Service注解 不需要再在配置文件中配置bean
@Service
public class UserServiceImpl implements IUserService{
@Autowired
private IUserMapper userMapper;
@Override
@Transactional
public Users findUserByName(String name) {
return userMapper.findUserByName(name);
}
……
}
首先,我们在Service层IUserService的实现类上加入@Service注解。UserController中就会自动装载这个bean。
这里我们配置了一个 @Transactional注解,表示需要进行事务管理(这里我没有写事务相关的代码)。
3、DAO层代码
- package com.hl.usersmanager.dao;
-
-
import java.util.List;
-
-
import com.hl.usersmanager.model.Users;
-
-
public interface IUserMapper {
-
public Integer insertUser(Users user);
-
-
public List<Users> findAllUsers();
-
-
public Users findUserByName(String name);
-
- }
package com.hl.usersmanager.dao;
import java.util.List;
import com.hl.usersmanager.model.Users;
public interface IUserMapper {
public Integer insertUser(Users user);
public List<Users> findAllUsers();
public Users findUserByName(String name);
}
使用Mybatis+Spring后,dao层只需要这样一个接口就行了。在配置文件中作如下配置:
-
-
<bean id="UserMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
-
<property name="sqlSessionFactory" ref="SqlSessionFactory" />
-
-
<property name="mapperInterface" value="com.hl.usersmanager.dao.IUserMapper" />
-
</bean>
<!-- 数据映射器类 mapper bean -->
<bean id="UserMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="sqlSessionFactory" ref="SqlSessionFactory" />
<!-- 注意指定的映射器类必须是一个接口,而不是具体的实现类 -->
<property name="mapperInterface" value="com.hl.usersmanager.dao.IUserMapper" />
</bean>
Mybatis会自动创建代理类,执行接口中的方法。当然还需要数据映射器的配置。参见Spring3+mybatis+mysql整合详解(四)。
整个结构就是这样。需要完整源代码的请访问http://my249645546.iteye.com/blog/1413847 ,进行下载(不含jar包)
相关推荐
NULL 博文链接:https://mgxy123.iteye.com/blog/1562364
NULL 博文链接:https://mgxy123.iteye.com/blog/1562361
Spring+SpringMVC+Mybatis+Maven+MySql项目框架 加分页,详解适合新手 初步学习搭建框架 maven 以及分页技术的应用
Spring+SpringMVC+Mybatis+Maven+MySql项目框架 加分页详解适合新手学习.zip
主要给大家介绍了关于利用Spring MVC+Mybatis实现Mysql分页数据查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
它由 MySQL 的原始开发者制作,并保证保持开源。它是大多数云产品的一部分,也是大多数Linux发行版的默认配置。MariaDB 被设计为 MySQL 的直接替代产品,具有更多功能,新的存储引擎,更少的错误和更好的性能。它...
本项目实用Spring + Spring MVC + Mybatis。数据库实用Mysql数据库 项目主要涉及,SSM框架的配置搭建,涉及Mybatis一对多的插入和查询,同时也涉及到一些简单的文件上传和下载.
主要介绍了Spring整合MyBatis(Maven+MySQL)图文教程详解的相关资料,需要的朋友可以参考下
基于现如今流行的SSM(spring springMVC mybatis mysql)框架的hrm人事管理系统后台实例 sql代码与详解:http://blog.csdn.net/csdn___lyy/article/details/72887390
主要介绍了Spring mvc整合mybatis(crud+分页插件)操作mysql的步骤详解,需要的朋友可以参考下
MyBatis 详解与配置 MyBatis MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的 JDBC 代码、手工设置参数和结果集重获。MyBatis 只使用简单的 XML 和注解来配置和映射基本...
# Spring Boot 集成 MyBatis, 分页插件 PageHelper, 通用 Mapper ## 项目依赖 ```xml <!--mybatis--> <groupId>org.mybatis.spring.boot <artifactId>mybatis-spring-boot-starter <version>1.1.1 <!...
springboot配置文件模板:包括多环境开发布置,端口号配置,全局jackson配置,mysql数据库配置,oracle数据库配置,连接池配置,redis配置,redis链接池的配置,设置上传文件大小限制配置,全局格式化时间配置,https证书配置...
spring4.2.4+mybatis3.2.8+c3p0-0.9.1.2+Mysql5.6.24 二、c3p0的配置详解及spring+c3p0配置 1.配置详解 官方文档 : http://www.mchange.com/projects/c3p0/index.html <!--当连接池中的连接耗尽的时候c3p0一次...
springboot入门demo合集,springboot+mybatis+mysql实例,springboot文件上传下载,springboot拦截器等等关于springboot的基础demo都有,同步学习网站:https://www.moyundong.com/java/springboot/1介绍.html
3.使用 DriverManager.getConnection(url, userName, passWord) 创建数据库对象 4.创建执行Sql对象 connection.createStatement() 5.通过statement对象执行具体的Sql statement.executeQuery(sql) 6.最后关闭...
3 Spring Boot与日志 42 3.1 日志框架分类和选择 42 3.2 SLF4j使用 43 3.3 其他日志框架统一转换成slf4j+logback 44 3.4 Spring Boot日志使用 45 3.5 Spring Boot默认配置 47 3.6 指定日志文件和日志Profile功能 52 ...
BOOT客户管理系统详解 BOOT客户管理系统是一个基于SSM(SpringMVC、Spring、MyBatis)的客户管理系统,旨在提供一个完整的客户管理解决方案。下面是该系统的详细介绍: 系统架构 BOOT客户管理系统采用SSM架构,...
本资源包含Java面试题及详解,包含Java基础、JVM、多线程&并发、Spring、MyBatis、SpringBoot、MySQL、Spring Cloud、Dubbo、Nginx、MQ、Linux、ZooKeeper、Redis、分布式、网络、设计模式、ES等相关技术的常见面试...
通过实际测试对比了Spring Boot中6种MySQL批量更新方式的效率,并详细记录了每种方法在处理500,1000,5000,10000,50000,100000条数据的平均时间、最小时间和最大时间。包括MyBatis-Plus提供的批量更新,JdbcTemplate...