前言
IDE:最近买了一本关于 MyBatis + SpringMVC 的入门书籍,书中的 IDE 是 MyEclipse 。但我的 Air 在新建 project 时候就开始卡顿了,弃之,使用自己简单优化过的 IDEA;
文章内容包含:数据库准备、相关配置的代码、增删改查测试类的代码、遇到的 BUG和对应解决方式以及相关的知识点;
数据库准备
之前的博客 https://blog.csdn.net/qq_40677350/article/details/95655698 中终于解决了无法登陆的问题。 macOS 中遇到类似 Access denied for user ‘root’@'localhost 报错的同学可以参考一下。
连库、建库、建表、添加数据的SQL语句
mysql -u root -p
mysql> CREATE DATABASE mybatis_test;
mysql> USE mybatis_test;
mysql> CREATE TABLE user (
-> id INT(11) NOT NULL AUTO_INCREMENT,
-> username VARCHAR(120) COLLATE utf8_bin DEFAULT NULL,
-> password VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
-> gender VARCHAR(5) COLLATE utf8_bin DEFAULT NULL,
-> email VARCHAR(100) COLLATE utf8_bin DEFAULT NULL,
-> province VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
-> city VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
-> birthday DATE DEFAULT NULL,
-> PRIMARY KEY(id)
-> ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
mysql> INSERT INTO user(id, username, password, gender, email, province, city, birthday)
-> VALUES
-> (1, "张三", 111, "男", "1111@126.com", "河南省", "郑州市", "1991-04-23");
mysql> INSERT INTO user(id, username, password, gender, email, province, city, birthday)
-> VALUES
-> (2, "李四", 222, "男", "2222@126.com", "河北省", "邯郸市", "1989-10-13"),
-> (3, "刘丽", 333, "女", "3333@126.com", "江苏省", "苏州市", "1994-06-09"),
-> (4, "李丽", 444, "女", "4444@126.com", "四川省", "成都市", "1992-11-07");
(我是用 iterm2 中直接复制下来的语句,看起来不是很规范;大家写时候能灵活处理,该一行一行该多行多行,一行忘了 ; 符号到下一行继续输入也可以。测试数据与书中相同,侵删哈)
IDEA 中新建工程
- 新建工程的过程,是用 IDEA 新建了一个 WEB 项目,本来没有选择 Maven,后来因为 BUG 的存在把结构改成了 Maven(半吊子)。它的文件结构在最后被我改成了如图所示的样子:
-
test 测试代码并没有放到 Maven 给到的 test 中。(暂时对 Maven 文件层级结构还不熟悉,所以暂时这样处理了)
-
过程我就不写了,google / bing / baidu 可以让大家建出更好的结构。
相关配置文件
- log4j.propertities 日志输出环境配置文件
# Global logging configuration
# 开发日志级别为 DEBUG 生产环境为 INFO 或 ERROR
log4j.rootLogger = DEBUG, 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
- UserMapper.xml 数据库连接池配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace = "test">
<select id="findUserById" parameterType="int" resultType="cn.com.mybatis.po.User">
SELECT * FROM USER WHERE id = #{id}
</select>
<select id="findUserByUsername" parameterType="java.lang.String"
resultType="cn.com.mybatis.po.User">
SELECT * FROM USER WHERE username LIKE '%${value}%'
</select>
<insert id = "insertUser" parameterType="cn.com.mybatis.po.User">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into user(username, password, gender, birthday, email, province, city) value (#{username}, #{password}, #{gender}, #{birthday, jdbcType = DATE}, #{email}, #{province}, #{city})
</insert>
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from user where id=#{id}
</delete>