博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring+Spring MVC+MyBatis整合
阅读量:6173 次
发布时间:2019-06-21

本文共 6902 字,大约阅读时间需要 23 分钟。

一、准备工作

    1.1导入所需jar包                                                    

    

  

  1.2数据库

  

  

CREATE TABLE `t_customer` (  `id` int(32) NOT NULL AUTO_INCREMENT,  `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,  `jobs` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,  `phone` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,  PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;

 

 二、编写配置文件

  2.1编写db.propertise文件 

#dataSource#Thu Mar 07 16:27:40 CST 2019jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/smjdbc.username=rootjdbc.password=123456jdbc.maxTotal=30jdbc.maxIdle=10jdbc.initialSize=5

 

  2.2在src目录下创建beans.xml(applicationContext.xml) 

 

    2.3在src目录下创建mybatis-congfig.xml

 

    2.4在src目录下创建springmvc-config.xml

    
  

    

  2.5web.xml

SSM
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
contextConfigLocation
classpath:beans.xml
org.springframework.web.context.ContextLoaderListener
encoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encoding
*.action
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc-config.xml
1
springmvc
/

 

三、测试整合

  3.1在src目录下创建com.ssm.po包,并创建Customer类

 

Customer.java

package com.ssm.po;public class Customer {    private Integer id;    private String username;    private String jobs;    private String phone;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getJobs() {        return jobs;    }    public void setJobs(String jobs) {        this.jobs = jobs;    }    public String getPhone() {        return phone;    }    public void setPhone(String phone) {        this.phone = phone;    }    @Override    public String toString() {        return "Customer [id=" + id + ", username=" + username + ", jobs=" + jobs + ", phone=" + phone + "]";    }}

 

  3.2在src目录下创建com.ssm.dao包,并创建接口文件CustomerDao.java和映射文件CustomerDao.xml

  CustomerDao.java

package com.ssm.dao;import com.ssm.po.Customer;public interface CustomerDao {    public Customer findCustomerById(Integer id);}

 

  CustomerDao.xml

  注:接口文件和映射文件的名称要保持一致,映射文件namespace名称要符合规范。

    接口方法名和映射文件语句id,返回值类型、参数类型要保持一致。

    两个文件要在同一包中。

 

 

  3.3在src目录下创建com.ssm.service包,并创建接口文件CustomerService.java 

package com.ssm.service;import org.springframework.stereotype.Service;import com.ssm.po.Customer;@Servicepublic interface CustomerService {    public Customer findCustomerById(Integer id);}

 

  3.4在src目录下创建com.ssm.service.Impl包,并在其中创建CustoemrService接口的实现类CustomerServiceImpl.java

  CustomerService.java

package com.ssm.service.Impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import com.ssm.dao.CustomerDao;import com.ssm.po.Customer;import com.ssm.service.CustomerService;@Service   //标记当前类,通过扫描注册@Transactionalpublic class CustomerServiceImpl implements CustomerService{    @Autowired //按类型自动装配    private CustomerDao customerDao;        @Override    public Customer findCustomerById(Integer id) {        return this.customerDao.findCustomerById(id);    }}

 

    3.5在src目录下创建com.ssm.controller包,并创建CustomerController类

  CustomerController.java

package com.ssm.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import com.ssm.po.Customer;import com.ssm.service.CustomerService;@Controller //标注为控制类,自动扫描public class CustomerController {    @Autowired //按类型自动装配    private CustomerService customerService;        @RequestMapping("/findCustomerById")    public String findCustomerById(Integer id, Model model) {
Customer customer = customerService.findCustomerById(id); model.addAttribute("customer", customer); return "customer";//返回WEB-INF/jsp/customer.jsp }}

 

   3.6在WEB-INF目录下创建文件夹jsp,并在其中创建customer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here
id 姓名 职业 电话
${customer.id} ${customer.username} ${customer.jobs} ${customer.phone}

启动服务器,添加项目。

地址栏输入:

项目结构:

 

常见错误:

1、配置文件中书写错误,例如classpath拼写错误、文件名拼写错误(beans.xml写错了benas.xml)。

2、com.ssm.service.Impl写成了com.ssm.serviceImpl,

   在beans.xml中配置的:

    <context:component-scan base-package="com.ssm.service"/>(会扫描com.ssm.service及com.ssm.service.*)

 不会扫描com.ssm.serviceImpl.

3、com.ssm.dao中映射文件和接口文件不匹配。

4、注解导入错误:注意导入的注解多是org.springframework中的注解。

5、视图解析器前后缀配置错误,找不到路径。

7、RequestMapping("xxx")中设置路径与地址栏输入路径不一致。

8. 文件中未设置自动扫描,找不到指定类。

   

 

转载于:https://www.cnblogs.com/huang-changfan/p/10497589.html

你可能感兴趣的文章
为Liferay运行提速
查看>>
GitLab 版本控制器
查看>>
常见数据结构(二)-树(二叉树,红黑树,B树)
查看>>
Elasticsearch 5.0-基础概念
查看>>
MFMailComposeViewController 发邮件
查看>>
velocity 模板解析类
查看>>
HTTP以及HTTPS协议
查看>>
Browser:浏览器版本判断类
查看>>
第六章:Hystrix监控面板及数据聚合(Turbine)
查看>>
MyEclipse Servers视窗出现“Could not create the view: An unexpected exception was thrown”错误解决办法...
查看>>
面包屑的由来
查看>>
伪类和伪元素
查看>>
jquery
查看>>
ionic+js+html5 飞行射击游戏
查看>>
c++ stl vector erase 操作
查看>>
17年2月末用时两天的(按周统计订单金额)
查看>>
SSL工作原理
查看>>
android BitmapFactory的OutOfMemoryError: bitmap ...
查看>>
微信开发-错误码
查看>>
Day 3:模块结构和布局
查看>>