当前位置:   article > 正文

springBoot 集成 Mybatis_org.mybatis.spring.boot

org.mybatis.spring.boot

一、无 mybatis 配置文件方式

1.1 配置相关信息

1.1.1 添加 maven 依赖

  1. <dependency>
  2. <groupId>org.mybatis.spring.boot</groupId>
  3. <artifactId>mybatis-spring-boot-starter</artifactId>
  4. <version>1.1.1</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>mysql</groupId>
  8. <artifactId>mysql-connector-java</artifactId>
  9. </dependency>

1.1.2 修改 application.properties

  1. spring.datasource.url=jdbc:mysql://localhost:3306/zlits_user?useSSL=false
  2. spring.datasource.username=root
  3. spring.datasource.password=Rfid123456
  4. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  5. spring.jpa.properties.hibernate.hbm2ddl.auto=update
  6. spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
  7. spring.jpa.show-sql= true

1.1.3 建库建表

  1. DROP DATABASE IF EXISTS zlits_user;
  2. CREATE DATABASE zlits_user;
  3. USE zlits_user;
  4. SET FOREIGN_KEY_CHECKS=0;
  5. DROP TABLE IF EXISTS `user`;
  6. CREATE TABLE `user` (
  7. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  8. `name` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '名字',
  9. `password` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '密码',
  10. `age` bigint(20) DEFAULT NULL COMMENT '年龄',
  11. PRIMARY KEY (`id`)
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='人员信息表';

1.1.4 项目代码结构

        在写用例的工程中发现,这个 main 类需要在根目录下启动才能管理起整个工程来

1.2 编码

1.2.1 mapper

  1. @Mapper
  2. public interface UserMapper {
  3. @Select("select id,name,password,age from user")
  4. List<User> findAll();
  5. @Delete("delete from user where id=#{id}")
  6. int deleteUserById(int id);
  7. @Update({"update user set name=#{name},password=#{password},age=#{age} where id=#{id}"})
  8. int updateUserById(User user);
  9. @Insert({"insert into user(name,password,age) values(#{name},#{password},#{age})"})
  10. int insertUser(User user);
  11. @Select({"select * from user where id=#{id}"})
  12. User selectUserById(int id);
  13. }

1.2.2 service 层

  1. public interface UserService {
  2. public List<User> findAll();
  3. int deleteUserById(int id);
  4. int updateUserById(User user);
  5. int insertUser(User user);
  6. User selectUserById(int id);
  7. }
  1. @Service
  2. public class UserServiceImpl implements UserService {
  3. @Autowired
  4. UserMapper mapper;
  5. @Override
  6. public List<User> findAll() {
  7. return mapper.findAll();
  8. }
  9. @Override
  10. public int deleteUserById(int id) {
  11. return mapper.deleteUserById(id);
  12. }
  13. @Override
  14. public int updateUserById(User user) {
  15. return mapper.updateUserById(user);
  16. }
  17. @Override
  18. public int insertUser(User user) {
  19. return mapper.insertUser(user);
  20. }
  21. @Override
  22. public User selectUserById(int id) {
  23. return mapper.selectUserById(id);
  24. }
  25. }

1.2.3 entity 层

  1. public class User {
  2. private int id;
  3. private String name;
  4. private String password;
  5. private int age;
  6. // setter、getter、toString()
  7. }

1.2.4 controller层

  1. @Controller
  2. public class UserController {
  3. @Autowired
  4. UserService userService;
  5. @RequestMapping("/listUser")
  6. public String listUser(Model model) {
  7. List<User> users = userService.findAll();
  8. model.addAttribute("users", users);
  9. System.out.println(addUser());
  10. System.out.println(modifyUser());
  11. System.out.println(deleUser());
  12. return "listUser";
  13. }
  14. //新增
  15. public int addUser() {
  16. User user = new User();
  17. user.setName("张三丰");
  18. user.setAge(80);
  19. user.setPassword("dsdsds");
  20. return userService.insertUser(user);
  21. }
  22. //修改
  23. public int modifyUser() {
  24. User user = userService.selectUserById(1);
  25. user.setName(user.getName()+"A");
  26. user.setAge(user.getAge()+1);
  27. user.setPassword(user.getPassword()+"A");
  28. return userService.updateUserById(user);
  29. }
  30. //删除
  31. public int deleUser() {
  32. return userService.deleteUserById(2);
  33. }
  34. }

1.2.5 jsp 页面

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="ISO-8859-1">
  6. <title>Insert title here</title>
  7. </head>
  8. <body>
  9. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  10. <table align='center' border='1' cellspacing='0'>
  11. <tr>
  12. <td>id</td>
  13. <td>name</td>
  14. <td>password</td>
  15. <td>age</td>
  16. </tr>
  17. <c:forEach items="${users}" var="s" varStatus="st">
  18. <tr>
  19. <td>${s.id}</td>
  20. <td>${s.name}</td>
  21. <td>${s.password}</td>
  22. <td>${s.age}</td>
  23. </tr>
  24. </c:forEach>
  25. </table>
  26. </body>
  27. </html>

1.2.6 测试 

       在浏览器输入 http://localhost:8080/listUser

二、有 mybatis 配置文件方式

2.1 配置相关信息

2.1.1添加 maven 依赖

  1. <dependency>
  2. <groupId>org.mybatis.spring.boot</groupId>
  3. <artifactId>mybatis-spring-boot-starter</artifactId>
  4. <version>1.1.1</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>mysql</groupId>
  8. <artifactId>mysql-connector-java</artifactId>
  9. </dependency>

2.1.2 修改 application.properties

  1. spring.mvc.view.prefix=/WEB-INF/views/
  2. spring.mvc.view.suffix=.jsp
  3. spring.datasource.url=jdbc:mysql://localhost:3306/zlits_user?useSSL=false
  4. spring.datasource.username=root
  5. spring.datasource.password=Rfid123456
  6. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  7. spring.jpa.properties.hibernate.hbm2ddl.auto=update
  8. spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
  9. spring.jpa.show-sql= true
  10. # 是否检查配置文件
  11. mybatis.check-config-location =true
  12. #mybatis的配置文件的位置
  13. mybatis.config-location=classpath:mybatis-config.xml
  14. #mybatis的mapper文件的位置
  15. mybatis.mapper-locations=classpath*:mapper/*Mapper.xml

2.1.3 建库建表

  1. DROP DATABASE IF EXISTS zlits_user;
  2. CREATE DATABASE zlits_user;
  3. USE zlits_user;
  4. SET FOREIGN_KEY_CHECKS=0;
  5. DROP TABLE IF EXISTS `user`;
  6. CREATE TABLE `user` (
  7. `ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  8. `NAME` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '名字',
  9. `PASSWORD` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '密码',
  10. `AGE` bigint(20) DEFAULT NULL COMMENT '年龄',
  11. PRIMARY KEY (`ID`)
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='人员信息表';

2.1.4 项目代码结构

2.2 编码

2.2.1 mapper 层

  1. @Mapper
  2. public interface UserMapper {
  3. int deleteByPrimaryKey(Long id);
  4. int insert(User record);
  5. int insertSelective(User record);
  6. User selectByPrimaryKey(Long id);
  7. int updateByPrimaryKeySelective(User record);
  8. int updateByPrimaryKey(User record);
  9. List<User> selectAll();
  10. }

2.2.2 entity 层

  1. public class User implements Serializable {
  2. private Long id;
  3. private String name;
  4. private String password;
  5. private Long age;
  6. private static final long serialVersionUID = 1L;
  7. // setter、getter、toString
  8. }

2.2.3 UserMapper.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.generator.dao.UserMapper">
  4. <resultMap id="BaseResultMap" type="com.generator.entity.User">
  5. <id column="ID" jdbcType="BIGINT" property="id" />
  6. <result column="NAME" jdbcType="VARCHAR" property="name" />
  7. <result column="PASSWORD" jdbcType="VARCHAR" property="password" />
  8. <result column="AGE" jdbcType="BIGINT" property="age" />
  9. </resultMap>
  10. <sql id="Base_Column_List">
  11. ID, NAME, PASSWORD, AGE
  12. </sql>
  13. <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
  14. select
  15. <include refid="Base_Column_List" />
  16. from user
  17. where ID = #{id,jdbcType=BIGINT}
  18. </select>
  19. <select id="selectAll" resultMap="BaseResultMap">
  20. select
  21. <include refid="Base_Column_List" />
  22. from user
  23. </select>
  24. <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
  25. delete from user
  26. where ID = #{id,jdbcType=BIGINT}
  27. </delete>
  28. <insert id="insert" parameterType="com.generator.entity.User">
  29. <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
  30. SELECT LAST_INSERT_ID()
  31. </selectKey>
  32. insert into user (NAME, PASSWORD, AGE
  33. )
  34. values (#{name,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{age,jdbcType=BIGINT}
  35. )
  36. </insert>
  37. <insert id="insertSelective" parameterType="com.generator.entity.User">
  38. <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
  39. SELECT LAST_INSERT_ID()
  40. </selectKey>
  41. insert into user
  42. <trim prefix="(" suffix=")" suffixOverrides=",">
  43. <if test="name != null">
  44. NAME,
  45. </if>
  46. <if test="password != null">
  47. PASSWORD,
  48. </if>
  49. <if test="age != null">
  50. AGE,
  51. </if>
  52. </trim>
  53. <trim prefix="values (" suffix=")" suffixOverrides=",">
  54. <if test="name != null">
  55. #{name,jdbcType=VARCHAR},
  56. </if>
  57. <if test="password != null">
  58. #{password,jdbcType=VARCHAR},
  59. </if>
  60. <if test="age != null">
  61. #{age,jdbcType=BIGINT},
  62. </if>
  63. </trim>
  64. </insert>
  65. <update id="updateByPrimaryKeySelective" parameterType="com.generator.entity.User">
  66. update user
  67. <set>
  68. <if test="name != null">
  69. NAME = #{name,jdbcType=VARCHAR},
  70. </if>
  71. <if test="password != null">
  72. PASSWORD = #{password,jdbcType=VARCHAR},
  73. </if>
  74. <if test="age != null">
  75. AGE = #{age,jdbcType=BIGINT},
  76. </if>
  77. </set>
  78. where ID = #{id,jdbcType=BIGINT}
  79. </update>
  80. <update id="updateByPrimaryKey" parameterType="com.generator.entity.User">
  81. update user
  82. set NAME = #{name,jdbcType=VARCHAR},
  83. PASSWORD = #{password,jdbcType=VARCHAR},
  84. AGE = #{age,jdbcType=BIGINT}
  85. where ID = #{id,jdbcType=BIGINT}
  86. </update>
  87. </mapper>

2.2.4 service 层

  1. public interface UserService {
  2. public List<User> findAll();
  3. }
  1. @Service
  2. public class UserServiceImpl implements UserService {
  3. @Autowired
  4. UserMapper mapper;
  5. public List<User> findAll() {
  6. System.out.println("执行了DAO层");
  7. return mapper.selectAll();
  8. }
  9. }

2.2.5 Controller 层

  1. @Controller
  2. public class UserController {
  3. @Autowired
  4. UserService userService;
  5. // 查询
  6. @RequestMapping("/listUserCommon")
  7. public String listUser(Model model) {
  8. List<User> users = userService.findAll();
  9. for (User user : users) {
  10. System.out.println(user.toString());
  11. }
  12. model.addAttribute("users", users);
  13. return "listUser";
  14. }
  15. }

2.2.6 jsp 页面

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta charset="ISO-8859-1">
  6. <title>Insert title here</title>
  7. </head>
  8. <body>
  9. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  10. <table align='center' border='1' cellspacing='0'>
  11. <tr>
  12. <td>id</td>
  13. <td>name</td>
  14. <td>password</td>
  15. <td>age</td>
  16. </tr>
  17. <c:forEach items="${users}" var="s" varStatus="st">
  18. <tr>
  19. <td>${s.id}</td>
  20. <td>${s.name}</td>
  21. <td>${s.password}</td>
  22. <td>${s.age}</td>
  23. </tr>
  24. </c:forEach>
  25. </table>
  26. </body>
  27. </html>

2.2.7 测试

        在浏览器输入 http://localhost:8080/listUserCommon

2.2.8 说明

        如果 UserMapper 类上不添加 @Mapper 注解,那么就得在启动类上添加 @MapperScan 注解,一般情况下都是在启动类上添加 @MapperScan 注解,这样比较简单。

        加这个注解的标签主要是为了让 Spring 进行管理,如果有多个 dao,用逗号隔开即可,如下

@MapperScan({"com.zit.cac.dao","com.zit.epms.dao"}) 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/498171
推荐阅读
相关标签
  

闽ICP备14008679号