solon 是什么?
solon是一个国产的容器,和spring一样的角色
maven 引入
<!-- 注意顺序 -->
<dependency>
<groupId>cn.mybatis-mp</groupId>
<artifactId>mybatis-mp-solon-plugin</artifactId>
<version>1.7.8-RC6</version>
</dependency>
<dependency>
<groupId>org.noear</groupId>
<artifactId>mybatis-solon-plugin</artifactId>
<version>2.9.4</version>
</dependency>
mybatis-mp-solon-plugin 是 mybatis-mp针对solon 提供的插件
solon yaml 配置
yaml
# 配置数据源
ds:
# 与数据库名可用保持一致
schema: rock
jdbcUrl: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true
driverClassName: com.mysql.cj.jdbc.Driver
username: root
password: 123456
# 规则 mybatis.数据源名称;数据源名称 是 数据源 Bean的名称
mybatis.master:
mappers: #支持包名 或 类名(大写开头 或 *)或 xml(.xml结尾);支持目录 ** 或 * 占位符
- "test.UserMapper"
- "demo4021.**.mapper"
- "demo4021.**.mapper.*" #这个表达式同上效果
- "classpath:demo4021/**/mapper.xml"
- "classpath:demo4021/**/mapping/*.xml"
DataSource Bean配置
java
@Configuration
public class MybatisConfig {
@Bean(name = "master", typed = true)
public DataSource dataSource(@Inject("${ds}") HikariDataSource ds) {
return ds;
}
// @Bean(name = "db1", typed = true)
// public DataSource db1(@Inject("${ds.db1}") HikariDataSource ds) {
// return ds;
// }
//
// @Bean(name = "db2", typed = true)
// public DataSource db2(@Inject("${ds.db1}") HikariDataSource ds) {
// return ds;
// }
}
在业务中使用
java
import org.noear.solon.annotation.Get;
// Mapper 需要继承 MybatisMapper
public interface UserMapper extends MybatisMapper<User> {
}
// 在 Controller 中使用 (这是示例,不建议在Controller 里使用)
@Controller
public class DemoController {
@Db //因为只有一个数据源 所以可简写;如果多个,则:@Db("master")
UserMapper mapper;
@Get
@Mapping("/test")
public void test() {
List<User> userList = QueryChain.of(mapper)
.eq(User::getId)
.like(User::getName,"abc")
.list();
userList.forEach(item -> System.out.println(item.getName()));
}
}
更多配置说明
配置和 solon mybatis-solon-plugin 配置是一样的:https://solon.noear.org/article/20