SSM框架探秘:Spring 整合 Mybatis 框架

搭建和测试 MyBatis 的环境:

  1. 编写 AccountMapper.xml 映射配置文件:
    
    
    
    
        
    
  2. 在 web 项目中编写 SqlMapConfig.xml 的配置文件,编写核心配置文件
    
    
    
    
        
        
            
                
                
                    
                    
                    
                    
                
            
        
    
        
        
            
        
    
    
  3. 在 AccountMapper 接口中编写方法:
    public interface AccountMapper {
    
        public List findAll();
    
    
    }
  4. 编写测试方法(此时数据库还没有数据):
    @Test
    public void run1() throws IOException {
        //加载配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
    
        //创建工厂
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
    
        //创建 session
        SqlSession session = factory.openSession();
    
        //获取代理对象
        AccountMapper accountMapper = session.getMapper(AccountMapper.class);
    
        List all = accountMapper.findAll();
        all.forEach(System.out::println);
    
        //关闭资源
        session.close();
        in.close();
    }

Spring 整合 MyBatis 框架:

  1. 目的:
    1. 把 SqlMapConfig.xml 配置文件中的内容配置到 applicationContext.xml 配置文件中:
      
      
      
          
          
      
          
          
          
              
              
              
              
          
      
          
          
              
              
              
              
          
      
          
          
              
              
          
      
          
          
              
          
      
          
          
              
                  
                  
              
          
      
          
          
              
          
      
      
  2. 在 AccountMapper 接口中添加 @Repository 注解:
  3. 在 service 中注入 mapper 对象,进行测试:
    1. service 层代码:
      @Service
      public class AccountServiceImpl implements AccountService {
      
          @Autowired
          private AccountMapper accountMapper;
      
          @Override
          public List findAll() {
              System.out.println("业务层逻辑:查询所有账号");
              List list = accountMapper.findAll();
              return list;
          }
      
          @Override
          public void save(Account account) {
              accountMapper.save(account);
          }
      }
    2.                                                                                                                层代码:
      @Controller
      @RequestMapping("/account")
      public class AccountController {
      
          @Autowired
          private AccountService accountService;
      
          /**
           * 查询所有方法
           */
          @RequestMapping("/findAll")
          public ModelAndView findAll(){
              System.out.println("表现层:查询所有账户");
              List list = accountService.findAll();
      
              for (Account a : list){
                  System.out.println(a);
              }
      
              ModelAndView mv = new ModelAndView();
              mv.setViewName("suc");
              return mv;
          }
      }
    3. 配置声明事务管理:
      
      
          
      
      
      
      
          
              
              
          
      
      
      
      
          
      
    4. 表单代码:
      <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      
      
          

      Hello World!

      查询所有

      账号列表页面

      查询所有

      测试新增

      姓名:
      金额:
    5. controller 代码:
      @Controller
      @RequestMapping("/account")
      public class AccountController {
      
          @Autowired
          private AccountService accountService;
      
          /**
           * 查询所有方法
           */
          @RequestMapping("/findAll")
          public ModelAndView findAll(){
              System.out.println("表现层:查询所有账户");
              List list = accountService.findAll();
      
              for (Account a : list){
                  System.out.println(a);
              }
      
              ModelAndView mv = new ModelAndView();
              mv.setViewName("suc");
              return mv;
          }
      
          @RequestMapping("/save")
          public String save(Account account){
              //调用 Service 层保存数据
              accountService.save(account);
      
              return "suc";
          }
      }
    6. service 代码:
      @Service
      public class AccountServiceImpl implements AccountService {
      
          @Autowired
          private AccountMapper accountMapper;
      
          @Override
          public List findAll() {
              System.out.println("业务层逻辑:查询所有账号");
              List list = accountMapper.findAll();
              return list;
          }
      
          @Override
          public void save(Account account) {
              accountMapper.save(account);
          }
      }
    7. mapper 代码:
      @Repository
      public interface AccountMapper {
      
          public List findAll();
      
      
          @Insert("insert into account (name,money) values (#{name},#{money})")
          void save(Account account);
      }

你可能感兴趣的:(mybatis,spring,java)