Spring MVC + MyBatis3 实现的简单个人博客

【图书介绍】《Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)》 本书全面讲解使用流行轻量级框架SSM(Spring+Spring MVC+MyBatis)进行JavaEE Web开发的技术,并以综合案例“学生选课管理系统”为主线贯穿全书,知识内容层层推进,将知识点有机地串联起来,便于读者掌握与理解。本书共16章,分4部分。第1部分是MyBatis篇,包括第1~5章,涵盖MyBatis基础、MyBatis的核心XML配置文件等内容;第2部分是Spring篇,包括第6~10章,涵盖Spring基础、使用Spring管理Bean等; 阅读详情

SpringMVC + MyBatis3 实现的个人博客

 

为了学习spring MVC,而做的一个简单的个人博客,项目地址如下:

https://github.com/DreamFinderHou/PersonalBlog

https://github.com/DreamFinderHou/PersonalBlog

项目用到的技术:

  • Spring MVC
  • Mybatis3 + MySQL
  • Bootstrap(页面样式)+JSP+JSTL
  • TinyMCE 富文本编辑器,使用非常简单
  • Windows10+eclipse+tomcat7+chrome

实现的功能:

  • 博客的增删改
  • 富文本编辑器编写博客如下图:
  • 博客多关键字查询

开发过程中遇到的问题及解决办法:

1.      绿色版MySQL的安装与启动:

参考:http://blog.youkuaiyun.com/anndy_/article/details/51093326

根据该向导操作时,可能在修改密码步骤报错,这是需要使用命令mysqld --initialize(生成一个随机密码),然后 net start mysql,再去修改密码。

2.      当使用Navicat建立连接时出现如下错误:


2005 -Unknown MySQL server host ‘localhost’(0)

那是因为你电脑没联网,Navicat的使用需要联网。

3.      各种资源找不到的情况:

切记一点:你项目中的各种路径的参照都是以最后你打成的war包的路径去找的。如果不确定export一个war包看一下。

Classpath和classpath*的使用:参照 http://perfy315.iteye.com/blog/2009258

4.      Spring MVC开发项目,welcome-page的实现:

1)      如果要配置为index.html等静态页面为welcome-page,首先需要在web.xml中配置<welcome-file-list>,其次需要在springMVC-servlet.xml中配置静态资源,以跳过dispatcher的过滤,方法如下:

            <mvc:annotation-driven/>

            <mvc:resourcesmapping="/*.html"location="/"/>

如果没有<annotation-driven>,<resources/>元素会阻止任意控制器被调用。若不需要使用resources,则不需要<annotation-driven>,但是当使用Flash跳转页面是还是需要该元素的。

2)      在@Controller类中声明一个@RequestMapping(value=”/”)的方法,返回作为项目默认访问页的页面,当你的默认访问页为JSP时,必须采用这种方法。

如下:

	@RequestMapping(value="/")
	public String welcomePage(Model Model){
		
		return "welcome";
	}


5.      页面中引用CSS文件,路径找不到:

可以使用JSTL来解决,如下:

<link rel="stylesheet" href="<c:urlvalue="/resource/blog/myblogstyle.css"/>">

<c:url>会处理context的问题。

6.      Spring MVC + JSP + JSTL + EL 实现分页:

	<div class="bloglist-height content-top container">
		<div class="content row">
			<div class="col-md-9">
				<ul class="media-list">
					<!--<li><span>PageCount: ${responseParm.pageCount}/CurrentPage: ${responseParm.currentPage}</span></li> -->
					<c:forEach items="${responseParm.bloglist}" var="blog" begin="0" end="${responseParm.bloglist.size()}" step="1">
						<li><span class="month"><fmt:formatDate type="both" value="${blog.createDate}" pattern="yyyy.MM.dd"/></span><span>  ·  </span><a href="<c:url value="/blog/${blog.blogID}"/>">${blog.blogTile}</a></li>
					</c:forEach>	
				</ul>
			</div>
		</div>
	</div>
	<nav class="content-bottom">
  		<ul class="pagination">
  			<c:if test="${responseParm.currentPage == 1}">
  				<li><a href="#" class="disable">«</a></li>
  			</c:if>
  			<c:if test="${responseParm.currentPage != 1}">
  				<li><a href="<c:url value="/findAllBlogs/${responseParm.keyTag}/${responseParm.currentPage - 1}"/>">«</a></li>
  			</c:if>
  			<c:forEach var="pageNo" begin="1" end="${responseParm.pageCount}" step="1">
  				<c:if test="${responseParm.currentPage == pageNo}">
  					<li><a href="#" class="disable">${pageNo}</a></li>
  				</c:if>
  				<c:if test="${responseParm.currentPage != pageNo}">
  					<li><a href="<c:url value="/findAllBlogs/${responseParm.keyTag}/${pageNo}"/>">${pageNo}</a></li>
  				</c:if>
  			</c:forEach>
		    <c:if test="${responseParm.currentPage == responseParm.pageCount}">
  				<li><a href="#" class="disable">»</a></li>
  			</c:if>
  			<c:if test="${responseParm.currentPage != responseParm.pageCount}">
  				<li><a href="<c:url value="/findAllBlogs/${responseParm.keyTag}/${responseParm.currentPage + 1}"/>">»</a></li>
  			</c:if>
 		 </ul>
	</nav>


7.      当更新了CCS文件并且重启了Tomcat服务器后,更改后的CSS样式不起作用,记得重启浏览器,清空缓存。

8.      新建和编辑公用一个JSP页面的处理方法:

因为重新编辑一个blog需要保存它的ID传到后台处理,所以我采用了如下方法,当然也可以用路径变量在前台页面加些判断控制,或者在后台controller处理时将ID放到model变量中保存,不过我感觉下面的更简单一点:

前台和后台采用了表单绑定,具体细节可以查看《Sping MVC学习指南》这本书关于表单绑定和表单标签库一节。

blogediter.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!-- 表单标签库 -->
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<!DOCTYPE html>
<html>
<head>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
<!-- my personal blog's css file  -->
<link rel="stylesheet" href="/PersonalBlog/resource/blog/myblogstyle.css">
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<!-- thinyMCE	 -->
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script type="text/javascript">
  tinymce.init({
	    selector: '#blogcontent',
	    theme: 'modern',
	    width: 900,
	    height: 300,
	    plugins: [
	      'advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker',
	      'searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking',
	      'save table contextmenu directionality emoticons template paste textcolor'
	    ],
	    content_css: 'css/content.css',
	    toolbar: 'insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | print preview media fullpage | forecolor backcolor emoticons'
	  });
  </script>
<title>New Blog</title>
</head>
<body >
	<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
		<div class="container-fluid">
			<div class="navbar-header">
				<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
	        	<a class="navbar-brand" href="<c:url value="/"/>">MyBlog</a>
	        </div>
	        <div class="collapse navbar-collapse navbar-ex1-collapse">
	        	<ul class="nav navbar-nav">
	            	<li><a href="#about">About</a></li>
	                <li class="dropdown">
	                	<a href="#services" class="dropdown-toggle" data-toggle="dropdown">Blog<span class="caret"></span></a>
	                	<ul class="dropdown-menu" role="menu">
	                		<li><a href="<c:url value="/findAllBlogs/all/1"/>">All Blogs</a></li>
	                		<li class="divider"></li>
	                		<li><a href="<c:url value="/findAllBlogs/Spring/1"/>">Spring related</a></li>
	                		<li><a href="<c:url value="/findAllBlogs/bootstrap/1"/>">bootstrap</a></li>
	                		<li><a href="<c:url value="/findAllBlogs/mybatis/1"/>">MyBatis</a></li>
	                		<li><a href="<c:url value="/findAllBlogs/java/1"/>">java knowledge</a></li>
	                		<li><a href="<c:url value="/findAllBlogs/web/1"/>">web knowledge</a></li>
	                		<li class="divider"></li>
	                		<li><a href="<c:url value="/findAllBlogs/others/1"/>">others</a></li>
	                	</ul>
	                </li>
	                <li><a href="#contact">Contact</a></li>
	            </ul>
	            <form class="navbar-form navbar-right" role="search" action="<%=basePath%>search">
       				<div class="form-group">
          				<input name="searchKey" type="text" class="form-control" placeholder="Search">
        			</div>
        			<button type="submit" class="btn btn-default">Search</button>
      			</form>
				<ul class="nav navbar-nav navbar-right">
					<li><a class="header-user-name" href="#"><c:out value="${user.userName}"/></a></li>
					<li><a href="<c:url value="/addBlog"/>">New Blog</a></li>
				</ul>
			</div>
		</div>
	</nav>
	<div class="content-top container">
		<div class="row">
			<div class="col-md-6">
				<div class="content">
					<c:url var="saveAndUpdate" value="/saveAndUpdateBlog?blogID=${blog.blogID}" />
					<form:form commandName="blog" role="form" action="${saveAndUpdate}" method="post">
					  <div class="form-group">
					    <label for="blogtitle">Blog Title</label>
					    <form:input path="blogTile" type="text" class="form-control" id="blogtitle" placeholder="Enter title"/>
					  </div>
					  <div class="form-group">
					    <label for="blogtag">Blog Tags</label>
					    <form:input path="blogTags" type="text" class="form-control" id="blogtag" placeholder="Enter tags"/>
					  </div>
					  <div class="form-group">
					    <label for="blogcontent">Blog Content</label>
					    <form:textarea path="blogContent" id="blogcontent" class="form-control" placeholder="Enter content"></form:textarea>
					  </div>
  					  <span><button type="submit" class="btn btn-default btn-sm">Submit</button></span>
					  <span><button type="reset" class="btn btn-default btn-sm">Clear</button></span>
					</form:form>
				</div>
			</div>
		</div>
	</div>
	<div class="container">
		<div class="footer">
			<div class="footer-wrapper">
				<hr><p> © · 2016-2xxx  <a href="#">HouShaoli's Personal Blog</a></p>
			</div>
		</div>
	</div>
</body>
</html>


为什么要将表单标签<form:form>的action关联到一个JSTL标签<c:url>?

首先如果直接在<form:form>的action中按照如下写法:

<form:form commandName="blog"role="form" action="/saveAndUpdateBlog?blogID=${blog.blogID}"method="post">

则请求至后台的http路径会报错如下:

http://localhost:8080/saveAndUpdateBlog?blogID=144(正确应该为http://localhost:8080/PersonalBlog/saveAndUpdateBlog?blogID=144)

并且不允许在<form:form>中添加<%=basePath%>

<form:formcommandName="blog" role="form" action="<%=basePath%>saveAndUpdateBlog?blogID=${blog.blogID}"method="post">

所以采用action关联<c:url>的方法传递ID参数,当然你也可以将ID作为路径变量处理,只不过后台如果你想只用一个controller处理的话,那么你要匹配/add和/update/blogID这两种情况的@RequestMapping参数,即将/add/{blogID设置为0,当为添加的时候}。

controller实现

@RequestMapping(value="/saveAndUpdateBlog")
	public String saveAndUpdateBlog(@RequestParam int blogID, @ModelAttribute Blog blog, RedirectAttributes redirectAttributes){
		
		if(blogID == 0){
			blogMapper.save(blog);	
		}else{
			Map<String, Object> parm = new HashMap<>();
			parm.put("blogID", blogID);
			parm.put("blog", blog);
			blogMapper.update(parm);
		}			
		
		String tags = blog.getBlogTags();
		String[] tagList = tags.split("\\s+");
		
		/**返回前台结果**/
		Map<String, Object> responseParm = new HashMap<>();
		responseParm.put("blog", blog);
		responseParm.put("tagList", tagList);
		
		redirectAttributes.addFlashAttribute("responseParm",responseParm);
		
		return "redirect:/blog/" + blog.getBlogID();
	}


9.      basePath的使用:

在<a>的href或者<c:url>的value或者<form>的action中,url地址访问出错,这时候使用basePath都可以解决,其实建议编码刚开始后就加上该参数,一是为了保证编码质量,达到统一的效果,二是防止后期出错浪费不必要的时间,使用方法如下:

10.    前台数据传到后台乱码的问题:

首先背景情况为,我的JSP页面和MySQL中的varchar和TEXT的编码都设置为了UTF-8,可是保存到数据库中的数据还是乱码。我用logger.info方法在controller中打印出日志发现,日志中数据就已经是乱码,这说明在前台传递数据到controller的过程中就已经是乱码,跟数据库无关。

解决方法:http://blog.youkuaiyun.com/kalision/article/details/46441081/

这应该跟HttpServletRequest和HttpServletResponse默认处理与前台的数据的编码为ISO-8859-1有关。

11.    SpringMVC + Mybatis3的一些常见问题请查看至:

http://blog.youkuaiyun.com/java_hxc_sz/article/details/53670086

http://blog.youkuaiyun.com/java_hxc_sz/article/details/53645116


 

基于 SpringBoot + MyBatis 的博客系统 前端使用 后端使用 配置内容 配置内容 4. 数据库实现用户和博客管理 4.1 设计数据库 这里博客系统, 是一个用户表和博客表, 4.2 使用 MyBatis 操作数据库 UserMapper.xml BlogMapper.xml User 实体类 和 Blog 实体类 在 model 包下 创建 User 类 和 Blog 类User 类 Blog 类 UserMapper 接口 和 BlogMapper 接口 在 mapper 包下创建 UserMapper 和 BlogMa 阅读详情

相关推荐

基于 Spring Boot 的个人博客 FS-Blog

在线 Demo:http://fsblog.letec.top Github 地址:https://github.com/jameszbl/fs-blog 1. 涉及技术及工具 核心框架:SpringBoot ORM 框架:MyBatis MyBatis 工具:MyBatis Mapper MVC 框架:Spring MVC 模板引擎:Freemarker 编译辅助插件:Lombok ...

摆码王子的博客 8682

新书速览|Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)

内容包括Spring基础、Spring中的Bean、Spring AOP、Spring的数据库开发、Spring的事务管理、初识MyBatis、MyBatis的核心配置、动态SQL、MyBatis的关联映射、MyBatis与Spring的整合、Spring MVC入门、Spring MVC数据绑定、JSON数据交互和RESTful支持、拦截器、SSM框架整合、基于SSM框架的新闻发布管理系统实战、基于SSM+Vue框架的图书管理系统实战。主要从事云计算、网络安全、教育信息化等方面的研究。

quanzhankaifaqua的博客 1238

基于springboot的个人博客系统的设计与实现

本文介绍了一个基于SpringBoot的个人博客系统的设计与实现。系统采用MVC架构模式,结合Thymeleaf模板引擎、MyBatis持久层框架和MySQL数据库,实现了博客文章的增删改查、分类管理、标签管理、评论系统、用户管理等核心功能。系统设计遵循软件工程原则,具有良好的可扩展性和可维护性,同时注重用户体验和界面设计。通过功能测试、性能测试和安全测试,验证了系统的功能完整性、性能稳定性和安全性。研究结果表明,该系统能够满足个人博客的日常使用需求,并为未来的功能扩展和性能优化提供了基础。

weixin_50902344的博客 985

Spring3 整合 Mybatis3

Spring3 整合 Mybatis3 这两天,项目需要使用spring+ibatis,于是去网上下载了,结果发现和之前我用的版本变化不小,整了两天才将功能实现,不敢怠慢,赶紧写份博客记录一下。 首先是依赖的库: 接着是web.xml的配置,这里,我使用的是Spring3 MVC Log welcome.html log4jCo

fover717的专栏 3779

Spring MVC个人博客系统开发实战

Spring MVC 是基于 Java 的经典 Web 开发框架,采用 MVC(Model-View-Controller)设计模式,实现了请求处理、业务逻辑与视图展示的高效解耦。本章将从 Spring MVC 的核心架构入手,结合博客系统的实际开发需求,阐述其设计背景与整体架构模型。通过 Spring MVC,开发者可以清晰地划分 Controller 层负责请求调度,Service 层处理业务逻辑,DAO 层操作数据库,Model 层封装数据,View 层负责页面渲染。

weixin_42168902的博客 1165

Spring MVC + Mybatis+Spring实现的个人博客系统

项目描述 ssm实现的个人博客系统,包括有后台管理系统 实现权限管理各种 运行环境 jdk8+tomcat8+eclipse 项目技术 spring+spring mvc+mybatis+jquery

SpringBoot实战——个人博客项目

项目名称:个人博客系统主要操作的对象是:文章和用户,用户可在该系统上发表自己的博客,查看自己或别人已经发表的文章需要用到两张表:userinfo(用户表)、articleinfo(文章表)登录+注册博客的分页列表功能新增发表博客修改、删除自己的博客项目技术栈MySQLjQuery项目亮点手动对用户密码实现随机加盐统一异常处理、拦截器用户登录持久化(session内存)分页功能。

夏壹分享 2488

基于Spring MVC的个人博客系统的设计与实现

资源为本人14年的毕业设计,下载着可以作为参考资料,其中包含源码以及数据库表的创建脚本,也可作为JAVA初学者的参考资料,欢迎下载,如需要E-R图请另行下载。

手把手教你基于Springboot+Vue搭建个人博客网站

Hello,你好呀,我是灰小猿,一个超会写bug的程序猿! 利用国庆期间做了一个基于springboot+vue的前后端分离的个人博客网站,今天在这里将开发过程和大家分享一下,手把手教你搭建一个自己专属的个人博客。 完整源码放置在Gitee上了,【源码链接】 小伙伴们记得⭐star⭐哟! 小伙伴们一键三连➕关注!灰小猿带你上高速啦????????????! 先看一下博客网站的演示视频: ⚡项目目录⚡ 个人博客网站项目整体思路 Java后端接口开发 (1)数据库设计 ​(2)整合My

累计发表博客60余万字,优快云 博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享 Java 优质文章,毕设实战项目开发,全网粉丝10W+ 4万+

SD--根据订单创建出库单(相关的函数列表的介绍系列篇(2))

创建订单样例代码参见:http://blog.youkuaiyun.com/CompassButton/archive/2007/05/09/1601712.aspx 可以根据一个订单或者部分订单项来创建出库单,代码如下:* Populating the item data lx_sales_item-ref_doc = l_vbeln. lx_sales_item-ref_item = c_000010

SAP BLOG--Jack Wu 6227

C语言实现俄罗斯方块

使用C语言完成俄罗斯方块。《俄罗斯方块》的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,与此同时,玩家得到分数奖励。没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。顾名思义,俄罗斯方块自然是俄罗斯人发明的。

qq_54169998的博客 7万+

新人一看就懂:Spring Boot+Spring mvc+Mybatis的基础框架demo

Spring Boot的设计目的是来简化新Spring应用的初始搭建以及开发过程,大大减少了代码量,通过这篇文章你可以清楚的看到。这是一个基于Spring Boot的简单demo,希望读者可以通过这篇文章大概能看懂这一个简单的框架搭建。后续我会陆续更新,微服务架构(Spring Boot、Spring Cloud)、分布式架构(Dobbo+Zookeeper)、大数据架构以及源码解析等相关的文章,感兴趣的话可以关注一下。

程序员云帆哥的博客 2万+

Kisssoft软件在行星齿轮设计上的初试

行星齿轮传动与链传动相比较,具有质量小,体积小,承载能力强,传动比大,传动效率高等优点,但在行星齿轮传动种种优点下,不可避免的带来一些缺点,对其材料的要求过高,在追求传动比大而体积小的同时,其传动结构大大的复杂化,以及在制造和安装过程中较困难,对于行星齿轮传动设计来说,不仅应该了解其优点,而且应该在设计中,充分发挥其优点,且把其缺点降低到最低的限度。从而才能设计出性能优良的行星齿轮传动装置,为我们赛车提供更加强大的动力保证。 Kisssoft软件为我们行星齿轮传动设计提供了一体化方案,从设...

m0_69808569的博客 1万+

个人博客系统(Spring Boot、Spring MVC、MyBatis)

本篇博客到这儿就结束了,很开森能和你一起学习吖!简单总结一哈昂,这里主要实现了整个项目的基础模块部分的功能,由于篇幅等各方面的因素呢,咱们开头提到的其他功能将作为拓展功能后面陆续呈现出来~期待还能和你一起学习哦~

weixin_71111071的博客 3887

避坑指南:Vue调用摄像头常见6大报错解决方案(navigator.mediaDevices全兼容方案)

本文深入剖析了在Vue应用中调用摄像头时常见的六大报错,如权限拒绝、设备未找到等,并提供了基于navigator.mediaDevices的全兼容解决方案。内容涵盖从HTTPS环境配置、浏览器兼容性处理到摄像头资源管理与高级错误处理,旨在帮助开发者构建稳定可靠的企业级摄像头应用。

Black的专栏 341

proteus仿真51单片机操作指南:串口通信仿真配置详解

深入讲解如何在proteus仿真51单片机中实现串口通信,涵盖虚拟串口设置、电路连接与调试技巧,帮助开发者高效完成通信仿真验证。

weixin_36197669的博客 573

Spring,Spring MVC、Mybatis和Spring boot(知识点总结)

Spring,Spring MVC、Mybatis和Spring boot(知识点总结)

qq_43655412的博客 3540

华为OD机试 - 战士技能规划设计 - 数组(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。你为一款动作游戏设计战士角色的技能:战士每个技能会消耗不同能量,释放技能有 2 个约束:连续释放技能数量不能超过 m 个,技能能量总和不能超过能量上限 k;如果超过则必须中断当前技能,进入调息状态(即分段)。战士有一项爆发技巧:在单次战斗中有一次

学Java,找哪吒 237

SSM Spring MVC集成mybatis

完成部门基本的 CRUD 和分页查询,完成员工基本的 CRUD、分页查询和过滤查询(根据姓名和邮箱模糊查询,根据部门查询)。

m0_63600788的博客 1612

廉价却有效?ESD防护中的电容

摘要:在成本敏感型电子产品设计中,多层陶瓷电容(MLCC)可作为TVS二极管的替代方案用于静电放电(ESD)防护。其工作原理是通过电容充放电特性吸收静电能量,而非电压钳位。计算表明100nF/50V MLCC可有效缓冲8kV静电冲击,但存在吸收能量有限、无自恢复等局限。建议将MLCC作为一级缓冲措施,配合TVS等器件形成多级防护,并优先选择X7R材质、100nF容值、50V耐压的0402/0603封装MLCC。该方案在低速信号和电源引脚防护中具有显著成本优势,但不能完全替代专业ESD抑制器。

硬核科技 432

【Proteus仿真】点亮小灯系列仿真——小灯闪烁/流水灯/交通灯

本文介绍了基于AT89C51单片机的LED控制案例,共包含5个实例:1)单个LED闪烁;2)共阳极流水灯;3)共阴极流水灯;4)花样流水灯;5)交通灯模拟。每个案例详细说明了电路原理图、接线方式和控制程序实现,其中重点讲解了PWM调光原理及其在LED控制中的应用。案例由简至繁,从基础I/O控制到复杂花样显示,最后实现交通灯逻辑控制,展示了单片机在LED控制中的典型应用方法。文中提供了完整的源代码,便于读者理解和实践。

XU157303764的博客 1884

开源项目教程:基于Spring+Spring MVC+Mybatis+Shiro的个人博客系统

开源项目教程:基于Spring+Spring MVC+Mybatis+Shiro的个人博客系统 1. 项目介绍 songjhh_blog 是一个由 Java 编写的个人博客系统示例,采用了一系列现代Web开发中的主流技术栈。它集成 Spring 框架处理依赖注入和核心逻辑,Spring MVC 负责请求处理和视图渲染,而数据持久层则交给了 MyBatis 处理,确保了灵活的数据访问。此外,通过 ...

gitblog_00199的博客 655

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

基于SSM的个人博客系统设计与实现(Java+MySQL)

本文介绍了一个基于Java的个人博客系统设计与实现。系统采用B/S架构,使用SpringMVC、JSP、MyBatis等技术框架,数据库采用MySQL。在可行性分析中,从技术、经济、操作和法律四个方面论证了系统的可行性。系统设计分为博主和游客两个角色,包含登录、博客管理、评论管理等模块。系统实现部分详细展示了登录模块、博客管理模块等核心功能的代码实现和界面效果。测试结果表明系统功能完善,运行稳定。该博客系统具有良好的操作性和实用性,能够满足个人博客的基本需求。

毕业作品网站 3857

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring、Spring-MVC、Mybatis、Mybatis-generator整合核心配置文件记录

Spring、Spring-MVC、Mybatis、Mybatis-generator整合核心配置文件记录

yuanjinshenglife的专栏 1236

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring + Spring MVC + MyBatis

SSM 是 Java 企业级开发的经典组合,通过 Spring 的对象管理、Spring MVC 的 Web 交互和 MyBatis 的数据库操作,形成了完整的三层架构解决方案。尽管配置相对繁琐,但其灵活性和稳定性使其在中小型项目中仍被广泛使用。对于新手,学习 SSM 有助于理解 Java 后端开发的核心思想,为后续学习 Spring Boot、微服务等技术打下基础。

2502_92141759的博客 1397

spring mvc+Mybatis+bootstrap简单应用

实现一个spring mvc结合Mybatis的简单demo,前端使用了JSP、js,以及bootstrap。当然,整体来说还是很简单的一个demo。     下面是各个部分。 一、配置文件,一共是四个,两个是spring mvc的,两个是Mybatis的,这里没有关联。   web.xml <web-app xmlns:xsi="http://www.w3.org/2001/X

空夜's Blog 2512
上一篇: Mybatis3+SpringMVC整合
下一篇: 正则表达式
java_hxc_sz
博客等级 码龄10年 1粉丝 10原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值