用注释您的知识库类
@Repository
.
另外,不要这样做:
ServiceClass cc1 = new ServiceClass();
相反,应该注射
@Autowired
让Spring框架完成其工作的注释,如下所示:
public class SpringBootWebsocketExampleApplication implements CommandLineRunner {
@Autowired
private ServiceClass serviceClass;
public static void main(String[] args) {
SpringApplication.run(SpringBootWebsocketExampleApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
List<Users> kk=new ArrayList<Users>();
JSONObject jsOn1=cc1.getjsondatamongo();
System.out.println(jsOn1);
}
}
这是春天的方法。附加阅读:
https://www.baeldung.com/inversion-control-and-dependency-injection-in-spring
还有一点建议:遵循命名约定/标准。课程名称应使用大写字母,驼色大小写,即
UserRepository
,
UserService
第二部分:
假设来自更新/当前的异常。我认为将查询结果解析为
JSONObject
. 我对此不确定,但通常您希望返回Pojos列表,即:
List<User>
.
此外,您还可以使用“内置”方法,例如
findAll()
-不需要使用
native query
在这里。试试这个:
@Service
public class ServiceClass {
@Autowired
UserRepository userRepository;
public JSONObject getjsondatamongo()
{
return userRepository.findAll();
}
}
第三部分
浏览一些网络教程和阅读文档,我认为你应该简单地操作
db.collection.find()
只需提供
{}
在你
@Query
. 喜欢
@Query("{}")
如果希望返回整个数据。