网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
使用maven管理依赖
打开项目下的pom.xml文件。
更改pom.xml中的配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lvan</groupId>
<artifactId>demo206</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 在pom.xml文件内 配置项目所需的依赖 在联网的情况下,会自动从远程仓库下载-->
<!-- dependencies 内部的为依赖项 -->
<dependencies>
<!-- dependency就是一个依赖 不能内嵌 -->
<dependency>
<!-- org\mybatis 包名 \mybatis\ 项目名3.5.1 -->
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!-- junit单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- 日志文件 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.26</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.14</version>
</dependency>
</dependencies>
</project>
其中添加依赖时,可以直接去到本地仓库内找到对应依赖项的相关配置信息。目录结构与依赖配置映射关系如下图。
org\mybatis\mybatis\3.5.1
<!-- org\mybatis 包名 \mybatis\ 项目名3.5.1 -->
version好找,即版本号3.5.1
版本号上一级就是项目名artfactID
项目名前面的就是groupID即包名org\mybatis 需要将右斜杠转为点
此目录是基于本地仓库目录的,仓库目录部分不用管。
配置都正确后,会在项目结构内多一个maven dependencies的目录。
如果在配置项写完之后,进行保存。代码没有出现报错,但是pom.xml文件有红×,就代表配置项写错了,maven找不到对应的依赖项。
也可以通过右键项目,找到properties选项进去。查看对应的依赖项错误信息,找到错误的那一项。
如上图中,junit单元测试的jar包找不到,so?这个jar包放在哪?放在本地仓库下属于junit下的目录。
找到这个目录下你会发现,该目录并不存在junit的jar包。
我们换到junit的其他版本看一下。
这个时候发现4.11版本下有junit相关的jar文件。所以将版本号改成4.11即可解决问题,重新找到对应的依赖项。
当然这种一般是版本号不对,如果是groupID和artifactID选项填写错误的话,就一样的反查回去,把对应目录复制过来作为标签的值。
创建mybatis项目
在src/main/resources目录下创建资源文件mybatis-config.xml文件,即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>
<typeAliases>
<!-- 配置实体类所在的包 告诉mybatis我的实体类都放在哪 -->
<package name="com.lvan.pojo"/>
</typeAliases>
<environments default="devlopment">
<environment id="devlopment">
<!-- 配置数据库连接方式 -->
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<!-- 配置数据库的连接信息,mybatis读取这些信息才能连接到数据库 -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db_emp"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 配置mapper映射信息 告诉mybatis映射文件在哪-->
<package name="com.lvan.mapper"></package>
</mappers>
</configuration>
然后再src/main/java目录下创建上述配置文件中出现的两个包。
创建数据库和数据表过程省略,数据表结构如下图所示。
示例数据如下
在pojo包下创建实体类
package com.lvan.pojo;
public class Employee {
private int id;
private String name;
private String gender;
private String birthday;
private String phone;
//生成getter和setter方法
//生成tostring方法
public int getId() {
return id;
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + name + ", gender=" + gender + ", birthday=" + birthday + ", phone="
+ phone + "]";
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
在mapper包下创建实体类对应的接口文件。
package com.lvan.mapper;
import java.util.List;
import com.lvan.pojo.Employee;
public interface EmployeeMapper {
//查下所有员工的方法
List<Employee> list(); //定义接口 只需要关注返回值和方法名,形参即可,无需进行实现
}
在mapper包下创建mapper接口文件对应的映射文件 同名.xml。 在编写时注意映射关系,id对应方法名,resultType 对应返回数据类型,详情看代码注释。
<?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">
<!-- 命名空间 指定该xml映射的目标文件,目标文件为一个接口文件 -->
<!-- namespace="com.lvan.mapper.EmployeeMapper" 代表的是帮com.lvan.mapper包下的EmployeeMapper接口" -->
<mapper namespace="com.lvan.mapper.EmployeeMapper">
<!-- 以查询标签的方式来实现对应接口的方法 id值为接口文件中的方法名 resultType对应了方法要返回的实体类对象 com.lvan.pojo包下Employee类-->
<select id="list" resultType="com.lvan.pojo.Employee">
<!-- SQL语句 -->
![img](https://img-blog.csdnimg.cn/img_convert/3122d033896b7959858dc2d59c9eb7f7.png)
![img](https://img-blog.csdnimg.cn/img_convert/1253310621b037814bbc605492fe0bc1.png)
![img](https://img-blog.csdnimg.cn/img_convert/fcaefa1668c4843decbfc17cb8be6603.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**
片转存中...(img-POYSZmsp-1715802804483)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**