【发布时间】:2020-10-08 02:37:36
【问题描述】:
我目前正尝试在我的 springboot 项目中使用 jOOQ 将用户提供的某些数据从 html 表单插入到 MySQL 数据库中。这是我的 MainController,负责从表单中获取数据并通过 VisitorRepository 执行查询:我同时使用 add 和 insertVisitor 方法,但它们都不起作用。
@Controller
public class MainController {
private final VisitorRepository visitorRepository;
@Autowired
public MainController (VisitorRepository visitorRepository) {
this.visitorRepository = visitorRepository;
}
@RequestMapping(value = "/", method = RequestMethod.GET)
public String main() {
return "main";
}
@ResponseBody
@PostMapping("/")
public Phonenum firstSubmit(Phonenum phonenum){
System.out.println(phonenum.getPhonenumber());
visitorRepository.insertVisitor(phonenum.getPhonenumber(),"now", phonenum.getName());
return visitorRepository.add(phonenum);
}
}
VisitorRepository 接口:
public interface VisitorRepository {
public Phonenum add(Phonenum visitor);
public List<Phonenum> findAll();
public void insertVisitor(String phoneNumber, String submitTime, String name);
}
以及存储库实现:
@Repository
@Transactional
public class VisitorRepo implements VisitorRepository{
private final DSLContext dslContext;
public VisitorRepo(DSLContext dslContext){
this.dslContext = dslContext;
}
public void insertVisitor(String phoneNumber, String submitTime, String name){
this.dslContext
.insertInto(Phonenum.PHONENUM)
.columns(Phonenum.PHONENUM.PHONENUMBER, Phonenum.PHONENUM.SUBMITTIME, Phonenum.PHONENUM.NAME)
.values(phoneNumber, submitTime, name);
}
public com.demo.visitorlog.model.Phonenum add(com.demo.visitorlog.model.Phonenum visitor) {
this.dslContext
.insertInto(Phonenum.PHONENUM)
.columns(Phonenum.PHONENUM.PHONENUMBER, Phonenum.PHONENUM.SUBMITTIME, Phonenum.PHONENUM.NAME)
.values(visitor.getPhonenumber(), String.valueOf("submit time"), visitor.getName());
System.out.println("ran");
return visitor;
}
我不完全确定如何设置配置类,但这是我所拥有的:
@Configuration
public class mainConfig{
@Autowired
private DataSource dataSource;
@Bean
public DataSourceConnectionProvider connectionProvider() {
return new DataSourceConnectionProvider
(new TransactionAwareDataSourceProxy(dataSource));
}
@Bean
public DefaultDSLContext dsl() {
return new DefaultDSLContext(configuration());
}
public DefaultConfiguration configuration() {
DefaultConfiguration jooqConfiguration = new DefaultConfiguration();
jooqConfiguration.set(connectionProvider());
return jooqConfiguration;
}
所以我在发布请求后得到System.out.println(),但是当我查看我的数据库时,没有插入任何内容。我错过了什么吗?任何形式的帮助将不胜感激:)
【问题讨论】:
标签: java mysql spring spring-boot jooq