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

Spring纯注解方式整合MyBatists

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

Spring纯注解方式整合MyBatists

项目结构:


serdao:  作为数据层接口,规定执行SQL语句的具体方法,本质上实现SQL语句和SQL方法的映射关系
POJO:  POJO实体类,用来封装数据(要提供set和get方法),有的习惯命名domain
USerService : 业务层接口,规定业务逻辑标准,提供SQL方法
USerServiceImpl  :作为业务层接口AccountService的接口实现类,在这个类中要实例化继承业务层接口并且实现抽象方法的实例化。


Spring整合MyBatis

在POM文件中导入相关依赖:

1.Spring-JDBC


        
            org.springframework
            spring-jdbc
            5.2.12.RELEASE
        

2.mybatis-spring

 
        
            org.mybatis
            mybatis-spring
            2.0.6
        

3.Druid

  
        
            com.alibaba
            druid
            1.2.6
        

4.MySQl

 
        
            mysql
            mysql-connector-java
            8.0.27
        

 POJO:

package com.practice.pojo;

import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;


public class User {
    private int id;
    private  String type;
    private String description;
    private  String name;

    public int getId() {
        return id;
    }

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

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", type='" + type + ''' +
                ", description='" + description + ''' +
                ", name='" + name + ''' +
                '}';
    }
}

配置类:

//1.JDBCConfig.class
//数据库驱动类
package com.practice.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Repository;
import javax.sql.DataSource;
public class jdbcConfig {
    @Value("${username}")
    private String username;
    @Value("${password}")
    private String password;
    @Value("${DriverClassName}")
    private String DriverClassName;
    @Value("${url}")
    private  String url;
    
    @Bean
    public DataSource dataSource(){
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setUrl(url);
        druidDataSource.setUsername("root");
        druidDataSource.setDriverClassName(DriverClassName);
        druidDataSource.setPassword(password);
        return druidDataSource;
    }
}



//2.Mybaits.class   
//Mybatis核心配置类,使用配置类的方式代替原生开发使用的核心配置文件
    
    
    package com.practice.config;

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;

import javax.sql.DataSource;

public class MybatisConfig {
    
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
        mapperScannerConfigurer.setBasePackage("com.practice");
        return mapperScannerConfigurer;
    }
    
    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        sqlSessionFactoryBean.setTypeAliasesPackage("com.practice");
        return sqlSessionFactoryBean;
    }
}



//3.SpringConfig.class
    
 //Spring核心配置类
    
 package com.practice.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;

@Configuration     //声明配置类
@ComponentScan("com.practice")     //配置bean扫描包的位置
@PropertySource("classpath:jdbc.properties")   //加载配置文件
@Import({jdbcConfig.class, MybatisConfig.class})    //导入其他配置类,如果不导入其他配置类,所有的配置类都要声明
public class SpringConfig {
}

   

UserService:

package com.practice.service;

import com.practice.pojo.User;

import java.util.List;
//规定接口标准
public interface UserService {
    List selectAll();
}

UserServiceImpl:

package com.practice.service.Impl;

import com.practice.dao.UserDao;
import com.practice.pojo.User;
import com.practice.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service("userservice")   //通过id的方式标识bean
public class UserServiceImpl implements UserService {
    @Autowired     //使用自动装配,注入bean
    private UserDao userDao;
    public List selectAll() {
        return userDao.selectAll();
    }
}

Application.class

package com.practice;

import com.practice.config.SpringConfig;
import com.practice.pojo.User;
import com.practice.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import java.util.List;

public class Application {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
        UserService userService = (UserService) applicationContext.getBean("userservice");
        List userList = userService.selectAll();
         System.out.println(userList);
    }
}

 

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

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

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