上述问题中,如果@tablename的表名是本地数据库中的表,能抽出非本地库中数据吗
时间: 2024-03-19 13:43:18 浏览: 49
如果使用`@Table`注解指定的表名是本地数据库中的表,那么该表的数据只会从本地数据库中查询,无法抽出非本地库中的数据。
如果需要查询非本地库中的数据,需要在连接信息中添加对应的数据库连接信息,并在查询语句中指定要查询的数据库名。例如,在`application.properties`文件中添加另一个数据库的连接信息:
```
spring.datasource.other_db.jdbc-url=jdbc:mysql://other_db_host:3306/other_db
spring.datasource.other_db.username=root
spring.datasource.other_db.password=123456
```
然后在Mapper中编写查询语句时,需要指定要查询的表所在的数据库名,例如:
```
@Select("SELECT id, name, age FROM other_db.tableC WHERE name LIKE #{keyword}")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "name", column = "name"),
@Result(property = "age", column = "age")
})
List<ResultEntity> search(@Param("keyword") String keyword);
```
在上面的代码中,使用了`other_db.tableC`来指定要查询的表所在的数据库名和表名。这样就可以从非本地库中查询数据了。需要注意的是,查询语句中的数据库名需要与`application.properties`文件中配置的数据库名一致。
阅读全文