SpringMVC 应用 MyBatis 访问数据库

2015-11-12 12:13:28   最后更新: 2017-03-10 18:02:58   访问数量:656




Mybaits 是对 JDBC 的一个封装,实现了简单便捷的数据库访问与操作

而 MyBatis-Spring 则会帮助你将 MyBatis 无缝地整合到 Spring 中

 

要使用 mybatis 首先需要配置 mybatis 的相关依赖:

<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency>

 

 

在 pom.xml 中添加 mybatis 和 mybatis-spring 的依赖并 reimport 以后,我们就可以使用 mybatis 和 mybatis-spring 了

 

使用 mybatis 前,我们还需要在 servlet-config.xml 中配置 datasource

<!-- datasource 配置 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="${dburl}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean> <!-- mybatis 配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="typeAliasesPackage" value="com.demo.modle" /> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean>

 

 

package com.demo.dao; import com.demo.model.Customer; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** * Created by techlog on 15/11/12. */ public interface CustomerDAO { @Select("SELECT * FROM customer WHERE cust_id = #{userId}") Customer getUser(@Param("userId") int userId); }

 

 

在 servlet-config.xml 中注册我们的 DAO 接口

<!-- 注册接口 --> <bean id="customerDAO" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.demo.dao.CustomerDAO" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean>

 

 

mybatis-config.xml 是 mybatis 的配置文件,可以在配置文件中写入可选的配置:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 分布式应用必须禁用查询缓存 --> <setting name="cacheEnabled" value="false"/> <!-- 禁用懒加载--> <setting name="lazyLoadingEnabled" value="false"/> <!-- 默认执行超时时间 --> <setting name="defaultStatementTimeout" value="30"/> <!-- 下划线命名转驼峰命名--> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 默认开启“获取差入口自增主键的值”(仅insert语句) --> <setting name="useGeneratedKeys" value="true"/> </settings> <mappers> <mapper resource="mappers/demo.xml"/> </mappers> </configuration>

 

 

Controller

已经在 servlet-config.xml 中注册了我们的 DAO 接口,接下来只要在 Service 中取到这个 Resource 就可以直接调用 DAO 接口了,而无需自己去实现它

package com.demo.controller; import com.demo.dao.CustomerDAO; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; @RestController @RequestMapping(value = "/jdbc") public class HomeController { @Resource private CustomerDAO customerDAO; @RequestMapping(value = "/get") public ModelAndView getCustomer(ModelAndView modelAndView) { modelAndView.addObject("customer", customerDAO.getUser(1).getName()); modelAndView.setViewName("test"); return modelAndView; } }

 

 

jsp

JSP 并没有进行改动,参看上一篇日志:

SpringMVC 应用 JdbcTemplate 访问数据库

 

mybatis-spring http://mybatis.org/spring/zh/getting-started.html

 






技术帖      web      mvc      database      龙潭书斋      数据库      db      java      framework      spring      dao      mybatis      mybatis-spring      interface     


京ICP备15018585号