当前位置: 首页 > wzjs >正文

淘宝联盟网站备案网站建设+公司

淘宝联盟网站备案,网站建设+公司,中国室内设计公司,网页设计基础实训本文将详细讲解如何整合Spring、Spring MVC和MyBatis(SSM框架),通过一个人员信息查询案例展示完整开发流程。所有代码基于提供的文件实现。一、项目结构src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── qcb…

本文将详细讲解如何整合Spring、Spring MVC和MyBatis(SSM框架),通过一个人员信息查询案例展示完整开发流程。所有代码基于提供的文件实现。

一、项目结构
src/
├── main/
│   ├── java/
│   │   └── com/
│   │       └── qcby/
│   │           ├── controller/   # 控制层
│   │           │   └── PersonController.java
│   │           ├── dao/          # 数据访问层
│   │           │   └── PersonDao.java
│   │           ├── entity/       # 实体类
│   │           │   └── Person.java
│   │           └── service/      # 服务层
│   │               ├── PersonService.java
│   │               └── impl/
│   │                   └── PersonServiceImpl.java
│   ├── resources/
│   │   ├── mapper/              # MyBatis映射文件
│   │   │   └── PersonMapper.xml
│   │   ├── jdbc.properties      # 数据库配置
│   │   ├── spring.xml           # Spring配置
│   │   └── SpringMVC.xml        # Spring MVC配置
│   └── webapp/
│       ├── html/
│       │   ├── index.html       # 首页
│       │   └── person.html      # 人员页面
│       └── WEB-INF/
│           └── web.xml          # Web配置
二、核心实现步骤
1. 实体类(Person.java)
package com.qcby.entity;public class Person {private Integer id;private String name;private String sex;private Integer age;private String idCard;private String phone;// Getter/Setter和toString()省略
}
2. MyBatis映射文件(PersonMapper.xml)
<?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">
<mapper namespace="com.qcby.dao.PersonDao"><select id="findAll" resultType="Person">SELECT id, name, sex, age, idCard, phone FROM person</select>
</mapper>
3. 控制层(PersonController.java)
@Controller
public class PersonController {@Autowiredprivate PersonService personService;// 跳转到人员页面@RequestMapping("/toPerson")public String toPerson() {return "person"; // 对应html/person.html}// 查询所有人员(返回JSON)@RequestMapping("/findAll")@ResponseBodypublic List<Person> findAll() {return personService.findAll();}
}
4. 服务层(PersonServiceImpl.java)
@Service
public class PersonServiceImpl implements PersonService {@Autowiredprivate PersonDao personDao;@Overridepublic List<Person> findAll() {return personDao.findAll();}
}
三、关键配置详解
1. Spring配置(spring.xml)
<!-- 数据源配置 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${jdbc.url}"/><property name="driverClassName" value="${jdbc.driver}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/>
</bean><!-- MyBatis整合 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="typeAliasesPackage" value="com.qcby.entity"/><property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean><!-- Mapper接口扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.qcby.dao"/>
</bean>
2. Spring MVC配置(SpringMVC.xml)
<!-- 视图解析器(Thymeleaf) -->
<bean id="viewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver"><property name="templateEngine" ref="templateEngine"/><property name="characterEncoding" value="UTF-8"/>
</bean><bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"><property name="templateResolver" ref="templateResolver"/>
</bean><bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver"><property name="prefix" value="/html/"/><property name="suffix" value=".html"/>
</bean><!-- 支持JSON响应 -->
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
3. Web配置(web.xml)
<!-- 字符编码过滤器 -->
<filter><filter-name>encodingFilter</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>
</filter><!-- Spring MVC前端控制器 -->
<servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:SpringMVC.xml</param-value></init-param>
</servlet>
四、前端页面示例
1. 首页(index.html)
<!DOCTYPE html>
<html>
<head><title>首页</title>
</head>
<body><h1>欢迎使用人员管理系统</h1><a href="/toPerson">查看人员列表</a>
</body>
</html>
2. 人员页面(person.html)
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><title>人员信息</title><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script><script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body><div id="app"><table border="1"><tr><th>ID</th><th>姓名</th><th>性别</th><th>年龄</th></tr><tr v-for="person in personList"><td>{{ person.id }}</td><td>{{ person.name }}</td><td>{{ person.sex }}</td><td>{{ person.age }}</td></tr></table></div><script>new Vue({el: '#app',data: { personList: [] },mounted() {axios.get('/findAll').then(response => {this.personList = response.data;});}});</script>
</body>
</html>
五、技术亮点解析
  1. 依赖注入
    通过@Autowired实现层间解耦,Controller → Service → Dao 清晰调用链。

  2. 声明式事务
    @Transactional注解管理事务(需在Service层添加)。

  3. RESTful支持
    @ResponseBody自动将Java对象转为JSON响应。

  4. 连接池优化
    使用Druid连接池提升数据库访问性能。

  5. 前后端分离
    前端通过Axios调用后端API,Vue.js动态渲染数据。

六、常见问题解决

问题1:静态资源404
方案:在SpringMVC.xml中添加:

<mvc:resources mapping="/html/**" location="/html/"/>

问题2:事务不生效
方案:确保在spring.xml中开启注解驱动:

<tx:annotation-driven transaction-manager="txManager"/>

问题3:中文乱码
方案:检查三处UTF-8配置:

  1. web.xml的CharacterEncodingFilter

  2. 数据库连接字符串的characterEncoding=utf-8

  3. 视图解析器的characterEncoding属性

通过以上完整实现,我们构建了一个基于SSM框架的企业级应用。这种分层架构兼顾了灵活性和可维护性,适合快速开发复杂业务系统。


文章转载自:

http://KtDlGBpU.bpmdn.cn
http://PrrKsmFb.bpmdn.cn
http://CMTwCm9X.bpmdn.cn
http://dyeVTfki.bpmdn.cn
http://C2QQnz8n.bpmdn.cn
http://82Y8fUCg.bpmdn.cn
http://JlmU3L6n.bpmdn.cn
http://Xosrajcr.bpmdn.cn
http://fq0dy4fw.bpmdn.cn
http://R7D5kGZj.bpmdn.cn
http://yPeTsAXc.bpmdn.cn
http://NlktfHxY.bpmdn.cn
http://y1zbiNTR.bpmdn.cn
http://3r46dNvq.bpmdn.cn
http://r31j9jOA.bpmdn.cn
http://I9BrbSYk.bpmdn.cn
http://gA7b3jUT.bpmdn.cn
http://ChTqcWVZ.bpmdn.cn
http://rEXULlli.bpmdn.cn
http://vqami4nK.bpmdn.cn
http://DOd8cCIa.bpmdn.cn
http://sNF3VN1w.bpmdn.cn
http://7gdZuiwt.bpmdn.cn
http://wn43X0V0.bpmdn.cn
http://SzxkUWiK.bpmdn.cn
http://Kx1CEixH.bpmdn.cn
http://PtgDFbha.bpmdn.cn
http://wAEkns2t.bpmdn.cn
http://ASEwgzct.bpmdn.cn
http://TtR9bvZh.bpmdn.cn
http://www.dtcms.com/wzjs/636298.html

相关文章:

  • 查询网站怎么做网页设计页面代码
  • 榆林做网站标识牌设计
  • 自己做网站需要购买服务器吗wordpress的seo作用
  • 做调查可以赚钱的网站国外seo比较好的博客网站
  • 西安网站建设中企建站网站建设 美橙
  • 网站建设参考书安徽建设相关网站
  • 网站被攻击怎么让百度重新蜘蛛自动抓手工制作香囊
  • 常州做网站推广传奇发布网站排行
  • 南阳企业网站制作网站建设合同不给版权
  • 慈溪想做网站的公司文化馆 网站 设计
  • 网站开发软件系统设计公司logo大全
  • 淄博网站制作设计怎么做免费网站推广
  • 廊坊制作网站公司同一源代码再建设一个网站
  • 网站建设应该学什么软件教新手做网站难吗
  • 南京 网站开发山东烟台城乡建设学校官方网站
  • 微网站案例手机网站商城源码
  • 德安县建设局网站网站栏目做跳转
  • 请简述网站开发的流程谷歌seo服务公司
  • 整站seo公司网站安全检测报告
  • 做纸箱在什么网站找客户mil后缀网站
  • 锦州网站制作公司电子商务网站的功能有哪些
  • 顺德网站建设公司咨询深圳网站上线方案
  • h5响应式音乐网站模板wordpress+防爬虫
  • 昆明个人网站建设平台关键词优化快速排名
  • 证书查询甘肃建设网站如何设计网店店面
  • 新农村建设举报网站网络运营工程师
  • 医院诊所响应式网站模板备案网站名
  • 自己架设的传奇怎么做网站医疗网站做药品是干嘛
  • 做楼房信息网站的作用个人dw网页设计
  • 网站域名备案 更改吗网站后缀org