我认为比较简单的Springboot映射写法
1.我们先写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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!--添加amq的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <!--添加jpa的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!--添加redis的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--添加freemarker--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <!--添加jdbc的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <!--添加mail的支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--添加web的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--添加service的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <!--添加starter--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--添加thymeleaf的模板--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <version>2.0.4.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.我们写一个application.properties
#数据库的配置 #配置数据源 spring.datasource.url=jdbc:mysql://localhost:3306/liri?useUnicode=true&characterEncoding=utf8&useSSL=false #数据库的用户名 spring.datasource.username=root #数据库的密码 spring.datasource.password=1234 #项目启动的端口号 server.port=8091 web.upload-path=G:/static #rabbitmq的配置 spring.application.name=Spring-boot-rabbitmq spring.rabbitmq.host=localhost spring.redis.port=6379 spring.rabbitmq.username=admin spring.rabbitmq.password=123456 #redis spring.redis.host=localhost spring.redis.password=1234
3.我们开始写一个实体类
package com.example.demo; //User的实体类对应user的实体表 public class UserEntity { private int id; //用户id private String name;//用户姓名 private int age;//用户年龄 private String sex;//用户性别 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
4.我们再写一个Mapper的映射类,我们直接把sql写在了mapper的dao上,使看起来更简洁一点。我这边就列举了增删改查
package com.example.demo; import org.apache.ibatis.annotations.*; import java.util.List; //UserMapper的映射类 @Mapper public interface UserMapper { //1.查询所有的User数据 @Select("select * from user") @Results({ @Result(property = "id",column = "id"), @Result(property = "name",column = "name"), @Result(property = "age",column = "age"), @Result(property = "sex",column = "sex") }) List<UserEntity> getAll(); //根据id查询一条数据 @Select("select * from user where id=#{id}") @Results({ @Result(property = "id",column = "id"), @Result(property = "name",column = "name"), @Result(property = "age",column = "age"), @Result(property = "sex",column = "sex") }) UserEntity getOne(int id); //插入数据到user @Insert("insert into user values(#{id},#{name},#{age},#{sex})") void insert(UserEntity userEntity); //更新数据到user @Update("update user set name=#{name},age=#{age},sex=#{sex} where id=#{id}") void update(UserEntity userEntity); //根据id删除user的一条数据 @Delete("delete from user where id=#{id}") void delete (int id); }
5.写一个启动类
package com.example.demo; import org.apache.ibatis.annotations.Mapper; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.cache.CacheProperties; import org.springframework.boot.autoconfigure.data.redis.RedisProperties; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import java.util.Scanner; //User的启动类 @SpringBootApplication @RestController @RequestMapping("/democs") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @RequestMapping("/cs") public String cs(){ return "cs is a games"; } }
5.可以运行启动
我这边没问题
6.我们来直接测试刚才的接口
package com.example.demo; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; //这里用做测试使用 @RunWith(SpringRunner.class) @SpringBootTest public class DemoApplicationTests { //注入userMapper @Autowired private UserMapper userMapper; //测试插入数据到user //执行正确 @Test public void testInsert() throws Exception { UserEntity u1=new UserEntity(); u1.setId(21); u1.setName("zh"); u1.setAge(22); u1.setSex("男"); UserEntity u2=new UserEntity(); u2.setId(22); u2.setName("she"); u2.setAge(22); u2.setSex("男"); UserEntity u3=new UserEntity(); u3.setId(23); u3.setName("sh"); u3.setAge(22); u3.setSex("男"); userMapper.insert(u1); userMapper.insert(u2); userMapper.insert(u3); } //查询user的全部数据 //执行正确 @Test public void testQuery() throws Exception{ List<UserEntity> userEntityList=userMapper.getAll(); UserEntity userEntity=userEntityList.get(0); UserEntity userEntity1=userEntityList.get(1); UserEntity userEntity2=userEntityList.get(2); System.out.println("====================分割线================="); System.out.println(userEntity.getId()+userEntity.getAge()+userEntity.getName()+userEntity.getSex()); System.out.println(userEntity1.getId()+userEntity1.getAge()+userEntity1.getName()+userEntity1.getSex()); System.out.println(userEntity2.getId()+userEntity2.getAge()+userEntity2.getName()+userEntity2.getSex()); } //根据user的id更新一条数据 //执行正确 @Test public void testUpdate() throws Exception{ UserEntity userEntity=userMapper.getOne(5); System.out.println(userEntity.toString()); userEntity.setName("xzx"); userEntity.setAge(23); userEntity.setSex("女"); userMapper.update(userEntity); Assert.assertTrue(("xz".equals(userMapper.getOne(5).getName()))); System.out.println("=============分割线=============="); System.out.println(userMapper.getOne(5).getName()+userMapper.getOne(5).getId() +userMapper.getOne(5).getAge()+userMapper.getOne(5).getSex()); } //根据id删除一条数据 //执行正确 @Test public void delete() throws Exception{ userMapper.delete(5); } }
7.假如是自己学习或者是小型项目,建议用这类方法,大型项目不建议采用
上面的依赖有集成redis,shiro,mq。可以自行添加
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统