zoukankan      html  css  js  c++  java
  • Atitit spring5 集成 mybatis 注解班

    Atitit spring5 集成 mybatis 注解班

     

     

     

    目录

    1.1. 0. 创建配置文件——application.properties 1

    1.2. 创建一个数据层接口——这是一个Mapper类 1

    1.3. MyBatisConfiguartion 类  配置扫描mappers 2

    2. Spring调用 4

    3. Spring config 5

     

    码文件内容

    Spring MVC之最简Mybatis配置(全注解) - 幻世 - CSDN博客.html

      1. 0. 创建配置文件——application.properties

    写入一下内容:

     

    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8

    spring.datasource.username=root

    spring.datasource.password=123456

    ---------------------

      1. 创建一个数据层接口——这是一个Mapper类

     

    package springMybatis;

     

     

     

    import java.util.List;

    import java.util.Map;

     

    import org.apache.ibatis.annotations.Delete;

    import org.apache.ibatis.annotations.Insert;

    import org.apache.ibatis.annotations.Mapper;

    import org.apache.ibatis.annotations.Param;

    import org.apache.ibatis.annotations.Select;

    import org.apache.ibatis.annotations.Update;

    import org.mybatis.spring.SqlSessionTemplate;

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.jdbc.core.JdbcTemplate;

     

    @Mapper

    //iocSpring5demo.MybatisMapperCls

    public interface MybatisMapperCls {

     

     

    //@Autowired

    //public SqlSessionTemplate sqlSessionTemplate1;

        

        /*

         * 这是基于注解的映射方式,实现对数据的增删改查,将sql语句直接写在注解的括号中

         * 这是一个接口,其不需要类去实现它

         * 下边分别是插入,删除,修改,查询一个记录,查询所有的记录

         * */

        

     

        

        @Select("${sql_intag}")

        public List<Map>   query(@Param("sql_intag") String sql);

        

     

        

    }

     

      1. MyBatisConfiguartion 类  配置扫描mappers

     

     

    package springMybatis;

     

    import javax.sql.DataSource;

     

    import org.apache.ibatis.session.SqlSessionFactory;

    import org.mybatis.spring.SqlSessionFactoryBean;

    import org.mybatis.spring.SqlSessionTemplate;

    import org.mybatis.spring.annotation.MapperScan;

    import org.springframework.context.annotation.Bean;

    import org.springframework.context.annotation.Configuration;

    import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

    import org.springframework.core.io.support.ResourcePatternResolver;

    import org.springframework.jdbc.datasource.DataSourceTransactionManager;

     

     

     

    /**

     * @author tony ittimeline@163.com

     * @date 2018-02-24-上午11:13

     * @website wwww.ittimeline.net

     * @see

     * @since JDK8u162

     */

    @Configuration

    //@//Import(DruidDataSourceConfiguraiton.class)

    @MapperScan(basePackages ="springMybatis")

    public class MyBatisConfiguartion {

       

    @Bean

    public DataSource dataSource() {

    AtiDateSource instance = new AtiDateSource();

    return instance;

    // configure and return the necessary JDBC DataSource

    }

     

     

    //    @Bean

    //     public DataSource dataSource() {

    //         BasicDataSource dataSource = new BasicDataSource();

    //

    //         dataSource.setDriverClassName("com.mysql.jdbc.Driver");

    //         dataSource.setUrl("jdbc:mysql://localhost:3306/mb?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8");

    //         dataSource.setUsername("");   // 这里填写数据库用户名

    //         dataSource.setPassword("");   // 这里填写数据库密码

    //

    //         return dataSource;

    //     }

    //

       

       

       @Bean

        public DataSourceTransactionManager transactionManager() {

            return new DataSourceTransactionManager(dataSource());

        }

     

        @Bean

        public SqlSessionFactoryBean sqlSessionFactoryBean() throws Exception {

            SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();

            sessionFactory.setDataSource(dataSource());

       //     sessionFactory.setTypeAliasesPackage("me.firstsnow.model");

            return sessionFactory;

        }

     

     

    /*

        @Bean(name = "sqlSessionFactory")

        public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource){

     

         

    */

        /**

         *

         * @param sqlSessionFactory

         * @return

         */

        @Bean

        public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory){

            return new SqlSessionTemplate(sqlSessionFactory);

        }

     

     

     

     

    }

     

    1. Spring调用

    package springMybatis;

     

    import java.util.List;

    import java.util.Map;

     

    import org.mybatis.spring.annotation.MapperScan;

    import org.springframework.context.annotation.AnnotationConfigApplicationContext;

     

    import com.alibaba.fastjson.JSON;

    @MapperScan(basePackages= {"iocSpring5demo"})

    public class SpringMybayisStartDemoAnno {

     

    public static void main(String[] args) {

    // 创建spring 基于注解配置的容器

    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);

    // 获取通过注解注入容器的UserService

    MybatisMapperCls MybatisMapperCls1 = context.getBean(MybatisMapperCls.class);

    // 调用userService的方法执行

    List<Map> message = MybatisMapperCls1.query("select * from user_tab");

     

    // userService.addUser("user2");

    // 输出结果

    System.out.println(  JSON.toJSONString(message));

    // 关闭容器,释放JVM资源

    context.close();

    }

     

    }

    1. Spring config

     

    package springMybatis;

     

    import javax.sql.DataSource;

     

    import org.mybatis.spring.annotation.MapperScan;

    import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

    import org.springframework.context.annotation.Bean;

    import org.springframework.context.annotation.ComponentScan;

    import org.springframework.context.annotation.Configuration;

    import org.springframework.context.annotation.EnableAspectJAutoProxy;

    import org.springframework.core.io.ClassPathResource;

    import org.springframework.jdbc.core.JdbcTemplate;

    import org.springframework.jdbc.datasource.DataSourceTransactionManager;

    import org.springframework.transaction.PlatformTransactionManager;

    import org.springframework.transaction.annotation.EnableTransactionManagement;

    import org.springframework.transaction.annotation.TransactionManagementConfigurer;

    import org.springframework.transaction.support.TransactionTemplate;

    @EnableTransactionManagement

    @EnableAspectJAutoProxy

    @Configuration /** 该注解表示这个类是一个Spring的配置类 **/

    @ComponentScan(basePackages = {

    "springMybatis" }) /***

     * 该注解表示启用spring的组件扫描功能,并且配置了扫描包net.xqlee.project.

     * demo下的所有类

     **/

    //@//MapperScan(basePackages= {"springMybatis"})

    public class AppConfig implements TransactionManagementConfigurer {

     

     

     

     

     

    @Bean

    public DataSource dataSource() {

     

    AtiDateSource instance = new AtiDateSource();

    return instance;

    // configure and return the necessary JDBC DataSource

    }

     

     

    @Bean

    @Override

    public PlatformTransactionManager annotationDrivenTransactionManager() {

    // return txManager();

     return  new  DataSourceTransactionManager(dataSource());

    }

     

    }

  • 相关阅读:
    宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
  • 原文地址:https://www.cnblogs.com/attilax/p/15197442.html
Copyright © 2011-2022 走看看