New Project

File -> New ->Project...

文章图片(1).png

New Project

在此处选择文件本地存储位置以及JDK(8、11、17三个长期维护版本)

选择Maven进行管理

同时定义组(GroupId)和组ID(ArtfactiId)
文章图片(2).png
注:如果创建完项目pom.xml的图标不是M,则右键选择“add as maven project”

依赖

pom.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.2.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>PAP</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>PAP</name>
	<description>PAP</description>
	<properties>
		<java.version>17</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- ********************** 文件上传依赖 ********************** -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.3</version>
		</dependency>

		<!-- ********************** Mybatis依赖 ********************** -->
		<!--1) mybatis核心 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.5</version>
		</dependency>

		<!--2) Mybatis分页插件-->
		<!-- ********************** Mybatis分页插件 ********************** -->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
			<version>5.1.2</version>
		</dependency>

		<!--3) spring整合mybatis -->
		<!-- ********************** spring整合mybatis ********************** -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.1</version>
		</dependency>

		<!-- ********************** MysqlJDBC驱动 ********************** -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.44</version>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.30</version>
			<scope>compile</scope>
		</dependency>
	</dependencies>
	<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
		</resources>
	</build>
</project>

配置文件

配置文件目录:resources/...

连接数据库以及配置mapper文件

mybatis-config.xml文件

<?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>
    <environments default="development">
        <!-- 数据库配置 -->
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/psyasssys??createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="19340778"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 映射文件,mybatis精髓 -->
    <mappers>
        <mapper resource="com/example/pap/mapper/UserDao.xml"/>
    </mappers>

</configuration>

创建好项目结构

  • dao层是mybatis的接口

  • entity层是与数据库表内对应的类字段(Lombok)

  • dto层是特殊封装的返回类,加入或减少一些字段,copy来进行实现

  • mapper层是放sql语句函数的

<!-- 如果要mapper放在java文件夹下这里需要在pom.xml下进行设置 -->
	<build>
<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
		</resources>
	</build>
  • service层是接口层

  • serviceImpl层是接口逻辑实现层

  • controller层是接口入口

文件目录如下:

文章图片(3).png

代码示范

Controller层

注解

/*@ResponseBody //这个类的所有的方法返回的数据直接写给浏览器(如果是对象还能转为json对象)@Controller标记为Controller层*/
@RestController//等价于上面两个
// Hello World示例 
	@RequestMapping("/test")
	//访问路径为:localhost:8080/test
    public String test() {
        return "Hello World!";
    }

// 数据库连接测试
    @RequestMapping("/hello")
    public String hello() {
        InputStream inputStream = TextController.class.getClassLoader().getResourceAsStream("mybatis-config.xml");//读取配置文件,整合后可以放在配置里
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        System.out.println(userDao.findAll());
        sqlSession.close();
        return "Hello World!--quick";
    }

Service和ServiceImpl层

Service层

public interface SsmService {
    public String SsmTest ();
}

ServiceImpl层

@Service
public class SsmServiceImpl implements SsmService {

    @Override
    public String SsmTest() {
        return "Hello Maackia!";
    }
}

Entity层

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    //这三个注解都是lombok的
    private Integer id;
    private String username;
    private Integer userage;
}

Dao层以及Mapper层

Dao层

public interface UserDao {
    List<User> findAll();
}

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="com.example.pap.dao.UserDao">
    <select id="findAll" resultType="com.example.pap.entity.User">
        select * from user
    </select>
</mapper>