SSM框架搭建实例

article/2025/9/18 14:13:12

SSM框架搭建简单实例 - 搭建步骤


需求分析:

   实现用户表信息的增删改查


1. 开发环境

  • 环境  : JDK  1.8         
  • 软件 : myeclipse       
  • 数据库 : MySql

2. 创建数据库

  • 数据库名称:ssm           
  • 字符集:UTF-8         
  • 表 : user

3. 工程搭建

  •   工程使用Springmvc、spring、mybatis框架整合完成。
  • 项目完整目录截图

4. 创建web工程

  • 准备需要的jar包
  1. spring(包括springmvc)
  2. mybatis
  3. mybatis-spring整合包
  4. 数据库驱动
  5. 第三方连接池。
  6. Json依赖包(springmvc 自带,可不加)
  • web.xml  文件

       需要配置的有  : Spring监听器, SpringMVC 核心前端控制器, 字符集过滤器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><display-name>SSM</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- Spring 监听器 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 配置 SpingMVC 核心前端处理器 --><servlet><servlet-name>springmvcDispatcherServlet</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><servlet-mapping><servlet-name>springmvcDispatcherServlet</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping><!-- 字符集过滤器 --><filter><filter-name>characterEncodingFilter</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><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

三个框架的配置文件,统一放在 conf 文件夹下(source folder 文件夹)

  • applicationContext.xml    【Spring 的 配置文件】

<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"xmlns:util="http://www.springframework.org/schema/util"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.3.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"><!-- 自动扫描注解 spring 负责dao/mapper和service 层 --><context:component-scan base-package="top.vkiss.ssm.mapper"></context:component-scan><context:component-scan base-package="top.vkiss.ssm.service"></context:component-scan><!-- 读取db.properties --><context:property-placeholder location="classpath:db.properties"/><!-- 配置数据源   -不读取 db.properties 时,直接在 value属性中赋予数据库连接属性值--><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${driverClass}"></property>	<property name="url" value="${url}"></property>	<property name="username" value="${user}"></property>	<property name="password" value="${pwd}"></property>	</bean><!-- 配置 SQLSessionFactory --><bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 加载数据源 --><property name="dataSource" ref="dataSource"></property><!-- 自动扫描 Mapper 文件 --><property name="mapperLocations" value="classpath:top/vkiss/ssm/mapper/*.xml"></property><!-- 属性文件 --><property name="configLocation" value="classpath:SqlMapConfig.xml"></property></bean><!-- 自扫描Dao/Mapper接口类,生成实体类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 扫描制定包的接口 --><property name="basePackage" value="top.vkiss.ssm.mapper"></property><!-- 注入 SqlSessinFaction bean --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"></property></bean><!-- 事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean><!-- 事务通知 --><tx:advice id="txAcvice" transaction-manager="transactionManager"><!--事务的传播属性 --><tx:attributes><tx:method name="add*" propagation="REQUIRED"/><tx:method name="edit*" propagation="REQUIRED"/><tx:method name="del*" propagation="REQUIRED"/><tx:method name="save*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="insert*" propagation="REQUIRED"/><tx:method name="get*" propagation="REQUIRED" read-only="true"/><tx:method name="query*" propagation="REQUIRED" read-only="true"/><!-- 简单的可以直接配置  name="*"   --><tx:method name="*" propagation="REQUIRED"/></tx:attributes></tx:advice><!-- AOP 面向切面事务 --><aop:config><aop:pointcut expression="execution( * top.vkiss.ssm.service.*.*(..))" id="exep1"/><aop:advisor advice-ref="txAcvice" pointcut-ref="exep1"/>		</aop:config></beans>
  • springmvc.xml    【SpringMVC 的 配置文件】

<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"xmlns:util="http://www.springframework.org/schema/util"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:task="http://www.springframework.org/schema/task"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.3.xsd"><!-- 扫描 处理器 bean 的 注解 --><context:component-scan base-package="top.vkiss.ssm.controller"></context:component-scan><context:component-scan base-package="top.vkiss.ssm.task"></context:component-scan><!-- MVC 注解驱动 --><mvc:annotation-driven></mvc:annotation-driven><!-- 定时器注解驱动 --><task:annotation-driven/><!--  非注解 -配置 任务定时器    -配置文件加载时,先加载spring的配置文件,可能会出现不能执行的情况,当SpringMVC配置文件加载时,定时器方能执行<bean id="ta" class="top.vkiss.ssm.task.myTask"></bean><task:scheduled-tasks><task:scheduled ref="ta" method="zhh" cron="*/10 * * * * ?"/></task:scheduled-tasks>	--><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 配置视图地址的前缀 --><property name="prefix" value="/jsp/"></property><!-- 配置视图地址的后缀 --><property name="suffix" value=".jsp"></property></bean></beans>
  • SqlMapConfig.xml    【MyBatis 的 配置文件】

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><!-- 二级缓存 默认为true  可不写 --> <setting name="cacheEnabled" value="true"/><!-- 懒加载 / 延迟加载 默认为true  可不写 --> <setting name="lazyLoadingEnabled" value="true"/><!-- 修改该配置为  按需加载 --><setting name="aggressiveLazyLoading" value="false"/></settings><typeAliases><package name="top.vkiss.ssm.domain"/></typeAliases></configuration>
  • db.properties        【数据库配置文件】

driverClass=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/ssm
user=root
pwd=root
  • log4j.properties    【日志配置文件】

# Global logging configuration
#\u5728\u5f00\u53d1\u73af\u5883\u4e0b\u65e5\u5fd7\u7ea7\u522b\u8981\u8bbe\u7f6e\u6210DEBUG\uff0c\u751f\u4ea7\u73af\u5883\u8bbe\u7f6e\u6210info\u6216error
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

  • User.java     【实体类 POJO,     所在包:top.vkiss.ssm.domain】

package top.vkiss.ssm.domain;public class User {private Integer uid;private String uname;private String phone;private String address;// 这里省略了getter / setter  方法
}
  • UserMapper.java    【dao层接口,     所在包:top.vkiss.ssm.mapper】

package top.vkiss.ssm.mapper;import java.util.List;import top.vkiss.ssm.domain.User;public interface UserMapper {public void addUser(User user) throws Exception;public void delUser(Integer id) throws Exception;public void editUser(User user) throws Exception;public User getUser(Integer id) throws Exception;public List<User> queryAll() throws Exception;}
  • UserMapper.xml  【dao层mybatis 映射文件,可逆向生成   所在包:top.vkiss.ssm.mapper】

<?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="top.vkiss.ssm.mapper.UserMapper" ><resultMap id="BaseResultMap" type="top.vkiss.ssm.domain.User" ><id column="uid" property="uid" jdbcType="INTEGER" /><result column="uname" property="uname" jdbcType="VARCHAR" /><result column="phone" property="phone" jdbcType="VARCHAR" /><result column="address" property="address" jdbcType="VARCHAR" /></resultMap><sql id="Base_Column_List" >uid, uname, phone, address</sql><!-- 查一条 --><select id="getUser" resultMap="BaseResultMap" parameterType="java.lang.Integer" >select <include refid="Base_Column_List" />from userwhere uid = #{uid,jdbcType=INTEGER}</select><!-- 查所有 --><select id="queryAll" resultMap="BaseResultMap">select <include refid="Base_Column_List" />from user</select><!-- 删一条 --><delete id="delUser" parameterType="java.lang.Integer" >delete from userwhere uid = #{uid,jdbcType=INTEGER}</delete><!-- 添加一条 <insert id="insert" parameterType="top.vkiss.ssm.domain.User" >insert into user (uid, uname, phone, address)values (#{uid,jdbcType=INTEGER}, #{uname,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR})</insert>--><!-- 添加一条 --><insert id="addUser" parameterType="top.vkiss.ssm.domain.User" >insert into user<trim prefix="(" suffix=")" suffixOverrides="," ><if test="uid != null" >uid,</if><if test="uname != null" >uname,</if><if test="phone != null" >phone,</if><if test="address != null" >address,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="uid != null" >#{uid,jdbcType=INTEGER},</if><if test="uname != null" >#{uname,jdbcType=VARCHAR},</if><if test="phone != null" >#{phone,jdbcType=VARCHAR},</if><if test="address != null" >#{address,jdbcType=VARCHAR},</if></trim></insert><!-- 更新 --><update id="editUser" parameterType="top.vkiss.ssm.domain.User" >update user<set ><if test="uname != null" >uname = #{uname,jdbcType=VARCHAR},</if><if test="phone != null" >phone = #{phone,jdbcType=VARCHAR},</if><if test="address != null" >address = #{address,jdbcType=VARCHAR},</if></set>where uid = #{uid,jdbcType=INTEGER}</update></mapper>
  • UserService.java  【Servioce 层接口 ,     所在包:top.vkiss.ssm.service】

package top.vkiss.ssm.service;import java.util.List;import top.vkiss.ssm.domain.User;public interface UserService {public void addUser(User user) throws Exception;public void delUser(Integer id) throws Exception;public void editUser(User user) throws Exception;public User getUser(Integer id) throws Exception;public List<User> queryAll() throws Exception;
}
  • UserServiceImpl.java   【Servioce 层实现类 ,     所在包:top.vkiss.ssm.service】

package top.vkiss.ssm.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import top.vkiss.ssm.domain.User;
import top.vkiss.ssm.mapper.UserMapper;
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper ud;@Overridepublic void addUser(User user) throws Exception {// TODO Auto-generated method stubud.addUser(user);}@Overridepublic void delUser(Integer id) throws Exception {// TODO Auto-generated method stubud.delUser(id);}@Overridepublic void editUser(User user) throws Exception {// TODO Auto-generated method stubud.editUser(user);}@Overridepublic User getUser(Integer id) throws Exception {// TODO Auto-generated method stubreturn ud.getUser(id);}@Overridepublic List<User> queryAll() throws Exception {// TODO Auto-generated method stubreturn ud.queryAll();}}
  • UserController.java   【Controller 层 接收前端请求 ,     所在包:top.vkiss.ssm.controller】

package top.vkiss.ssm.controller;import java.util.List;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 top.vkiss.ssm.domain.User;
import top.vkiss.ssm.service.UserService;@Controller
public class UserController {@Autowiredprivate UserService us;@RequestMapping("/queryAll")public String queryAll(Model model) throws Exception{model.addAttribute("uList", us.queryAll());return "shouye";}@RequestMapping("/addUser")public String addUser(User user) throws Exception {System.out.println("addUser:"+user);us.addUser(user);return "redirect:queryAll.action";}@RequestMapping("/delUser")public String delUser(Integer id) throws Exception {System.out.println("del_id:"+id);us.delUser(id);return "redirect:queryAll.action";}@RequestMapping("/delS")public String delS(int[] ids) throws Exception {System.out.println("del_id:"+ids);for (int i : ids) {us.delUser(i);}return "redirect:queryAll.action";}@RequestMapping("/editUser")public String editUser(User user) throws Exception {System.out.println(user.getUname());us.editUser(user);return "redirect:queryAll.action";}@RequestMapping("/getUser")public String getUser(Model model,Integer id) throws Exception {System.out.println(id);System.out.println("...."+us.getUser(id));model.addAttribute("u", us.getUser(id));return "edit";}@RequestMapping("/showAdd")public String showAdd() throws Exception {return "addUs";}
}
  • myTask.java   【其他  层   SpringMVC 定时器 ,     所在包:top.vkiss.ssm.task】

package top.vkiss.ssm.task;import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;/***  本项目中没有用到,仅作学习使用*/@Component("task")
public class myTask {@Scheduled(cron="* * * * * *")public void zhh(){System.out.println("999999999999999");}
}

页面资源

index.jsp   项目启动用于重定向跳转

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
response.sendRedirect("queryAll.action");
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>This is my JSP page. <br></body>
</html>

shouye,jsp    列表页 用于展示用户数据

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><script type="text/javascript" src="../js/jquery-1.8.3.min.js"></script><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript">function dels(){var ids= new Array();alert(ids);var bb = $("._checked").val();alert(bb);$.each($("table tbody input[type=checkbox]:checked"),function(){alert(1);})alert("2");}</script></head><body>This Is My First SSM Application. <br><div align="center"><table ><tr><td><button onclick="dels()">点击删除多条</button></td><td>UID</td><td>姓名</td><td>性别</td><td>地址</td><td>操作</td></tr><tbody><c:forEach items="${uList}" var="u"><tr><td><input type="checkbox" name="checkbox" class="_checked" value="${u.uid }"> </td><td>${u.uid }</td><td>${u.uname }</td><td>${u.phone }</td><td>${u.address }</td><td><a href="getUser.action?id=${u.uid }">【修改】</a><a href="delUser.action?id=${u.uid }">【删除】</a></td></tr></c:forEach></tbody></table><p><a href="showAdd.action">点击添加</a></p><p></p></div></body>
</html>

addUs.jsp    添加用户页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript"></script></head><body><div align="center"><form action="addUser.action" method="post"><p>姓名:<input type="text" name="uname" value="${u.name}"/></p><p>性别:<input type="text" name="phone" value="${u.phone}"/></p><p>地址:<input type="text" name="address" value="${u.address}"/></p><p><input type="submit" value="提交"/></p></form></div></body>
</html>

edit.jsp        修改页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><div align="center"><form action="editUser.action" method="post"><p><input type="hidden" name="uid" value="${u.uid}"/>姓名:<input type="text" name="uname" value="${u.uname}"/></p><p>性别:<input type="text" name="phone" value="${u.phone}"/></p><p>地址:<input type="text" name="address" value="${u.address}"/></p><p><input type="submit" value="修改"/></p></form></div></body>
</html>

至此简单SSM项目整合完毕

附带项目源码:SSM项目整合   

所用Jar包 截图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/3Bv56i2r.shtml

相关文章

java ssm框架项目_3个SSM框架应用实例教程

SSM框架简介 SSM(SpringSpringMVCMyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成&#xff0c;常作为数据源较简单的web项目的框架。 文章主要介绍3个SSM框架应用的实例教程&#xff0c;非常适合想学习应用该整合框架的小伙伴。 该项目假设为开发一个简单的用…

SSM框架整合实例

1.数据准备 创建一个数据库并取名为ssm&#xff0c;在数据库ssm下创建user表&#xff1b;对应的sql脚本如下&#xff0c;这里我们直接使用navicat工具更方便。 create database ssm;use ssm; create table user(id int primary key auto_increment,username varchar(20),pass…

SSM框架整合+简单案例实现

SSM框架整合简单案例实现 文章目录 前言一、SpringSpringMVCMybatis框架整合1.建立一个新的web项目2.所需jar包3.建立数据库表与实体类之间的映射4.web.xml5.数据库信息db.properties6.Spring与Mybatis的整合7.SpringMVC基本配置 二、整合测试1.结构展示2.studentMapper.xml3.s…

ssm框架的简单案例

学完ssm框架后做了一个简单的案例&#xff0c;实现简单的增删改查。 项目结构图&#xff1a; 看项目结构&#xff1a; 关键代码&#xff1a; 前端是jsp技术&#xff0c;当然也可以用vue分离的自己选择就好。 订单页面&#xff1a; <% page language"java&quo…

SSM框架开发-基础案例

SSM框架整合基础案例详解 1.数据库环境 创建一个存放书籍数据的数据库表 CREATE DATABASE ssmbuild;USE ssmbuild;DROP TABLE IF EXISTS books;CREATE TABLE books (bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书id,bookName VARCHAR(100) NOT NULL COMMENT 书名,bookCou…

SSM框架简单实例

1、SSM框架 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成&#xff0c;常作为数据源较简单的web项目的框架。 2、简单实例 &#xff08;1&#xff09;项目结构 &#xff08;2&#xff09;PageBean.java packa…

用SSM实现简单实例

SSM的简例实现 这是项目完整代码的链接地址 [https://download.csdn.net/download/m0_46308149/12961224]源码地址 SSM介绍 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、MyBatis两个开源框架整合而成&#xff08;SpringMVC是Spring中的部分内容&am…

SpringMVC笔记——SSM框架搭建简单实例

简介 SpringSpringMVCMyBatis框架&#xff08;SSM&#xff09;是比较热门的中小型企业级项目开发的框架&#xff0c;对于新手来说也是比较容易学习入门的。虽说容易&#xff0c;但在框架搭建过程中仍然遇到了许多问题&#xff0c;因此用实例记录下来吧。 实例 第一步——导包 S…

SSM框架整合+案例

SSM框架整合 1、环境要求2、数据库环境3、基本环境搭建3.1 创建项目3.2 Maven项目添加web支持3.3 配置pom.xml文件3.4 建立框架的基本结构和配置文件3.4.1 创建包3.4.2 添加配置文件3.4.3 database.properties文件3.4.4 mybatis-config.xml 文件3.4.5 applicationContext.xml 文…

C# SqlHelper类的使用

SqlHelper类 1.首先SqlHelper类是一个基于.NET Framework的数据库操作组件&#xff0c;包含了数据库的操作方法。可以简化在C#中使用ADO.NET连接数据库时每次都要编写连接、打开、执行SQL语句的代码&#xff0c;它将每次连接都要写的代码封装成方法&#xff0c;把要执行的SQL语…

SqlHelper类(C#)

大神可以绕道了... 目的&#xff1a;搜集SqlHelper类 自己写的一个SQLHelper类&#xff0c;如下&#xff1a; 编辑App.config节点&#xff0c;添加<connectionStrings>节点&#xff0c;并根据实际填上相应的参数 <?xml version"1.0" encoding"utf…

SQLHelper

前言 小编在最近的学习过程中用到了SQLHelper&#xff0c;说起来&#xff0c;小编也是有点懒&#xff0c;虽然是用到了&#xff0c;但是也没有用明白&#xff0c;开始的时候也没有好好的研究&#xff0c;直到后来报错了&#xff0c;才下定决心好好好学习了解一下这个东西。下面…

sqlhelper 的使用 (C#)超级详细的入门教程

sql helper 的使用 &#xff08;C#&#xff09;小白教程 提到CRUD&#xff0c;很多刚入门的小白总是来一条写一条连接&#xff0c;先建立连接connection 打开连接 open 来查询query 最后别忘了关闭连接 close 。 要是一次写多个操作&#xff0c;那一遍一遍写下来肯定麻木了。…

Python中的BIF

什么是BIF呢&#xff1f; BIF是built-in functions的缩写&#xff0c;顾名思义&#xff0c;就是内建函数。Python中提供了大量的BIF&#xff0c;这就意味着代码量可以大大减少。 如果要查看Python中的内建函数&#xff0c;就可以使用命令&#xff1a;dir(__builtins__) 注意…

一、bif

缩进是python的灵魂&#xff0c;缩进可以使python的代码整洁&#xff0c;有层次。 python是脚本语言&#xff0c;就是为了简单方便以辅助科学运算&#xff0c;因此python有许多bif&#xff0c;build in function 全部都是小写的就是bif。 转义字符是一个字符&#xff0c;在内存…

FineBI

还是数据可视化工具Tableau、FineBI? 不禁联想起在微软系统出现之前&#xff0c;程序员的电脑系统还是用的linux&#xff0c;只能通过各种复杂的指令来实现字符的简单可视化&#xff1b;而当win系统普及于世后&#xff0c;计算机从此突破了技术人群的限制&#xff0c;交互方式…

Python学习笔记2(小甲鱼)—— 内置函数BIF

&#xfeff;&#xfeff; 这里有一个让人“亮瞎眼”的“游戏”开始python的学习。首先我们编写一段代码&#xff0c;来实现这个游戏。编写操作可参考前面的《Python学习笔记1——搭建环境与“Hello World”》这篇文章&#xff0c;网址&#xff1a;http://blog.csdn.net/tongbi…

BSDiff算法

https://blog.csdn.net/add_ada/article/details/51232889 BSDiff是一个差量更新算法&#xff0c;它在服务器端运行BSDiff算法产生patch包&#xff0c;在客户端运行BSPatch算法&#xff0c;将旧文件和patch包合成新文件。 差量更新算法的核心思想 尽可能多的利用old文件中已有…

MFBI

MFBI MFBI: Multi-Frequency Band Indicator 之前在写” Carrier frequency 和 EARFCN的关系”, 提到过MFBI. 简单的讲就是不同band间对应的frequency 的范围之间有overlapping, 一个frequency 可能对应多个band. 比如2595MHz 即属于band38 又属于band41. 关于那些band间存…

Python的内置函数(BIF)与变量的使用

Python的内置函数&#xff08;BIF&#xff09;与变量的使用 1、内置函数 使用dir()可查看所有的内置函数 dir(__builtins__)使用help()可查看内置函数的功能&#xff0c;例如&#xff1a; help(UserWarning)2、input函数 作用是在控制台输入数据&#xff0c;返回的是字符串…