NutzCN Logo
问答 怎样将mybatis替换成nutz,求大神指导
发布于 20天前 作者 Somuns 122 次浏览 复制 上一个帖子 下一个帖子
标签:

这是数据链接方面的配置

package cn.com.somuns.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;


@Configuration
//扫描mapper接口管理
@MapperScan(basePackages = "cn.com.somuns.dao.two",sqlSessionFactoryRef = "twoSqlSessionFactory")
public class DataSourceConfigTwo {

    //注入连接信息
    @Bean("twoDataSource")
    @ConfigurationProperties(prefix = "two.datasource")
    public DataSource twoDataSource(){
        return DataSourceBuilder.create().build();
    }

    //创建数据源事务管理
    @Bean(name = "twoTransactionManager")
    public DataSourceTransactionManager twoTransactionManager(){
        //注入数据源
        return new DataSourceTransactionManager(twoDataSource());
    }

    @Bean(name = "twoSqlSessionFactory")
    public SqlSessionFactory twoSqlSessionFactory(@Qualifier("twoDataSource") DataSource twoDataSource)throws Exception{//注入数据源创建sql工厂
        final SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
        sqlSessionFactory.setDataSource(twoDataSource);
        sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/two/*.xml"));//扫描实体类映射文件
        return sqlSessionFactory.getObject();
    }
}

实体类有映射文件,dao接口,会由mybatis自动实现。现在怎么将这些东西替换成nutz

19 回复

对啊,弄个多数据源,网上教程都是mybatis的

那你到底是弄多数据源还是mapper? 这是两码事

我现在是配置的多数据源,使用的springboot,mybatis,druid,mysql。想把mybatis替换成nutz

多数据源的话配几个dataSource1, dataSource2 及对应的dao1, dao2 就是了

嗯嗯,我有看过nutz的多数据源配置,是用dao.js进行配置的。

1.r.62开始可以把@IocBean写在方法上了

嗯嗯,我去改下试试

对框架了解不够深,改不了,想了半天没思路

嗯嗯,我先研究下js的吧

package cn.com.somuns.config;

import org.nutz.dao.Dao;
import org.nutz.dao.impl.NutDao;
import org.nutz.ioc.impl.PropertiesProxy;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.json.Json;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;

import javax.sql.DataSource;

@IocBean
public class MyBeanFactory {

@IocBean
@ConfigurationProperties(prefix = "one.datasource")
public DataSource getDataSource(PropertiesProxy conf){
    DataSource ds = DataSourceBuilder.create().build();
    System.out.println(Json.toJson(ds));
    return ds;
}

@IocBean
public Dao buidDao(DataSource dataSource){
    return new NutDao(dataSource);
}

}

nutz可不认ConfigurationProperties

额额,好吧,我说怎么没看到这么写的。

不过,跟PropertiesProxy的make方法类似

@IocBean
public PropertiesProxy getConf() {
    if ("product".equals(System.getProperty("nutz.runmode"))) {//这个地方看不懂
          return new PropertiesProxy("/etc/nutz/custom");{//这个地方看不懂
    } else {
        return new PropertiesProxy("custom/");{//这个地方看不懂,下面是放d.properties么
    }
}

加载数据库链接信息配置文件部分,没搞懂

只是演示一下可以写逻辑

添加回复
请先登陆
回到顶部