首先,需要在项目的pom.xml文件中引入Spring MVC和MyBatis的依赖,如下所示:

<dependencies>
    <!-- Spring MVC依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.9.RELEASE</version>
    </dependency>
    <!-- MyBatis依赖 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
</dependencies>

接着,需要配置Spring MVC的DispatcherServlet和MyBatis的SqlSessionFactory,这里使用Java配置方式。

首先是Spring MVC的配置:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class MvcConfig implements WebMvcConfigurer {

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("/static/");
    }
}

上述配置启用了Spring MVC的默认Servlet,并将静态资源映射到/static/目录下。

接着是MyBatis的配置:

@Configuration
@MapperScan("com.example.mapper")
public class MybatisConfig {

    @Bean
    public DataSource dataSource() {
        // 配置数据源,这里使用HikariCP
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/library");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        return dataSource;
    }

    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        // 配置SqlSessionFactory
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sessionFactory.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
        return sessionFactory.getObject();
    }
}

上述配置使用HikariCP作为数据源,并将Mapper接口的映射文件放在classpath:mapper/目录下。

接下来是Controller的实现,这里提供一个简单的示例:

@Controller
@RequestMapping("/message")
public class MessageController {

    private final MessageMapper messageMapper;

    @Autowired
    public MessageController(MessageMapper messageMapper) {
        this.messageMapper = messageMapper;
    }

    @GetMapping("/add")
    public String add() {
        return "add_message";
    }

    @PostMapping("/save")
    public String save(@RequestParam("name") String name,
                       @RequestParam("book_id") Long bookId,
                       @RequestParam("book_name") String bookName,
                       @RequestParam("message_content") String content,
                       Model model) {
        Message message = new Message();
        message.setName(name);
        message.setBookId(bookId);
        message.setBookName(bookName);
        message.setMessageContent(content);
        message.setDateTime(new Date());
        messageMapper.insertMessage(message);
        model.addAttribute("message", message);
        return "message_detail";
    }
}

上述Controller包含两个方法,一个用于展示增加信息的页面,另一个用于处理表单提交并保存信息到数据库。

最后是Mapper接口和映射文件的实现,这里只提供一个示例:

@Mapper
public interface MessageMapper {

    @Insert("INSERT INTO message(name, book_id, book_name, message_content, date_time)" +
            "VALUES(#{name}, #{bookId}, #{bookName}, #{messageContent}, #{dateTime})")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    void insertMessage(Message message);
}

上述Mapper接口使用@Insert注解指定SQL语句,并使用@Options注解指定自动生成主键,并将主键值设置到Message对象的id属性中。

这样,就完成了使用Spring MVC和MyBatis向数据库中增加信息的实现

给我一个用Spring MVC和mybatis的得到用户输入数据并向数据库名为library、表名称为message列为name book_id book_namemessager_content date_time中增加信息的案例详细

原文地址: http://www.cveoy.top/t/topic/gE6r 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录