• SpringMVC:整合SSM框架


    一、大致框架

    1.建立数据库,并导入数据

    create database cjgl; 
    1. create table books(
    2. bookID int(10) not null auto_increment comment '书id',
    3. bookName varchar(100) not null comment '书名',
    4. bookCounts int(11) not null comment '数量',
    5. detail varchar(200) not null comment '描述',
    6. key bookID(bookID)
    7. )engine=innodb default charset=utf8
    1. insert into books(bookID,bookName,bookCounts,detail)values
    2. (1,'java',1,'从入门到放弃'),
    3. (2,'MySQL',10,'从删库到跑路'),
    4. (3,'Linux',5,'从进门到进牢');

    2.新建maven项目SSMZH

    鼠标右键点击SSMZH,添加框架框架支持

    选中web应用程序点击确定

    3.在pom.xml中导入相关的pom依赖!

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.springframeworkgroupId>
    4. <artifactId>spring-webmvcartifactId>
    5. <version>5.3.9version>
    6. dependency>
    7. <dependency>
    8. <groupId>org.springframeworkgroupId>
    9. <artifactId>spring-jdbcartifactId>
    10. <version>5.3.9version>
    11. dependency>
    12. <dependency>
    13. <groupId>junitgroupId>
    14. <artifactId>junitartifactId>
    15. <version>4.13.2version>
    16. <scope>testscope>
    17. dependency>
    18. <dependency>
    19. <groupId>mysqlgroupId>
    20. <artifactId>mysql-connector-javaartifactId>
    21. <version>8.0.17version>
    22. dependency>
    23. <dependency>
    24. <groupId>com.mchangegroupId>
    25. <artifactId>c3p0artifactId>
    26. <version>0.9.5.2version>
    27. dependency>
    28. <dependency>
    29. <groupId>javax.servletgroupId>
    30. <artifactId>servlet-apiartifactId>
    31. <version>2.5version>
    32. dependency>
    33. <dependency>
    34. <groupId>javax.servlet.jspgroupId>
    35. <artifactId>jsp-apiartifactId>
    36. <version>2.2version>
    37. dependency>
    38. <dependency>
    39. <groupId>javax.servletgroupId>
    40. <artifactId>jstlartifactId>
    41. <version>1.2version>
    42. dependency>
    43. <dependency>
    44. <groupId>org.apache.tomcatgroupId>
    45. <artifactId>tomcatartifactId>
    46. <version>8.5.38version>
    47. <type>pomtype>
    48. dependency>
    49. <dependency>
    50. <groupId>org.mybatisgroupId>
    51. <artifactId>mybatisartifactId>
    52. <version>3.5.6version>
    53. dependency>
    54. <dependency>
    55. <groupId>org.mybatisgroupId>
    56. <artifactId>mybatis-springartifactId>
    57. <version>2.0.5version>
    58. dependency>
    59. dependencies>
    60. <build>
    61. <resources>
    62. <resource>
    63. <directory>src/main/javadirectory>
    64. <includes>
    65. <include>**/*.propertiesinclude>
    66. <include>**/*.xmlinclude>
    67. includes>
    68. <filtering>falsefiltering>
    69. resource>
    70. <resource>
    71. <directory>src/main/resourcesdirectory>
    72. <includes>
    73. <include>**/*.propertiesinclude>
    74. <include>**/*.xmlinclude>
    75. includes>
    76. <filtering>falsefiltering>
    77. resource>
    78. resources>
    79. build>
    80. <properties>
    81. <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    82. properties>

    4.添加web模块, 添加web 支持

    鼠标右键点击文件选择项目结构,选择工件,在可用元素中点击第一个按住shift在点击最后一个全选,点击鼠标右键,置于/WEB-INF/lib然后点击确定

    5.建立基本结构和配置框架

    • yj.com.pojo

    • yj.com.mapper(dao)

    • yj.com.service

    • yj.com.controller

    6.在pojo包下建立Books类(和数据库中的表相对应)

     Books中一个四个属性,与表中属性必须的相对应

    全部代码如下:

    1. package yj.com.pojo;
    2. public class Books {
    3. private int bookID;
    4. private String bookName;
    5. private int bookCounts;
    6. private String detail;
    7. //添加无参构造、有参构造、getter/setter方法和tostring方法
    8. public Books() {
    9. }
    10. public Books(int bookID, String bookName, int bookCounts, String detail) {
    11. this.bookID = bookID;
    12. this.bookName = bookName;
    13. this.bookCounts = bookCounts;
    14. this.detail = detail;
    15. }
    16. public int getBookID() {
    17. return bookID;
    18. }
    19. public void setBookID(int bookID) {
    20. this.bookID = bookID;
    21. }
    22. public String getBookName() {
    23. return bookName;
    24. }
    25. public void setBookName(String bookName) {
    26. this.bookName = bookName;
    27. }
    28. public int getBookCounts() {
    29. return bookCounts;
    30. }
    31. public void setBookCounts(int bookCounts) {
    32. this.bookCounts = bookCounts;
    33. }
    34. public String getDetail() {
    35. return detail;
    36. }
    37. public void setDetail(String detail) {
    38. this.detail = detail;
    39. }
    40. @Override
    41. public String toString() {
    42. return "Books{" +
    43. "bookID=" + bookID +
    44. ", bookName='" + bookName + '\'' +
    45. ", bookCounts=" + bookCounts +
    46. ", detail='" + detail + '\'' +
    47. '}';
    48. }
    49. }

    7.在mapper包下建立接口BookMapper

    创建相关操作

    1. package yj.com.mapper;
    2. import yj.com.pojo.Books;
    3. import java.util.List;
    4. public interface BookMapper{
    5. //增加一个Book
    6. int addBook(Books books);
    7. //根据id删除一个Book
    8. int deleteBookById(int id);
    9. //更新Book
    10. int updateBook(Books books);
    11. //根据id查询,返回一个Book
    12. Books queryBookById(int id);
    13. //查询全部Book,返回list集合
    14. List queryAllBook();
    15. }

    8.在mapper包下建立文件BookMapper.xml并配置

    1. "1.0" encoding="UTF-8" ?>
    2. mapper
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    5. <mapper namespace="yj.com.mapper.BookMapper">
    6. <insert id="addBook" parameterType="Books">
    7. insert into cjgl.books(bookName,bookCounts,detail)
    8. values (#{bookName}, #{bookCounts}, #{detail})
    9. insert>
    10. <delete id="deleteBookById" parameterType="int">
    11. delete from cjgl.books where bookID=#{bookID}
    12. delete>
    13. <update id="updateBook" parameterType="Books">
    14. update cjgl.books
    15. set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
    16. update>
    17. <select id="queryBookById" parameterType="int" resultType="Books">
    18. select * from cjgl.books where bookID=#{bookID}
    19. select>
    20. <select id="queryAllBook" resultType="Books">
    21. select * from cjgl.books
    22. select>
    23. mapper>

     9.在service包下创建接口BookService作业务层

    做的业务和dao层的一样

    1. package yj.com.service;
    2. import yj.com.pojo.Books;
    3. import java.util.List;
    4. public interface BookService {
    5. //增加一个Book
    6. int addBook(Books books);
    7. //根据id删除一个Book
    8. int deleteBookById(int id);
    9. //更新Book
    10. int updateBook(Books books);
    11. //根据id查询,返回一个Book
    12. Books queryBookById(int id);
    13. //查询全部Book,返回list集合
    14. List queryAllBook();
    15. }

    10.在service下创建类BookServiceImpl

    1. package yj.com.service;
    2. import yj.com.mapper.BookMapper;
    3. import yj.com.pojo.Books;
    4. import java.util.List;
    5. //实现BookService 重写抽象方法
    6. public class BookServiceImpl implements BookService{
    7. //服务层连接dao层
    8. //创建一个dao层对象
    9. private BookMapper bookMapper;
    10. public void setBookMapper(BookMapper bookMapper) {
    11. this.bookMapper = bookMapper;
    12. }
    13. public int addBook(Books books) {
    14. return bookMapper.addBook(books);
    15. }
    16. public int deleteBookById(int id) {
    17. return bookMapper.deleteBookById(id);
    18. }
    19. public int updateBook(Books books) {
    20. return bookMapper.updateBook(books);
    21. }
    22. public Books queryBookById(int id) {
    23. return bookMapper.queryBookById(id);
    24. }
    25. public List queryAllBook() {
    26. return bookMapper.queryAllBook();
    27. }
    28. }

    11.在controller包下创建BookController类

    1. package yj.com.controller;
    2. import org.springframework.beans.factory.annotation.Autowired;
    3. import org.springframework.stereotype.Controller;
    4. import org.springframework.web.bind.annotation.RequestMapping;
    5. import yj.com.service.BookService;
    6. @Controller
    7. @RequestMapping("/book")
    8. public class BookController {
    9. //控制器调用Service层
    10. @Autowired
    11. private BookService bookService;
    12. }

    服务层(BookService)调用dao层(BookMapper),dao层调用pojo,控制器调用服务层

    二、开始建立配置文件

    1.   在resource下建立数据库配置文件database.properties

    1. jdbc.driver=com.mysql.cj.jdbc.Driver
    2. jdbc.url=jdbc:mysql://localhost:3306/cjgl?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&characterEncoding=utf-8
    3. jdbc.username=root
    4. jdbc.password=

    2. 在resource下编写MyBatis核心配置文件mybatis-config.xml

    1. "1.0" encoding="UTF-8" ?>
    2. configuration
    3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    5. <configuration>
    6. <typeAliases>
    7. <package name="yj.com.pojo"/>
    8. typeAliases>
    9. <mappers>
    10. <mapper resource="yj/com/mapper/BookMapper.xml"/>
    11. mappers>
    12. configuration>

    3.整合dao层,resource下编写配置spring-dao.xml文件

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans
    6. http://www.springframework.org/schema/beans/spring-beans.xsd
    7. http://www.springframework.org/schema/context
    8. https://www.springframework.org/schema/context/spring-context.xsd">
    9. <context:property-placeholder location="classpath:database.properties"/>
    10. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    11. <property name="driverClass" value="${jdbc.driver}"/>
    12. <property name="jdbcUrl" value="${jdbc.url}"/>
    13. <property name="user" value="${jdbc.username}"/>
    14. <property name="password" value="${jdbc.password}"/>
    15. <property name="maxPoolSize" value="30"/>
    16. <property name="minPoolSize" value="10"/>
    17. <property name="autoCommitOnClose" value="false"/>
    18. <property name="checkoutTimeout" value="10000"/>
    19. <property name="acquireRetryAttempts" value="2"/>
    20. bean>
    21. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    22. <property name="dataSource" ref="dataSource"/>
    23. <property name="configLocation" value="classpath:mybatis-config.xml"/>
    24. bean>
    25. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    26. <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    27. <property name="basePackage" value="yj.com.mapper"/>
    28. bean>
    29. beans>

    4.Spring整合service层 , resource下编写配置spring-service.xml

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans
    6. http://www.springframework.org/schema/beans/spring-beans.xsd
    7. http://www.springframework.org/schema/context
    8. http://www.springframework.org/schema/context/spring-context.xsd">
    9. <context:component-scan base-package="yj.com.service" />
    10. <bean id="BookServiceImpl" class="yj.com.service.BookServiceImpl">
    11. <property name="bookMapper" ref="bookMapper"/>
    12. bean>
    13. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    14. <property name="dataSource" ref="dataSource" />
    15. bean>
    16. beans>

    此处正常有两处应该是红的,如果不是则前面有错误(文件没配置完所以报红)

    5.整合前段 , resource下编写配置spring-mvc.xml

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:mvc="http://www.springframework.org/schema/mvc"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans
    7. http://www.springframework.org/schema/beans/spring-beans.xsd
    8. http://www.springframework.org/schema/context
    9. http://www.springframework.org/schema/context/spring-context.xsd
    10. http://www.springframework.org/schema/mvc
    11. https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    12. <mvc:annotation-driven />
    13. <mvc:default-servlet-handler/>
    14. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    15. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    16. <property name="prefix" value="/WEB-INF/jsp/" />
    17. <property name="suffix" value=".jsp" />
    18. bean>
    19. <context:component-scan base-package="yj.com.controller" />
    20. beans>

    6.全局配置文件,resource下编写配置applicationContext.xml

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://www.springframework.org/schema/beans
    5. http://www.springframework.org/schema/beans/spring-beans.xsd">
    6. <import resource="spring-dao.xml"/>
    7. <import resource="spring-service.xml"/>
    8. <import resource="spring-mvc.xml"/>
    9. beans>

    三、配置前段

    1.配置前段控制器(中央控制器)web.xml

    1. "1.0" encoding="UTF-8"?>
    2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    5. version="4.0">
    6. <servlet>
    7. <servlet-name>DispatcherServletservlet-name>
    8. <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    9. <init-param>
    10. <param-name>contextConfigLocationparam-name>
    11. <param-value>classpath:applicationContext.xmlparam-value>
    12. init-param>
    13. <load-on-startup>1load-on-startup>
    14. servlet>
    15. <servlet-mapping>
    16. <servlet-name>DispatcherServletservlet-name>
    17. <url-pattern>/url-pattern>
    18. servlet-mapping>
    19. <filter>
    20. <filter-name>CharacterEncodingFilterfilter-name>
    21. <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
    22. <init-param>
    23. <param-name>encodingparam-name>
    24. <param-value>utf-8param-value>
    25. init-param>
    26. filter>
    27. <filter-mapping>
    28. <filter-name>CharacterEncodingFilterfilter-name>
    29. <url-pattern>/*url-pattern>
    30. filter-mapping>
    31. <session-config>
    32. <session-timeout>15session-timeout>
    33. session-config>
    34. web-app>

    2.在文件WEB-INF下建立目录jsp,如下

    3.配置index.jsp

    1. <%--
    2. Created by IntelliJ IDEA.
    3. User: yangj
    4. Date: 2022/12/5
    5. Time: 15:12
    6. To change this template use File | Settings | File Templates.
    7. --%>
    8. <<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    9. <html>
    10. <head>
    11. <title>首页title>
    12. <style type="text/css">
    13. a {
    14. text-decoration: none;
    15. color: black;
    16. font-size: 18px;
    17. }
    18. h3 {
    19. width: 180px;
    20. height: 38px;
    21. margin: 100px auto;
    22. text-align: center;
    23. line-height: 38px;
    24. background: deepskyblue;
    25. border-radius: 4px;
    26. }
    27. style>
    28. head>
    29. <body>
    30. <h3>
    31. <a href="${pageContext.request.contextPath}/book/allBook">点击进入图书管理列表a>
    32. h3>
    33. body>
    34. html>

     4.配置BookController

    1. package yj.com.controller;
    2. import org.springframework.beans.factory.annotation.Autowired;
    3. import org.springframework.stereotype.Controller;
    4. import org.springframework.ui.Model;
    5. import org.springframework.web.bind.annotation.RequestMapping;
    6. import yj.com.pojo.Books;
    7. import yj.com.service.BookService;
    8. import java.util.List;
    9. @Controller
    10. @RequestMapping("/book")
    11. public class BookController {
    12. //控制器调用Service层
    13. @Autowired
    14. private BookService bookService;
    15. @RequestMapping("allBook")
    16. public String list(Model model) {
    17. List list = bookService.queryAllBook();
    18. model.addAttribute("list", list);
    19. return "allBook";
    20. }
    21. }

    5.在jsp目录下创建并配置文件allBook.jsp

    1. <%--
    2. Created by IntelliJ IDEA.
    3. User: yangj
    4. Date: 2022/12/6
    5. Time: 9:59
    6. To change this template use File | Settings | File Templates.
    7. --%>
    8. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    9. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    10. <html>
    11. <head>
    12. <title>书籍列表title>
    13. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    14. <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"rel="stylesheet">
    15. head>
    16. <body>
    17. <div class="row clearfix">
    18. <div class="col-md-12 column">
    19. <div class="page-header">
    20. <h1>
    21. <small>书籍列表 —— 显示所有书籍small>
    22. h1>
    23. div>
    24. div>
    25. div>
    26. <div class="row">
    27. <div class="col-md-4 column">
    28. <a class="btn btn-primary" href="${pageContext.request.contextPath}/book/toAddBook">新增a>
    29. div>
    30. div>
    31. <div class="row clearfix">
    32. <div class="col-md-12 column">
    33. <table class="table table-hover table-striped">
    34. <thead>
    35. <tr>
    36. <th>书籍编号th><th>书籍名字th><th>书籍数量th><th>书籍详情th><th>操作th>
    37. tr>
    38. thead>
    39. <tbody>
    40. <c:forEach var="book" items="${requestScope.get('list')}">
    41. <tr>
    42. <td>${book.getBookID()}td>
    43. <td>${book.getBookName()}td>
    44. <td>${book.getBookCounts()}td>
    45. <td>${book.getDetail()}td>
    46. <td>
    47. <a href="${pageContext.request.contextPath}/book/toUpdateBook?id=${book.getBookID()}">更改a> |
    48. <a href="${pageContext.request.contextPath}/book/del/${book.getBookID()}">删除a>
    49. td>
    50. tr>
    51. c:forEach>
    52. tbody>
    53. table>
    54. div>
    55. div>
    56. body>
    57. html>

    6.配置服务器

    添加配置,点击加号,找到Tomcat Server 本地服务,名称随便什么,应用程序服务器如下tomcat233,部署配置如下点击加号,添加工件,应用程序上下文改为:“/”,然后确定

    7.运行程序

    8.实现添加功能。

    在BookController下继续配置

    1. @RequestMapping("/toAddBook")
    2. public String toAddpaper(){
    3. return "addBook";
    4. }
    5. @RequestMapping("/addBook")
    6. public String addPaper(Books books){
    7. System.out.println(books);
    8. bookService.addBook(books);
    9. return "redirect:/book/allBook";
    10. }

    在jsp下创建配置addBook.jsp文件

    1. <%--
    2. Created by IntelliJ IDEA.
    3. User: yangj
    4. Date: 2022/12/6
    5. Time: 10:13
    6. To change this template use File | Settings | File Templates.
    7. --%>
    8. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    9. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    10. <html>
    11. <head>
    12. <title>新增书籍title>
    13. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    14. <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"rel="stylesheet">
    15. head>
    16. <body>
    17. <div class="container">
    18. <div class="row clearfix">
    19. <div class="col-md-12 column">
    20. <div class="page-header">
    21. <h1>
    22. <small>新增书籍small>
    23. h1>
    24. div>
    25. div>
    26. div>
    27. <form action="${pageContext.request.contextPath}/book/addBook" method="post">
    28. 书籍名称:<input type="text" name="bookName"><br><br><br>
    29. 书籍数量:<input type="text" name="bookCounts"><br><br><br>
    30. 书籍详情:<input type="text" name="detail"><br><br><br>
    31. <input type="submit" value="添加">
    32. form>
    33. div>
    34. body>
    35. html>

    9.实现更新和删除功能

    在BookController下继续配置

    1. @RequestMapping("/toUpdateBook")
    2. public String toUpdateBook(Model model,int id){
    3. Books books=bookService.queryBookById(id);
    4. System.out.println(books);
    5. model.addAttribute("book",books);
    6. return "updateBook";
    7. }
    8. @RequestMapping("/updateBook")
    9. public String UpdateBook(Model model,Books book){
    10. System.out.println(book);
    11. bookService.updateBook(book);
    12. Books books=bookService.queryBookById(book.getBookID());
    13. model.addAttribute("book",books);
    14. return "redirect:/book/allBook";
    15. }
    16. @RequestMapping("/del/{bookID}")
    17. public String deleteBook(@PathVariable("bookID") int id){
    18. bookService.deleteBookById(id);
    19. return "redirect:/book/allBook";
    20. }

    在jsp下创建配置updateBook.jsp文件

    1. <%--
    2. Created by IntelliJ IDEA.
    3. User: yangj
    4. Date: 2022/12/6
    5. Time: 10:24
    6. To change this template use File | Settings | File Templates.
    7. --%>
    8. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    9. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    10. <html>
    11. <head>
    12. <title>修改信息title>
    13. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    14. <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"rel="stylesheet">
    15. head>
    16. <body>
    17. <div class="container">
    18. <div class="row clearfix">
    19. <div class="col-md-12 column">
    20. <div class="page-header">
    21. <h1>
    22. <small>修改信息small>
    23. h1>
    24. div>
    25. div>
    26. div>
    27. <form action="${pageContext.request.contextPath}/book/updateBook" method="post">
    28. <input type="hidden" name="bookID" value="${book.getBookID()}"/>
    29. 书籍名称:<input type="text" name="bookName"value="${book.getBookName()}"/>
    30. 书籍数量:<input type="text" name="bookCounts"value="${book.getBookCounts()}"/>
    31. 书籍详情:<input type="text" name="detail" value="${book.getDetail() }"/>
    32. <input type="submit" value="提交"/>
    33. form>
    34. div>
    35. body>
    36. html>

    注意:如果遇见这个问题,无法从底层数据库获取连接! 一般是一下几个问题:

    1. 驱动Jar包版本与注册驱动的类不匹配。
    2. 数据库连接地址有误。
    3. 数据库账户密码是否输入正确。
    4. 数据库,表,字段是否对应。
    5. 项目是否引入驱动包。

  • 相关阅读:
    C#WPF动态资源和静态资源应用实例
    软考信息系统项目管理师_历年真题_2019上半年错题集_上午综合知识题---软考高级之信息系统项目管理师054
    为什么list.sort()比Stream().sorted()更快?
    elasticsearch 客户端工具ESClientRHL
    AWS S3上传下载
    2022/12/4 胡言乱语
    工程(十三)——基于激光视觉的SLAM三维重建
    如何在Vue3中配置国际化语言i18n
    ⑯、企业快速开发平台Spring Cloud之HTML 总结
    接口自动化测试思路和实战(3):测试库框架
  • 原文地址:https://blog.csdn.net/m0_52896041/article/details/128187060