Mybatis入门案例
文件结构分析
mapper : 接口和映射,包含了封装的SQL的语句
pojo : 实体类
util : 用于创建单例的数据回话对象
test : 测试专用
config : 配置文件
需要的jar包 : log4j-1.2.17.jar 用于打印日志
mybatis-3.2.7.jar mybatis基础包
mysql-connector-java-5.1.47.jar 数据库连接包
数据库使用了两张表
Order 和 User表
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '下单用户id',
`number` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '订单号',
`createtime` datetime NOT NULL COMMENT '创建订单时间',
`note` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE,
INDEX `FK_orders_1`(`user_id`) USING BTREE,
CONSTRAINT `FK_orders_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Records of orders
-- ----------------------------
INSERT INTO `orders` VALUES (3, 1, '1000010', '2019-07-04 13:22:35', NULL);
INSERT INTO `orders` VALUES (4, 1, '1000011', '2019-07-03 13:22:41', NULL);
INSERT INTO `orders` VALUES (5, 10, '1000012', '2019-07-12 16:13:23', NULL);
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名称',
`birthday` date NULL DEFAULT NULL COMMENT '生日',
`sex` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
`address` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '谢佳辰', '1996-01-27', '1', '安徽马鞍山');
INSERT INTO `user` VALUES (10, '徐青', '1996-10-30', '1', '安徽马鞍山');
INSERT INTO `user` VALUES (16, '吴观钱', '1997-04-20', '1', '安徽池州');
INSERT INTO `user` VALUES (22, '林爱国', '1995-11-10', '1', '安徽滁州');
INSERT INTO `user` VALUES (24, '徐勇', '1996-02-20', '1', '安徽合肥');
INSERT INTO `user` VALUES (25, '陈硕', '1997-01-10', '1', '安徽阜阳');
SET FOREIGN_KEY_CHECKS = 1;
准备config配置文件夹
log4j.properties 打印日志
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
#log4j.rootLogger=stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
jdbc.properties 数据库连接
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
jdbc.password=root
jdbc.username=root
jdbc.driverClassName=com.mysql.jdbc.Driver
编写实体类
Order 和 User
Order类
package com.xiejiachen.pojo;
import java.util.Date;
public class Order {
private Integer id;
private Integer userId;
private String number;
private Date createtime;
private String note;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public Order(Integer id, Integer userId, String number, Date createtime, String note) {
super();
this.id = id;
this.userId = userId;
this.number = number;
this.createtime = createtime;
this.note = note;
}
public Order() {
super();
