使用MyBatis注解方式进行SQL映射,需要在Mapper接口中定义方法,并使用@Select、@Insert等注解指定SQL语句。
使用MyBatis的注解方式进行SQL映射可以大大简化XML配置文件的使用,提高开发效率,下面是详细的步骤和小标题:
1、引入MyBatis依赖
在项目的pom.xml文件中添加MyBatis和MyBatisSpring的依赖:
<dependencies> <!MyBatis > <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <!MyBatisSpring > <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatisspring</artifactId> <version>2.0.4</version> </dependency> </dependencies>
2、配置数据源和SqlSessionFactory
在Spring的配置文件中配置数据源和SqlSessionFactory:
<!数据源配置 > <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="123456" /> </bean> <!SqlSessionFactory配置 > <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatisconfig.xml" /> </bean>
3、创建实体类和Mapper接口
创建一个实体类User和一个对应的Mapper接口UserMapper:
public class User { private Integer id; private String name; private Integer age; // getter和setter方法省略... }
import org.apache.ibatis.annotations.*; import java.util.List; @Mapper // 标记为Mapper接口,Spring会自动扫描并注入SqlSessionFactory和MapperScannerConfigurer对象 public interface UserMapper { @Select("SELECT * FROM user") // 查询所有用户,返回List<User>类型结果集 List<User> findAll(); }
4、编写Service和Controller层代码
在Service层调用Mapper接口的方法:
@Service // 标记为Service层组件,Spring会自动注入UserMapper对象和其他相关服务对象(如事务管理器) public class UserService { @Autowired // 自动注入UserMapper对象,无需在构造函数中手动注入 private UserMapper userMapper; public List<User> findAll() { return userMapper.findAll(); // 调用Mapper接口的方法,执行SQL查询并返回结果集 } }
在Controller层调用Service层的方法:
@Controller // 标记为Controller层组件,Spring会自动扫描并注入其他相关组件(如视图解析器) public class UserController { @Autowired // 自动注入UserService对象,无需在构造函数中手动注入 private UserService userService; @RequestMapping("/users") // 处理请求路径为/users的HTTP请求,返回一个视图名称(如userList)或直接返回一个ModelAndView对象(包含视图名称和模型数据) public ModelAndView listUsers() { List<User> users = userService.findAll(); // 调用Service层的方法,执行业务逻辑并获取结果集(用户列表) ModelAndView modelAndView = new ModelAndView("userList"); // 创建一个ModelAndView对象,设置视图名称为userList(需要提前定义一个名为userList的JSP页面) modelAndView.addObject("users", users); // 将结果集添加到ModelAndView对象中,以便在视图中显示(通过${users}表达式) return modelAndView; // 返回ModelAndView对象,Spring会根据视图名称找到对应的JSP页面并渲染,同时将模型数据传递给JSP页面(通过request域) } }
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/512620.html