栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

七、集成MyBatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

七、集成MyBatis

七、集成MyBatis

*用到的技术:IOC

*MyBatis使用步骤:

  1. 定义dao接口,UserDao.java
  2. 定义mapper文件,UserMapper.xml
  3. 定义mybatis主配置文件,mybatis.xml
    1. mybatis自带的连接池功能较弱,通常开发会使用独立的连接池,交给Spring来创建
      1. 独立的连接池类的对象,使用阿里的druid连接池
      2. SqlSessionFactory对象
      3. 创建dao
  4. 创建dao的代理对象,UserDao dao = SqlSession.getMapper(UserDao.class)
    1. 通过读取 mybatis的主配置文件来创建SqlSessionFactory对象
    2. 调用SqlSessionFactory. openSession()方法来获取 SqlSession对象

1、实现步骤
  1. 创建maven项目
  2. 加入maven依赖
    1. spring依赖
    2. mybatis依赖
    3. mysql驱动
    4. spring的事务依赖
    5. mybatis和spring集成依赖(mybatis官方提供的,用来在spring项目中创建mybatis的SqlSessionFactory、dao对象的)
  3. 创建实体类
  4. 创建dao接口及mapper文件
  5. 创建mybatis主配置文件
  6. 创建Service接口及实现类,属性包含dao
  7. 创建spring配置文件(声明mybatis对象交给spring创建)
    1. 数据源(dataSource)
    2. SqlSessionFactory
    3. Dao对象
    4. 声明自定义的service
  8. 创建测试类,获取service对象,通过service对象完成对数据库的访问

2、项目结构

pom.xml



  4.0.0

  hom.wang
  st-06-spring-mybatis
  1.0-SNAPSHOT

  
    UTF-8
    1.8
    1.8
  

  
    
      junit
      junit
      4.11
      test
    
    
      org.springframework
      spring-context
      5.3.18
    

    
    
      org.springframework
      spring-tx
      5.3.18
    
    
    
      org.springframework
      spring-jdbc
      5.3.18
    
    
    
      org.mybatis
      mybatis
      3.5.7
    
    
    
      org.mybatis
      mybatis-spring
      2.0.6
    
    
    
      mysql
      mysql-connector-java
      8.0.29
    
    
    
      com.alibaba
      druid
      1.2.6
    
  

  
    
    
      
        
        src/main/java
        
        
          ***.properties-->
        
        false
      
    
    
    
      
        maven-compiler-plugin
        3.8.1
        
          1.8
          1.8
        
      
    
  

data.User.java
package hom.wang.data;
public class User {
    private Integer id;
    private String name;
    private String password;
}
service.UserService.java
package hom.wang.service;
import hom.wang.data.User;
import java.util.List;
public interface UserService {
    int insertUser(User user);
    List selectUsers();
}
service.impl.UserServiceImpl.java
package hom.wang.service.impl;
import hom.wang.dao.UserDao;
import hom.wang.data.User;
import hom.wang.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
public class UserServiceImpl implements UserService {

    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public int insertUser(User user) {
        return userDao.insertUser(user);
    }

    @Override
    public List selectUsers() {
        return userDao.selectUsers();
    }
}
dao.UserDao.java
package hom.wang.dao;
import hom.wang.data.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
public interface UserDao {
    int insertUser(User user);
    List selectUsers();
}
dao.UserMapper.xml



    
    
        insert into users values(#{id}, #{name}, #{password})
    
    
    

mybatis.xml




    
    
        
        
    

    
    
        
        
    

    
        
        

        
        
    

applicationContext.xml



    
    
        
        
        
        
    

    
    
        
        
        
    

    
    
        
        
        
        
    

    
        
    

jdbc.properties
jdbc.url=jdbc:mysql://127.0.0.1:3306/ms_user
jdbc.username=root
jdbc.password=root
jdbc.maxActive=20
applicationContext-pro.xml [变更部分]
    
	

    
    
        
        
        
        
        
    
MyTest.java
package hom.wang;
import hom.wang.dao.UserDao;
import hom.wang.data.User;
import hom.wang.service.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.Arrays;
public class MyTest {
    @Test
    public void test(){
        ApplicationContext ac = 
            new ClassPathXmlApplicationContext("applicationContext.xml");
        //Arrays.stream(ac.getBeanDefinitionNames()).forEach(System.out::println);
        for(String name : ac.getBeanDefinitionNames()){
            System.out.println("容器中创建的bean:" + name + "--" + ac.getBean(name));
        }
    }
    @Test
    public void test_dao(){
        //ApplicationContext ac = 
        //	new ClassPathXmlApplicationContext("applicationContext.xml");
        ApplicationContext ac = 
            new ClassPathXmlApplicationContext("applicationContext-pro.xml");
        UserService userService = (UserService) ac.getBean("userService");
        User user = new User(3, "aaa", "123");
        int nums = userService.insertUser(user);
        // spring和mybatis整合在一起使用,事务是自动提交的,无需执行Sqlsession.commit()
        System.out.println(nums);
        userService.selectUsers().stream().forEach(System.out::println);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/946836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号