A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

一、安装mybatis(导包)

一个mybatis包,另一个是spring与mybatis适配包

<dependency>
                        <groupId>org.mybatis</groupId>
                        <artifactId>mybatis</artifactId>
                        <version>3.4.6</version>
                </dependency>
               
                <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>


二、装配SqlSessionFactory

重点:SqlSessionFactoryBean

package com.yan.otl.config;

import org.apache.commons.dbcp2.BasicDataSource;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import com.yan.otl.main.dao.UserMapper;

@Configuration
@ComponentScan("com.yan.otl")
@PropertySource("classpath:/com/yan/otl/config/jdbc.properties")
@EnableTransactionManagement
public class RootConfig {
        @Autowired
        Environment env;
       
        @Value("${jdbc.driverClassName}")
        private String driverClassName;
       
        @Value("${jdbc.url}")
        private String url;
       
        @Value("${jdbc.username}")
        private String username;
       
        @Value("${jdbc.password}")
    private String password;
       
        /**
         * 数据源
         * @return
         */
        @Bean
        public BasicDataSource dataSource() {
                BasicDataSource ds = new BasicDataSource();
                ds.setDriverClassName(driverClassName);
                ds.setUrl(url);
                ds.setUsername(username);
                ds.setPassword(password);
               
                System.out.println(env.getProperty("jdbc.username"));
                System.out.println(password);
               
                ds.setInitialSize(5);
                ds.setMaxIdle(10);
                ds.setMinIdle(5);
                ds.setMaxTotal(15);
                return ds;
        }
       
        @Bean
        DataSourceTransactionManager DataSourceTransactionManager(BasicDataSource dataSource) {
                DataSourceTransactionManager dstm = new DataSourceTransactionManager();
                dstm.setDataSource(dataSource);
               
                return dstm;
        }
       
        @Bean
        JdbcTemplate jdbcTemplate (BasicDataSource dataSource) {
                JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
               
                return jdbcTemplate;
        }
       
        /**
         * SqlSessionFactoryBean配置
         * @param dataSource
         * @return
         */
        @Bean
        SqlSessionFactoryBean sqlSessionFactoryBean(BasicDataSource dataSource) {

                SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
               
                sqlSessionFactoryBean.setDataSource(dataSource);
               
                org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration() ;
               
                sqlSessionFactoryBean.setConfiguration(configuration);
               
                return sqlSessionFactoryBean;
        }
       
        @Bean
        MapperFactoryBean<UserMapper> mapperFactoryBean(SqlSessionFactoryBean sqlSessionFactoryBean) throws Exception {
                MapperFactoryBean<UserMapper> mapperFactoryBean = new MapperFactoryBean<UserMapper>();
               
                mapperFactoryBean.setSqlSessionFactory(sqlSessionFactoryBean.getObject());
                mapperFactoryBean.setMapperInterface(UserMapper.class);
               
                return mapperFactoryBean;
        }
}


三、编写数据映射器类

package com.yan.otl.main.dao;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import com.yan.otl.main.data.User;

@Repository
public interface UserMapper {
        @Select("SELECT * FROM t_userinfo WHERE id = #{userId}")
        User getUser(@Param("userId") Integer userId);
}


四、装配数据映射类

如步骤二中的: MapperFactoryBean<UserMapper>



五、直接注入使用数据映射类

像一般的SpringBean一样使用

    @Autowired
    UserMapper userMapper;

package com.yan.otl.main.controller;

import java.util.Random;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import com.yan.otl.main.dao.LoginDao;
import com.yan.otl.main.dao.UserMapper;
import com.yan.otl.main.data.User;

@RestController
public class LoginController {
       
        @Autowired
        LoginDao loginDao;
       
        @Autowired
        UserMapper userMapper;
       
        @RequestMapping("/login")
        public ModelAndView login(ModelAndView mav) {
                User user = new User();
                user.setName("李四");
                user.setNumber(new Random(10).nextInt());
                loginDao.add(user);
               
                mav.setViewName("login");
                return mav;
        }
       
        @RequestMapping("/getUser")
        public User getUser() {
               
                User user = userMapper.getUser(1);
                System.out.println(user);
               
                return user;
        }
}


股票“三不卖七不买“6字黄金口诀..只买井喷股 半年2套房
证券 · 鹓鶵



qq_16747555:
@Bean
MapperFactoryBean<UserMapper> mapperFactoryBean(SqlSessionFactoryBean sqlSessionFactoryBean) throws Exception {
  MapperFactoryBean<UserMapper> mapperFactoryBean = new MapperFactoryBean<UserMapper>();

  mapperFactoryBean.setSqlSessionFactory(sqlSessionFactoryBean.getObject());
  mapperFactoryBean.setMapperInterface(UserMapper.class);

  return mapperFactoryBean;
}

---------------------
【转载,仅作分享,侵删】
作者:醉花妍
原文:https://blog.csdn.net/qq_42214817/article/details/82699097
版权声明:本文为博主原创文章,转载请附上博文链接!

1 个回复

倒序浏览
奈斯,感谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马