前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SSM整合笔记

SSM整合笔记

原创
作者头像
青丝束马尾
修改2023-11-11 15:41:20
1830
修改2023-11-11 15:41:20
举报
文章被收录于专栏:Spring学习笔记Spring学习笔记

环境准备

导依赖

代码语言:javascript
复制
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency>

      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.16</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.45</version>
    </dependency>

    <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.5</version>
    </dependency>

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.11.3</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <port>80</port>
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>
  </build>

jdbc配置文件

代码语言:javascript
复制
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hm_test?useSSL=false
jdbc.username=root
jdbc.password=sql123

整合SpringMvc(Servlet配置类,Mvc配置类,Spring配置类)

servlet配置类

代码语言:javascript
复制
@Configuration
public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer{
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] {SpringConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] {SpringMvcConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] {"/"};
    }

//    乱码处理,设置过滤器
    @Override
    protected Filter[] getServletFilters() {
//        获取字符编码过滤器对象
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("UTF-8");
        return new Filter[] {characterEncodingFilter};
    }
}

Mvc配置类

代码语言:javascript
复制
@Configuration
@ComponentScan("com.itheima.controller")
public class SpringMvcConfig {
}

Spring配置类

代码语言:javascript
复制
@Configuration
@ComponentScan("com.itheima")
@PropertySource("classpath:jdbc.properties")
public class SpringConfig {
}

整合Mybatis(Jdbc配置类,Mybatis配置类)

Jdbc配置类

代码语言:javascript
复制
@Configuration
public class JdbcConfig {

    @Value("${jdbc.driver}")
    private String driver;

    @Value("${jdbc.url}")
    private String url;

    @Value("${jdbc.username}")
    private String username;

    @Value("${jdbc.password}")
    private String password;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}

Mybatis配置类

代码语言:javascript
复制
@Configuration
public class MybatisConfig {

    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setTypeAliasesPackage("com.itheima.entity");
        sqlSessionFactoryBean.setDataSource(dataSource);
        return sqlSessionFactoryBean;
    }

    @Bean //这个配置会报一个
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setBasePackage("com.itheima.mapper");
        return mapperScannerConfigurer;
    }
}

这里会报一个static,是MapperScannerConfigurer是BeanFactoryPostProcessor的一个实现导致的

解决方法是用注解@MapperScan代替

我自己在方法上加了static好像也可以

功能模块(entity,mapper,service,impl)

entity

代码语言:javascript
复制
public class Source {
    private Integer id;
    private Integer  number;
    private String name;
    private String subjects;
    private Integer gradee;

    @Override
    public String toString() {
        return "Source{" +
                "id=" + id +
                ", number=" + number +
                ", name='" + name + '\'' +
                ", subjects='" + subjects + '\'' +
                ", gradee=" + gradee +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSubjects() {
        return subjects;
    }

    public void setSubjects(String subjects) {
        this.subjects = subjects;
    }

    public Integer getGradee() {
        return gradee;
    }

    public void setGradee(Integer gradee) {
        this.gradee = gradee;
    }
}

mapper

代码语言:javascript
复制
@Mapper
public interface SourceMapper {

    @Select("select * from source")
    public List<Source> findAll();
}

service

代码语言:javascript
复制
public interface SourceService {

    public List<Source> findAll();
}

impl

代码语言:javascript
复制
@Service
public class SourceServiceImpl implements SourceService {

    @Autowired
    private SourceMapper sourceMapper;

    @Override
    public List<Source> findAll() {
        return sourceMapper.findAll();
    }
}

测试

数据库测试

测试类

结果

中文乱码测试

接口

代码语言:javascript
复制
@PostMapping("getincn")
@ResponseBody
public void getInChinese(String name, int age) {
    System.out.println("=========================>" + name);
    System.out.println("=========================>" + age);
}

Postman发请求

结果

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境准备
    • 导依赖
      • jdbc配置文件
      • 整合SpringMvc(Servlet配置类,Mvc配置类,Spring配置类)
        • servlet配置类
          • Mvc配置类
            • Spring配置类
            • 整合Mybatis(Jdbc配置类,Mybatis配置类)
              • Jdbc配置类
                • Mybatis配置类
                • 功能模块(entity,mapper,service,impl)
                  • entity
                    • mapper
                      • service
                        • impl
                        • 测试
                          • 数据库测试
                            • 测试类
                              • 结果
                                • 中文乱码测试
                                  • 接口
                                  • Postman发请求
                                  • 结果
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                              http://www.vxiaotou.com