SSM框架整合+案例

article/2025/9/18 12:39:47

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 文件
        • 3.4.6 spring-dao.xml 文件
        • 3.4.7 spring-service.xml文件
      • 3.4.8 spring-mvc.xml文件
      • 3.5 框架配置 web.xml文件
    • 4、案例
      • 4.1 创建实体类Books
      • 4.2 编写Mapper接口
      • 4.3 编写Mapper.xml文件
      • 4.4 编写业务层接口BookService
      • 4.5 编写业务层接口BookService 实现类BookServiceImpl
      • 4.6 编写控制层BooksController
      • 4.7 前端页面
        • 4.7.1 index.jsp页面
        • 4.7.2 allBook.jsp页面
        • 4.7.3 addBook.jsp页面
        • 4.7.4 updateBook.jsp页面
        • 4.7.5 运行展示图:

1、环境要求

环境:

开发工具:IDEA  
数据库:MySQL 8  
服务器:Tomcat 9  
Maven 3.6

要求:
需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;

2、数据库环境

创建一个存放书籍数据的数据库表

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 '书名', `bookCounts` INT(11) NOT NULL COMMENT '数量', `detail` VARCHAR(200) NOT NULL COMMENT '描述', KEY `bookID` (`bookID`) 
) ENGINE=INNODB DEFAULT CHARSET=utf8 INSERT INTO `books`(`bookID`,`bookName`,`bookCounts`,`detail`)
VALUES (1,'Java',1,'从入门到放弃'), (2,'MySQL',10,'从删库到跑路'), (3,'Linux',5,'从进门到进牢');

3、基本环境搭建

3.1 创建项目

  1. 打开idea,创建新项目。
    在这里插入图片描述
    新建一Maven项目
    在这里插入图片描述
    项目名字叫ssm
    在这里插入图片描述
    创建完成以后,maven目录结构如下:
    在这里插入图片描述

3.2 Maven项目添加web支持

右键项目添加web支持
在这里插入图片描述
选择添加web框架,注意版本,点击OK!
在这里插入图片描述
添加后,idea会自动生成web目录
在这里插入图片描述

3.3 配置pom.xml文件

在pom.xml文件中导入相关的pom依赖,设置静态资源过滤!

    <dependencies><!--junit单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!--mysql数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency><!--数据库连接池c3p0--><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.5</version></dependency><!--Servlet - JSP --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--Mybatis框架整合--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><!--springMVC--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.5</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.5</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.0</version></dependency><!--aop事务--><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.6</version></dependency><!--其他工具--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.20</version><scope>compile</scope></dependency></dependencies><!--Maven资源过滤设置--><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>

3.4 建立框架的基本结构和配置文件

3.4.1 创建包

  • com.ssm.pojo
  • com.ssm.dao
  • com.ssm.service
  • com.ssm.controller
  • com.ssm.service.Impl

创建后,如下图:
在这里插入图片描述

3.4.2 添加配置文件

在resources文件夹下创建以下几个配置文件

  • mybatis-config.xml
  • applicationContext.xml
  • database.properties
  • spring-dao.xml
  • spring-service.xml
  • spring-mvc.xml

添加完成,如下图:
在这里插入图片描述

3.4.3 database.properties文件

jdbc.Driver = com.mysql.cj.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/2022?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
jdbc.username = root
jdbc.password = 123456

3.4.4 mybatis-config.xml 文件

<?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><setting name="logImpl" value="STDOUT_LOGGING"/></settings><!--别名--><typeAliases><package name="com.ming.pojo"/></typeAliases><mappers><mapper resource="com/ssm/dao/BookMapper.xml"/></mappers>
</configuration>

3.4.5 applicationContext.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:content="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--引入整合配置文件--><import resource="spring-dao.xml"/><import resource="spring-mvc.xml"/><import resource="spring-service.xml"/>
</beans>

3.4.6 spring-dao.xml 文件

配置Spring整合MyBatis,我们这里数据源使用c3p0连接池:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:content="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置整合mybatis --><!-- 1.关联数据库文件 --><content:property-placeholder location="classpath*:db.properties"/><!-- 2.数据库连接池 --><!--数据库连接池dbcp 半自动化操作 不能自动连接c3p0 自动化操作(自动的加载配置文件 并且设置到对象里面)--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><!-- 配置连接池属性 --><property name="driverClass" value="${jdbc.Driver}"></property><property name="jdbcUrl" value="${jdbc.url}"></property><property name="user" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property><!-- c3p0连接池的私有属性 --><property name="maxPoolSize" value="30"/><property name="minPoolSize" value="10"/><!-- 关闭连接后不自动commit --><property name="autoCommitOnClose" value="false"/><!-- 获取连接超时时间 --><property name="checkoutTimeout" value="10000"/><!-- 当获取连接失败重试次数 --><property name="acquireRetryAttempts" value="2"/></bean><!-- 3.配置SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入sqlSessionFactory --><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis-config.xml"/></bean><!-- 4.配置扫描Dao接口包,动态实现Dao接口注入到spring容器中 --><!--解释 : https://www.cnblogs.com/jpfss/p/7799806.html--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 注入sqlSessionFactory --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!-- 给出需要扫描Dao接口包 --><property name="basePackage" value="com.ming.dao"/></bean>
</beans>

3.4.7 spring-service.xml文件

Spring整合service层

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:content="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><import resource="spring-dao.xml"/><!--spring整合service层--><!-- 1、扫描service相关的bean --><content:component-scan base-package="com.ssm.service"/><!-- 2、将我们的所有的业务类,注入到Spring,可以通过配置,或注解实现--><!--等价于  在类上添加 @Service--><bean id="BookServiceImpl" class="com.ssm.service.Impl.BookServiceImpl"><property name="bookMapper" ref="bookMapper"/></bean><!-- 3、声明式事务配置 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/></bean><!-- 4、aop事务支持--><!--配置事务通知--><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><!--配置哪些方法使用什么样的事务,配置事务的传播特性--><tx:method name="*" propagation="REQUIRED"/></tx:attributes></tx:advice><aop:config><aop:pointcut id="txPointcut" expression="execution(* com.ssm.dao.*.*(..))"/><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"></aop:advisor></aop:config></beans>

3.4.8 spring-mvc.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 配置SpringMVC --><!-- 1.开启SpringMVC注解驱动 --><mvc:annotation-driven/><!-- 2.静态资源默认servlet配置--><mvc:default-servlet-handler/><!-- 3.配置ViewResolver视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!-- 4.扫描包(controller类) --><context:component-scan base-package="com.ssm.controller"/>
</beans>

3.5 框架配置 web.xml文件

在这里插入图片描述

web.xml文件内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--前端控制器!!最重要!!!!--><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!--一定要注意:我们这里加载的是总的配置文件,之前被这里坑了!--><param-value>classpath*:applicationContext.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--处理字符乱码问题 encodingFilter--><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><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--Session过期时间--><session-config><session-timeout>15</session-timeout></session-config></web-app>

4、案例

目录结构如下:
在这里插入图片描述

4.1 创建实体类Books

package com.ssm.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {private int bookID;private String bookName;private int bookCounts;private String detail;
}

4.2 编写Mapper接口

package com.ssm.dao;
import com.ssm.pojo.Books;
import java.util.List;public interface BookMapper {int addBook(Books book);int deleteBookById(int id);int updateBook(Books book);Books queryBookById(int id);List<Books> queryAllBooks();List<Books> queryBookByName(String bookName);
}

4.3 编写Mapper.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.ssm.dao.BookMapper"><insert id="addBook" parameterType="Books">insert  into booksvalues(#{bookID},#{bookName},#{bookCounts},#{detail})</insert><delete id="deleteBookById" parameterType="int">deletefrom bookswhere bookID = #{id}</delete><update id="updateBook" parameterType="Books">update booksset bookName= #{bookName}, bookCounts= #{bookCounts},detail= #{detail}where bookID = #{bookID}</update><select id="queryBookById" parameterType="int" resultType="Books">select *from bookswhere bookID= #{id}</select><select id="queryAllBooks" resultType="Books">select  *from books</select><select id="queryBookByName" parameterType="string" resultType="Books">select *from bookswhere bookName = #{bookName}</select>
</mapper>

4.4 编写业务层接口BookService

package com.ssm.service;
import com.ssm.pojo.Books;
import java.util.List;
public interface BookService {int addBook(Books book);int deleteBookById(int id);int updateBook(Books book);Books queryBookById(int id);List<Books> queryAllBooks();List<Books> queryBookByName(String bookName);
}

4.5 编写业务层接口BookService 实现类BookServiceImpl

package com.ming.service.Impl;
import com.ming.dao.BookMapper;
import com.ming.pojo.Books;
import com.ming.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
public class BookServiceImpl implements BookService {//调用dao层的操作,设置一个set接口,方便Spring管理@Autowiredprivate BookMapper bookMapper;public void setBookMapper(BookMapper bookMapper) {this.bookMapper = bookMapper;}public int addBook(Books book) {return bookMapper.addBook(book);}public int deleteBookById(int id) {return bookMapper.deleteBookById(id);}public int updateBook(Books book) {return bookMapper.updateBook(book);}public Books queryBookById(int id) {return bookMapper.queryBookById(id);}public List<Books> queryAllBooks() {return bookMapper.queryAllBooks();}public List<Books> queryBookByName(String bookName) {return bookMapper.queryBookByName(bookName);}
}

4.6 编写控制层BooksController

package com.ssm.controller;import com.ssm.pojo.Books;
import com.ssm.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;@Controller
@RequestMapping("/book")
public class BooksController {@Autowiredprivate BookService bookService;//查询所有图书@GetMapping("/queryAllBooks")public String queryAllBooks(Model model) {List<Books> books = bookService.queryAllBooks();System.out.println(books.toString());model.addAttribute("books", books);//通过视图解析器返回allBook.jspreturn "allBook";}@RequestMapping("/toAddBook")public String toAddPaper() {return "addBook";}//添加图书@PostMapping("/addBook")public String addBook(Books books, Model model) {System.out.println(books);int i = bookService.addBook(books);if (i == 1) {model.addAttribute("msg", "添加成功!");return "redirect:/book/queryAllBooks";} else {model.addAttribute("msg", "添加失败!");return "redirect:/book/queryAllBooks";}}//更新图书@PostMapping("/updateBook")public String updateBook(Books book,Model model){System.out.println(book);int i = bookService.updateBook(book);if (i == 1) {model.addAttribute("msg", "修改成功!");return "redirect:/book/queryAllBooks";} else {model.addAttribute("msg", "修改失败!");return "redirect:/book/queryAllBooks";}}@GetMapping("/toUpdateBook")public String toUpdateBook(int id,Model model){Books books = bookService.queryBookById(id);model.addAttribute("book",books);return "updateBook";}//删除图书@RequestMapping("/del/{bookID}")public String deleteBookById(@PathVariable("bookID") int id,Model model){System.out.println("---------------------");System.out.println(id);int i = bookService.deleteBookById(id);if (i == 1) {return "redirect:/book/queryAllBooks";} else{return "index";}}@PostMapping("/queryBookByName")public String queryBookByName(String queryBookName , Model model){System.out.println("搜索!!!");List<Books> books = bookService.queryBookByName(queryBookName);if (books==null){books = bookService.queryAllBooks();model.addAttribute("books",books);}else{model.addAttribute("books",books);}return "allBook";}
}

4.7 前端页面

4.7.1 index.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE HTML>
<html>
<head><title>首页</title><style type="text/css"> a {text-decoration: none;color: black;font-size: 18px;}h3 {width: 180px;height: 38px;margin: 100px auto;text-align: center;line-height: 38px;background: deepskyblue;border-radius: 4px;} </style>
</head>
<body>
<h1 style="color: red">${msg}</h1>
<h3><a href="${pageContext.request.contextPath}/book/queryAllBooks">点击进入列表页</a>
</h3>
</body>
</html>

4.7.2 allBook.jsp页面

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>书籍列表</title><meta name="viewport" content="width=device-width, initial- scale=1.0"><!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>书籍列表 —— 显示所有书籍</small></h1><c:if test="${msg}!=null"><h2><small>${msg}</small></h2></c:if></div></div><div class="col-md-4 column"></div><div class="col-md-4 column"><form class="form-inline" action="${pageContext.request.contextPath}/book/queryBookByName" method="post" style="float: right"><input type="text" name="queryBookName" class="form-control" placeholder="输入查询书名" required><input type="submit" value="查询" class="btn btn-primary"></form></div></div><div class="row"><div class="col-md-4 column"><a class="btn btn-primary" href="${pageContext.request.contextPath}/book/toAddBook">新增</a></div></div><div class="row clearfix"><div class="col-md-12 column"><table class="table table-hover table-striped"><thead><tr><th>书籍编号</th><th>书籍名字</th><th>书籍数量</th><th>书籍详情</th><th>操作</th></tr></thead><tbody><c:forEach var="book" items="${requestScope.get('books')}"><tr><td>${book.getBookID()}</td><td>${book.getBookName()}</td><td>${book.getBookCounts()}</td><td>${book.getDetail()}</td><td><a href="${pageContext.request.contextPath}/book/toUpdateBook?id=${book.getBookID()}">更改</a><a href="${pageContext.request.contextPath}/book/del/${book.getBookID()}"> 删除</a></td></tr></c:forEach></tbody></table></div></div>
</div>

4.7.3 addBook.jsp页面

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>新增书籍</title><meta name="viewport" content="width=device-width, initial- scale=1.0"> <!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>新增书籍</small></h1></div></div></div><form action="${pageContext.request.contextPath}/book/addBook" method="post">书籍名称:<input type="text" name="bookName"><br><br><br>书籍数量:<input type="text" name="bookCounts"><br><br><br>书籍详情:<input type="text" name="detail"><br><br><br><input type="submit" value="添加"></form>
</div>

4.7.4 updateBook.jsp页面

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>修改信息</title><meta name="viewport" content="width=device-width, initial- scale=1.0"> <!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>修改信息</small></h1></div></div></div><form action="${pageContext.request.contextPath}/book/updateBook" method="post"><input type="hidden" name="bookID" value="${book.getBookID()}"/>书籍名称:<input type="text" name="bookName" value="${book.getBookName()}"/>书籍数量:<input type="text" name="bookCounts" value="${book.getBookCounts()}"/>书籍详情:<input type="text" name="detail" value="${book.getDetail() }"/><input type="submit" value="提交"/></form>
</div>

4.7.5 运行展示图:

查询所有图书:
在这里插入图片描述
添加图书:
在这里插入图片描述
更新图书:
在这里插入图片描述

结束!!!


http://chatgpt.dhexx.cn/article/Pu8XFo5o.shtml

相关文章

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;返回的是字符串…

Python内置函数(BIF)查询(附中文详解说明)

我们知道&#xff0c;Python 解释器内置了一些常量和函数&#xff0c;叫做内置常量&#xff08;Built-in Constants&#xff09;和内置函数&#xff08;Built-in Functions&#xff09;&#xff0c;来实现各种不同的特定功能&#xff0c;在我的另外一篇博客中 第8章&#xff1a…

【BF算法】

BF 算法 BF 算法精讲 在学习到字符串的匹配问题时&#xff0c;了解到了BF算法和KMP算法。 对比这两个算法&#xff0c;先了解BF算法&#xff1b; 字符串匹配问题&#xff0c;比如说&#xff1a;有一个主串 “abbbcdef” &#xff0c; 子串 “bbc”&#xff0c;该问题就是在主…

BIF

python3的内置函数

Python中常见BIF及使用方法

前提说明&#xff1a; BIF&#xff1a;(built-in functions)内置函数 目的&#xff1a;为了方便程序员快速的编写程序 1.查看Python内置函数命令&#xff1a; dir(__builtins__) print(dir(__builtins__))结果如下&#xff1a; 2.help查看使用方法 如&#xff1a; hel…

认识BIF

1.打开IDLE窗口&#xff0c;file新建一个窗口&#xff0c;输入以下代码&#xff1a; 点击file&#xff0c;save保存&#xff0c;接着点击run&#xff0c;或者F5执行 Python对于缩进的命令很敏感&#xff0c;如果这样改就会错误 else后面的冒号可以智能进行缩进&#xff0c;回车…

python中的几个概念:BIF,函数,方法,模块,包,库

一、BIF&#xff08;built in founctions&#xff0c;内置函数&#xff09;&#xff1a;python自带函数&#xff0c;直接调用即可&#xff0c;python3自带函数如下&#xff1a; 二、函数&#xff08;function&#xff09;&#xff1a;就是方法&#xff0c;使用def 定义 三、模…

SQL优化面试专题

介绍&#xff1a; 无论您是创建Web应用程序的开发人员&#xff0c;还是参与Web测试的DBA或测试人员&#xff0c;SQL方面的技巧在数据库编程和数据库验证中都非常重要。因此&#xff0c;我们整理了QL性能优化方面的面试问题。 SQL性能优化是一项艰巨的任务&#xff0c;并且是处…

有哪些SQL优化的手段?

文章目录 1.1 SQL的性能分析1.1.1 通过 show status 命令了解各种 SQL 的执行频率1.1.2 慢查询日志1.1.3 profile分析1.1.4 通过 EXPLAIN 分析低效 SQL 的执行计划 1.2 常用的SQL语句优化 1.1 SQL的性能分析 当面对一个有 SQL 性能问题的数据库时&#xff0c;我们应该首先进行系…

SQL优化终于干掉了“distinct”

SQL优化之多表联合查询干掉“distinct”去重关键字 一、优化目的二、优化之前的sql长这样三、DISTINCT关键字的用法四、谈&#xff1a;如何优化distinct的sql五、distinct真的和group by等价吗&#xff1f;六、优化后的sql长啥样?七、总结2020.10.14更【来自评论区大佬的精彩观…