当前位置:  首页>> 技术小册>> Mybatis合辑5-注解、扩展、SQL构建

  • sql 脚本:
  1. -- ----------------------------
  2. -- Table structure for account
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS `account`;
  5. CREATE TABLE `account` (
  6. `id` int(11) NOT NULL AUTO_INCREMENT,
  7. `user_id` int(11) NULL DEFAULT NULL COMMENT '外键',
  8. `money` double NULL DEFAULT NULL COMMENT '存款',
  9. PRIMARY KEY (`id`) USING BTREE,
  10. INDEX `fk_user_id`(`user_id`) USING BTREE,
  11. CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
  12. ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
  1. -- ----------------------------
  2. -- Records of account
  3. -- ----------------------------
  4. INSERT INTO `account` VALUES (1, 1, 5000);
  5. INSERT INTO `account` VALUES (2, 2, 2000);
  6. INSERT INTO `account` VALUES (3, 3, 3000);
  1. -- ----------------------------
  2. -- Table structure for course
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS `course`;
  5. CREATE TABLE `course` (
  6. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  7. `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '课程名称',
  8. PRIMARY KEY (`id`) USING BTREE
  9. ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
  1. -- ----------------------------
  2. -- Records of course
  3. -- ----------------------------
  4. INSERT INTO `course` VALUES (1, '语文');
  5. INSERT INTO `course` VALUES (2, '数学');
  6. INSERT INTO `course` VALUES (3, '英语');
  1. -- ----------------------------
  2. -- Table structure for student
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS `student`;
  5. CREATE TABLE `student` (
  6. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  7. `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学生姓名',
  8. `age` int(11) NULL DEFAULT NULL COMMENT '学生年龄',
  9. PRIMARY KEY (`id`) USING BTREE
  10. ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
  1. -- ----------------------------
  2. -- Records of student
  3. -- ----------------------------
  4. INSERT INTO `student` VALUES (1, '张三', 20);
  5. INSERT INTO `student` VALUES (2, '李四', 25);
  1. -- ----------------------------
  2. -- Table structure for student_course
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS `student_course`;
  5. CREATE TABLE `student_course` (
  6. `sid` int(11) NULL DEFAULT NULL COMMENT '外键,指向学生表的主键',
  7. `cid` int(11) NULL DEFAULT NULL COMMENT '外键,指向课程表的主键',
  8. INDEX `fk_sid`(`sid`) USING BTREE,
  9. INDEX `fk_cid`(`cid`) USING BTREE,
  10. CONSTRAINT `fk_cid` FOREIGN KEY (`cid`) REFERENCES `course` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  11. CONSTRAINT `fk_sid` FOREIGN KEY (`sid`) REFERENCES `student` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
  12. ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
  1. -- ----------------------------
  2. -- Records of student_course
  3. -- ----------------------------
  4. INSERT INTO `student_course` VALUES (1, 1);
  5. INSERT INTO `student_course` VALUES (1, 2);
  6. INSERT INTO `student_course` VALUES (1, 3);
  7. INSERT INTO `student_course` VALUES (2, 3);
  1. -- ----------------------------
  2. -- Table structure for user
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS `user`;
  5. CREATE TABLE `user` (
  6. `id` int(11) NOT NULL AUTO_INCREMENT,
  7. `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
  8. `birthday` datetime(0) NULL DEFAULT NULL COMMENT '生日',
  9. `gender` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
  10. `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址',
  11. PRIMARY KEY (`id`) USING BTREE
  12. ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
  1. -- ----------------------------
  2. -- Records of user
  3. -- ----------------------------
  4. INSERT INTO `user` VALUES (1, '张三', '2021-11-02 10:43:06', '男', '江苏苏州');
  5. INSERT INTO `user` VALUES (2, '李四', '2021-10-26 10:43:24', '女', '江苏南京');
  6. INSERT INTO `user` VALUES (3, '王五', '2021-10-26 10:43:45', '男', '江苏徐州');
  • 导入相关 jar 包的 Maven 坐标:
  1. <dependency>
  2. <groupId>org.mybatis</groupId>
  3. <artifactId>mybatis</artifactId>
  4. <version>3.4.1</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>log4j</groupId>
  8. <artifactId>log4j</artifactId>
  9. <version>1.2.17</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>mysql</groupId>
  13. <artifactId>mysql-connector-java</artifactId>
  14. <version>8.0.21</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>junit</groupId>
  18. <artifactId>junit</artifactId>
  19. <version>4.13</version>
  20. <scope>test</scope>
  21. </dependency>
  • mybatis-config.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <environments default="development">
  7. <environment id="development">
  8. <transactionManager type="JDBC"/>
  9. <dataSource type="POOLED">
  10. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  11. <property name="url"
  12. value="jdbc:mysql://192.168.134.100:3306/test?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true&amp;useSSL=false&amp;serverTimezone=GMT%2B8&amp;allowPublicKeyRetrieval=true"/>
  13. <property name="username" value="root"/>
  14. <property name="password" value="123456"/>
  15. </dataSource>
  16. </environment>
  17. </environments>
  18. <mappers>
  19. <package name="com.github.mapper"/>
  20. </mappers>
  21. </configuration>
  • log4j.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
  3. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  4. <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
  5. <param name="Encoding" value="UTF-8" />
  6. <layout class="org.apache.log4j.PatternLayout">
  7. <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
  8. </layout>
  9. </appender>
  10. <logger name="java.sql">
  11. <level value="debug" />
  12. </logger>
  13. <logger name="org.apache.ibatis">
  14. <level value="info" />
  15. </logger>
  16. <root>
  17. <level value="debug" />
  18. <appender-ref ref="STDOUT" />
  19. </root>
  20. </log4j:configuration>

该分类下的相关小册推荐: