ssm整合步骤(无maven)

ssm整合步骤(无maven)

1.创建项目

  • [1]创建Java Enterprise(企业级)


  • [2]创建lib并导入相关jar包

    ①spring相关jar:

②mybatis 和 mybatis与spring整合相关jar:

③数据库连接 和 德鲁伊连接池相关jar:

④junit测试相关jar:

⑤文件上传相关jar:

⑥json相关jar:

⑦jstl相关jar:

⑧页码相关jar:

⑨......


  • [3]创建相关文件/包/类

    1. 创建相关文件

      1.1.resources [mark:Resources Root]

      ​ 1.1.1.mybatis-config.xml


      ​ 1.1.2.spring.xml

      ​ 1.1.2.1.配置数据源(德鲁伊连接池druid)

      <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
              <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
          	<!-- &在xml文件中不能直接使用,需使用&amp; -->
              <property name="url" value="jdbc:mysql://localhost:3306/qa?useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false&amp;serverTimezone=Asia/Shanghai" />
              <property name="username" value="root"/>
              <property name="password" value="wanmait"/>
              <property name="initialSize" value="3"/>
              <property name="minIdle" value="3"/>
              <property name="maxActive" value="10"/>
              <property name="maxWait" value="5000"/>
              <property name="filters" value="mergeStat"/>
      </bean>
      

      ​ 1.1.2.2.配置SqlSessionFactory

      ​ (org.mybatis.spring.SqlSessionFactoryBean来自mybatis-spring-2.0.4.jar)

      <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
          	<!--指定数据库连接,调用dataSource-->
              <property name="dataSource" ref="dataSource"/>
              <!--指定配置文件-->
              <property name="configLocation" value="classpath:mybatis-config.xml"/>
              <!--指定映射文件位置,注册映射文件-->
              <property name="mapperLocations" value="classpath:mapping/*.xml"/>
      </bean>
      

      ​ 1.1.2.3.配置mapper接口的自动扫描

      <mybatis-spring:scan base-package="com.wanmait.demo.mapper"/>
      

      ​ 1.1.2.4.配置业务逻辑层(service)扫描

      <context:component-scan base-package="com.wanmait.demo.service"/>
      

      ​ 1.1.2.4.配置事物管理器

      ​ 作用:当同时完成一个或多个数据操作,当有一个出现错误,其他都正确,但造成某些管理数据也出现错误。如:当添加一条信息时,数据库一个表添加成功,但需要给另一个表的添加信息数量+1,当+1失败,则数据出现问题

      <!--事务管理器,添加到service/impl中的实现类中-->
      <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <!--获取数据源-->
          <property name="dataSource" ref="dataSource"/>
      </bean>
          
      <!--事务的注解驱动-->
      <tx:annotation-driven transaction-manager="transactionManager"/>
      

      ​ 1.1.3.springMVC.xml


      ​ 1.1.4.mapping

      ​ 1.1.4.*.src/mapper/*中所有接口对应的*.xml文件(快捷方式:1.Database连接MySQL并借助Mybatis datasource插件生成)

      ​ 作用:通过实现com.lycl.ssmdemo.mapper.*Mapper.java接口中的方法,进行相应的数据库操作。


      1.2.src[mark:Sources Root]

      ​ com.lycl.ssmdemo

      ​ 1.2.1.controller

      ​ 例:QuestionController

      ​ 作用:与客户端进行信息交互,与业务逻辑层进行数据交互

      @Controller
      @RequestMapping("/manage/questionType")
      public class QuestionTypeController {
          @Resource
          private QuestionTypeService questionTypeService;
      
          @RequestMapping("list")
          @ModelAttribute("questionTypes")
          public List<QuestionType> list()
          {
              return questionTypeService.findAll();
          }
      }
      


      ​ 1.2.2.mapper(快捷方式:1.Database连接MySQL并借助Mybatis datasource插件生成)

      ​ 例:QuestionMapper

      ​ 作用:生成*Mapper接口(标准),用于/resources/*Mapper.xml中,实现对应的select/update/insert/delete等对应的方法。


      ​ 1.2.3.pojo(快捷方式:1.Database连接MySQL并借助Mybatis datasource插件生成)


      ​ 1.2.4.service

      ​ impl:存放对应接口的实现类

      ​ 例:QuestionServiceImpl (已在spring.xml配置业务逻辑层扫描包,需添加@Service注解,才能让spring进行管理)

      @Service
      @Transactional(rollbackFor = Exception.class)//事务处理,加在类上对所有的方法都起作用,也可以加在方法上
      public class QuestionServiceImpl implements QuestionService {
          //注入接口依赖
          @Resource
          private QuestionMapper questionMapper;
          
           @Override
          public void insert(Question object) {
              questionMapper.insert(object);
              //修改类型的问题数量
              questionTypeMapper.increaseQuestionCount(object.getQuestionTypeId());
          }
      }
      

      ​ 接口:

      ​ CommonService:公共泛型接口

      ​ 例:QuestionService 继承CommonService,可添加相应的其他接口方法,实现类放到impl中


      1.3.test [mark:Test Sources Root]

      ​ com.lycl.ssmdemo.service

      ​ QuestionServiceTest(测试QuestionService中接口实现数据库操作结果)

      @RunWith(SpringJUnit4ClassRunner.class)//spring-test.jar
      @ContextConfiguration("classpath:spring.xml")
      public class QuestionServiceTest {
          @Resource
          private QuestionService questionService;
      
          @Test
          public void testInsert()
          {
              Question question = new Question();
              question.setTitle("2020你过的怎么样?");
              question.setQuestionTypeId(1);
              question.setUserinfoId(1);
              question.setInfo("一起加油!");
              questionService.insert(question);
              System.out.println(question.getId());
          }
      }
      

      1.4.web

      ​ WEB-INF

      ​ lib(jar包)

      ​ web.xml

快捷方式:

1.Database连接MySQL并借助Mybatis datasource插件生成

{未完待续...}

posted @ 2020-12-20 01:22  LYCL  阅读(96)  评论(0)    收藏  举报