在前两章文章中的项目基础上 我们先添加 需要用到的依赖 ~
如果是新看到的同学可以去在这篇文章底部找下下载地址~
com.alibaba
druid
1.1.10
org.mybatis
mybatis
3.3.1
org.mybatis
mybatis-spring
1.2.5
org.springframework
spring-tx
4.3.20.RELEASE
org.springframework
spring-jdbc
4.3.20.RELEASE
com.github.pagehelper
pagehelper
5.0.4
mysql
mysql-connector-java
5.1.40
com.fasterxml.jackson.core
jackson-core
2.8.0
com.fasterxml.jackson.core
jackson-databind
2.8.0
然后创建一个数据库的配置文件:jdbc.properties
driver=com.mysql.jdbc.Driver
#地址和数据库用户密码别忘了换成自己的
url = jdbc:mysql://192.168.153.128:3306/test
username=root
password=root
initialSize=10
maxActive=200
maxIdle=50
minIdle=10
maxWait=60000
需要检查查数据是否准确 我把我的sql拿出来 嫌麻烦直接运行~
-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'name1');
INSERT INTO `user` VALUES ('2', 'name2');
INSERT INTO `user` VALUES ('3', 'name3');
INSERT INTO `user` VALUES ('4', 'name4');
INSERT INTO `user` VALUES ('5', 'name5');
INSERT INTO `user` VALUES ('6', 'name6');
INSERT INTO `user` VALUES ('7', 'name7');
创建mybatis的配置文件里面引用插件PageHelper:mybatis.config
内容如下:
修改文件ApplicationContext.xml
上一章我们把 context:component-scan
注释掉了 后续写声明式事务会详细讲在这里先提一下
如果@Transactional 加在Service上 这里就有必要去扫描下 service的包 Spring-mvc的配置文件就不需要再去扫描service包了 否则@Transactional 将不会生效
ApplicationContext.xml
文件内容如下:
然后修改文件ApplicationContext-mvc.xml
将context:component-scan
扫描范围指定为只扫描Controller
在这里先放下项目结构图
我们先创建User
实体为UserMapper.xml
提供服务,内容如下:
package com.ssm.pojo.user;
public class User {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
}
然后创建UserMapper.xml
内容如下,很简单 就是一个查全表的sql:
id, name
然后创建Mapper接口,我们调用Mapper接口方法时 返回的就是 Mapper.xml中的 数据集合 相当于UserMapper.xml重写了UserMapper.java 的方法,内容如下:
package com.ssm.dao.user;
import com.ssm.pojo.user.User;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface UserMapper {
List getAll();
}
然后创建UserServcie
内容如下,一个方法是查全表 一个是整合PageHelper分页查询:
package com.ssm.service.user;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ssm.dao.user.UserMapper;
import com.ssm.pojo.user.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServcie {
@Autowired
private UserMapper userMapper;
public List findUserList() {
List list = userMapper.getAll();
return list;
}
public List findUserListPage() {
// pageHelper 开启分页 当前第一页 每页3条
PageHelper.startPage(1,3);
// 当前线程开启分页后第一个查询 使用分页
List list = userMapper.getAll();
// 获取分页信息
PageInfo result = new PageInfo<>(list);
// 获取分页查询后的list => result.getList()
System.out.println(result.getList().toString());
System.out.println(result.getList().size());
return result.getList();
}
}
然后我们在TestController 中添加方法 验证下我们的整合是否成功,内容如下:
package com.ssm.controller;
import com.ssm.service.user.UserServcie;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value = "test")
public class TestController {
private Logger logger = Logger.getLogger(TestController.class);
@Autowired
private UserServcie userServcie;
@RequestMapping(params = "firstMethod")
public String firstMothed() {
// testService.firstService();
return "hello";
}
@RequestMapping(params = "secondMethod")
@ResponseBody
public String secondMethod() {
return "hello";
}
@RequestMapping(params = "thirdMethod")
@ResponseBody
public Object thirdMethod() {
return userServcie.findUserList();
}
@RequestMapping(params = "fourthMethod")
@ResponseBody
public Object fourthMethod() {
return userServcie.findUserListPage();
}
}
然后我们启动项目 在项目根目录后面加上 test.do?thirdMethod
然后我们启动项目 在项目根目录后面加上 test.do?fourthMethod
测试分页 1到3条
如果需要把sql打印出来,在log4j文件中添加下面这一句话,并把输出级别加上DEBUG
log4j.rootLogger=INFO,DEBUG, stdout
#mapper映射目录路径,dao接口在哪个目录下面改成log4j.logger.xxx.xxx
log4j.logger.com.ssm.dao=DEBUG
打印出的sql如下图所示
没有问题了 整合完毕 下章我们将Spring声明式事务~
IDEA: spring+mybatis+springMVC SSM框架(二) spring 整合 springMVC
IDEA: spring+mybatis+springMVC SSM框架(一) 搭建spring环境
此项目下载地址
有问题的话欢迎评论 大家一起学习 一起进步~