强烈推荐配合idea插件mybatisx使用,此插件可以让代码的编写更为顺畅
首先我们选择maven项目进行搭建,由于我们这边进行的是javase的搭建而并非javaweb项目,所以骨架原型不选即可,直接进行下一步
填写完毕后进入主界面
需要注意的是,maven工程下不同文件夹都相对着不同的功能分块
src/main/java
:放置开发者代码
src/test/java
:放置开发者测试代码
src/main/resources
:存放配置文件
src/test/resources
存放配置文件
prom.xml
:主配置文件
target
:编译后生成的工程文件
首先,我们需要在pom.xml配置文件中进行添加mybatis的依赖,不同版本的mybatis在maven仓库的相关依赖可以在maven的仓库依赖中查询https://mvnrepository.com/ 我们这里使用mybatis版本为3.4.4,注意,如果你的pom.xml没有相关的dependencies
标签,需要先手动添加再进行依赖导入
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>1.0.1</version>
</dependency>
然后导入mysql的相关依赖,此处mysql依赖版本采用5.1.48
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
此时pom.xml基本配置完毕,接下来对mybatis的配置文件进行配置,在进行初次配置之前,我们可以进入idea设置
找到编辑器
——File and Code Templates
点击+
号,在右边的框中进行mybatis的配置文件模板书写
模板如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<typeAliases>
</typeAliases>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<!--此处书写数据库的信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:12345/mydata?characterEncoding=utf-8&allowMultiQueries=true"/>
<property name="username" value="root"/>
<property name="password" value="1122"/>
</dataSource>
</environment>
</environments>
<mappers>
</mappers>
</configuration>
创建模板完毕后,在resource文件夹中创建mybatis-configuration文件
新建数据库与数据
/*
Navicat MySQL Data Transfer
Source Server : mysql1
Source Server Version : 50651
Source Host : localhost:12345
Source Database : mydata
Target Server Type : MYSQL
Target Server Version : 50651
File Encoding : 65001
Date: 2021-07-04 11:57:51
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for t_employee
-- ----------------------------
DROP TABLE IF EXISTS `t_employee`;
CREATE TABLE `t_employee` (
`pk_employeeId` int(11) NOT NULL AUTO_INCREMENT,
`e_name` varchar(255) DEFAULT NULL,
`e_job` varchar(255) DEFAULT NULL,
`e_money` int(11) DEFAULT NULL,
`e_birthday` date DEFAULT NULL,
`e_statue` enum('在职','离职') DEFAULT '在职',
PRIMARY KEY (`pk_employeeId`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of t_employee
-- ----------------------------
INSERT INTO `t_employee` VALUES ('1', '测试员工1', '扫地僧', '300', '1990-01-01', '在职');
INSERT INTO `t_employee` VALUES ('2', '测试员工2', '职员', '1000', '1992-01-02', '在职');
INSERT INTO `t_employee` VALUES ('3', '张三', '监理', '9020', '1898-03-02', '在职');
INSERT INTO `t_employee` VALUES ('4', '李四', '经理', '8920', '1982-04-05', '离职');
INSERT INTO `t_employee` VALUES ('5', '王五', '副经理', '8000', '1972-02-22', '在职');
INSERT INTO `t_employee` VALUES ('6', '赵六', '副总经理', '90000', '1980-07-01', '在职');
INSERT INTO `t_employee` VALUES ('7', '刘七', '总经理', '90909', '1993-12-31', '在职');
INSERT INTO `t_employee` VALUES ('9', 'aaaa2', 'rua222', '1000', '1989-01-01', '在职');
在src/main/java
文件夹中进行bean包实体类的编写
public class EmployeeBean {
private Integer id;
private String name;
private String job;
private Integer money;
private LocalDate birthday;
private String statue = "在职";
public EmployeeBean() {
}
public EmployeeBean(String name, String job, Integer money, LocalDate birthday) {
this.name = name;
this.job = job;
this.money = money;
this.birthday = birthday;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public Integer getMoney() {
return money;
}
public void setMoney(Integer money) {
this.money = money;
}
public LocalDate getBirthday() {
return birthday;
}
public void setBirthday(LocalDate birthday) {
this.birthday = birthday;
}
public String getStatue() {
return statue;
}
public void setStatue(String statue) {
this.statue = statue;
}
@Override
public String toString() {
return "EmployeeBean{" +
"id=" + id +
", name='" + name + '\'' +
", job='" + job + '\'' +
", money=" + money +
", birthday=" + birthday +
", statue='" + statue + '\'' +
'}' + "\n";
}
}
新建mapper包(DAO层),在mapper包中书写对应的mapper接口
/**
* 添加方法
*
* @param employeeBean
*/
void add(EmployeeBean employeeBean);
/**
* 删除方法
*
* @param id
*/
void del(int id);
/**
* 按id进行职位和工资的修改
*
* @param id
* @param job(别名为work)
* @param money
*/
void alt(@Param("id") int id, @Param("work") String job, @Param("money") int money);
/**
* 添加员工
*
* @param employeeBean 员工对象
* @return 员工id
*/
Integer addEmp(EmployeeBean employeeBean);
创建好接口后,进行mapper文件的配置,此文件是mybatis的SQL映射文件,也是核心文件之一,和配置mybatis-configuartion的配置类似,为了方便以后进行重复利用,找到编辑器
——File and Code Templates
点击+
号,在右边的框中进行mapper的配置文件模板书写
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的-->
<mapper namespace="">
<!--
根据 id 查询 user 表中的数据
id:唯一标识符,此文件中的id值不能重复,简单来说,就是DAO层中的方法名
resultType:返回值类型,一条数据库记录也就对应实体类的一个对象,注意现在要跟上全名(包名+类名)
parameterType:参数类型,也就是查询条件的类型
#{}表示一个占位符即?,在使用时不需要关心参数值的类型,mybatis会自动进行java类型和jdbc类型的转换。
-->
</mapper>
有了这个配置文件,至少之前原始JDBC中经常出现的Connection,PreparedStatement,ResultSet这些接口不需要你再创建了,当书写好正确的mapper映射实体bean路径后,如果idea安装有mybatisx插件,会出现mybatis的经典Logo,你可以点击小鸟图标快速跳转至映射的实体bean中或从实体bean中快速跳转至mapper文件
如果安装有mybatisx,现在回到IEmployeeMapper,会发现刚刚书写的接口方法下有报红线,此时可以使用alt+enter
调出快捷操作,mybatisx将根据你在接口所书写的方法书写至mapper配置文件中
需要注意的是,如果命名没有相关操作的关键词,mybatisx会让你选择当前的操作是生成什么形式的SQL语句标签
在mapper中生成标签完毕后,就可以进行相关SQL语句的书写了,需要注意的是,标签中的id
对应了你在接口中的方法名
在进行mapper文件的基本内容填充后,我们需要去mybatis-configuration文件中去进行mapper文件的注册,新建一个<mappers>
标签,并将你的mapper文件带地址添加进去
<mappers>
<!--要读取的mapper文件地址-->
<mapper resource="mapper/EmployeeMapper.xml"/>
</mappers>
至此,基本的maven+mybatis文件配置基本结束