关于IDEA运行ssm项目的一些坑以及ssm的基本的配置

    科技2026-03-31  14

    导入依赖

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.timous</groupId> <artifactId>springmvc</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!--spring-mvc 其中包含了很多的 spring-aop等一些列和springmvc的一些jar包--> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.9.RELEASE</version> </dependency> <!--mybatis--> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <!--mybatis-spring spring和mybatis的整合需要的jar包--> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.5</version> </dependency> <!--lombok的jar包--> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <scope>provided</scope> </dependency> <!--c3p0的jar包 这里我们的数据源使用c3p0的jar--> <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.5</version> </dependency> <!--jdbc的包--> <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.9.RELEASE</version> </dependency> <!--jdbc connector--> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.21</version> </dependency> </dependencies> <!--静态资源导出,主要是mapper.xml的导出--> <build> <resources> <resource> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build> </project>

    创建一个数据库

    create database ssmproject; create table book( id int(10) primary key not null auto_increment, name varchar(20) , description varchar(255) );

    # 编写基本的配置文件 这里我们通过基本三层结构来建立文件,这样方便记忆 此外还有一个database.properties的配置数据库的文件没有写,下面会有其他的配置文件

    database.properties配置文件

    jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssmproject?serverTimezone=UTC&amp&useSSL=false jdbc.username=root jdbc.password=123456 # 你自己的数据库的密码

    spring-dao配置文件

    <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--配置数据库的一些配置文件,主要是读取数据库的配置--> <bean id="propertiesConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:database.properties</value> </list> </property> </bean> <!--配置数据源 dataSource 这里使用c3p0的数据库连接池--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!--配置sqlsessionfactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!--注入配置--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!--扫描基本的包--> <property name="basePackage" value="com.timous.dao"/> </bean> </beans>

    spring-service配置文件

    <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--扫描service的接口,便于注解实现--> <context:component-scan base-package="com.timous.service"/> <!--配置数据源,可以实现事务--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!--aop支持等--> </beans>

    spring-mvc配置文件

    <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--注解驱动--> <mvc:annotation-driven/> <!--静态资源管理--> <mvc:default-servlet-handler/> <!--扫描注解--> <context:component-scan base-package="com.timous.controller"/> <!--试图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/templates/"/> <property name="suffix" value=".html"/> <!--这里配置其他的也可以的--> </bean> </beans>

    mybatis-config配置

    <?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> <!--别名配置--> <typeAliases> <package name="com.timous.entity"/> </typeAliases> <!--注册我们写过的mapper文件--> <mappers> </mappers> </configuration>

    applicationContext.xml配置文件

    <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--把他们整合到一个配置文件中就可以了,便于我们web.xml的配置--> <import resource="spring-dao.xml"/> <import resource="spring-service.xml"/> <import resource="spring-mvc.xml"/> </beans>

    这样配置文件就写好了,下面我们可以在建立webapp整合web,建立文件夹如下 这里我自己是建立在main下面的,然后自己添进web的。 然后修改你自己的路径,注意这里是你自己添加的路径,一定要添加web.xml 下面的这个路径指向webapp就行了,结果是webapp下面添加了一个小蓝圆圈

    配置web.xml

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.timous</groupId> <artifactId>springmvc</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!--spring-mvc 其中包含了很多的 spring-aop等一些列和springmvc的一些jar包--> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.9.RELEASE</version> </dependency> <!--mybatis--> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <!--mybatis-spring spring和mybatis的整合需要的jar包--> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.5</version> </dependency> <!--lombok的jar包--> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <scope>provided</scope> </dependency> <!--c3p0的jar包 这里我们的数据源使用c3p0的jar--> <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.5</version> </dependency> <!--jdbc的包--> <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.9.RELEASE</version> </dependency> </dependencies> <!--静态资源导出,主要是mapper.xml的导出--> <build> <resources> <resource> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build> </project>

    到这整合的问题基本上市已经完成了,剩下的就是测试的问题了

    entity

    package com.timous.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.stereotype.Repository; @Repository @Data @NoArgsConstructor @AllArgsConstructor public class Book { int id; String name; String description; }

    dao层

    //接口 package com.timous.dao; import com.timous.entity.Book; import java.util.List; @Component public interface BookMapper { List<Book> queryAllBook(); } Mapper配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.timous.dao.BookMapper"> <!--编写sql语句--> <select id="queryAllBook" resultType="Book"> select * from book </select> </mapper>

    注意在写完mapper配置文件之后要注册

    service层

    //接口 package com.timous.service; import com.timous.entity.Book; import java.util.List; public interface BookService { List<Book> queryAllBook(); } //实现类 package com.timous.service; import com.timous.dao.BookMapper; import com.timous.entity.Book; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class BookServiceImpl implements BookService{ @Autowired private BookMapper bookMapper; public List<Book> queryAllBook() { return bookMapper.queryAllBook(); } }

    controller层

    package com.timous.controller; import com.timous.entity.Book; import com.timous.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller public class BookController { @Autowired private BookService bookService; @ResponseBody @RequestMapping("/test") public String test(){ List<Book> books = bookService.queryAllBook(); for (Book book:books) { System.out.println(book.toString()); } return "hello world"; } }

    说明项目的类型

    配置tomcat

    然后运行测试访问 http://localhost:8080/ssmproject/test 看到下面的页面就成功了 再去看一下后台的 也能够访问到数据

    Processed: 0.010, SQL: 9