sprongboot学习(1)--springboot整合mybatis+mysql
sprongboot学习:使用springboot整合mybatis+mysql
1、目录结构
2、整理配置文件
(一)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>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.hxk</groupId> <artifactId>testmapp</artifactId> <version>0.0.1-SNAPSHOT</version> <name>testmapp</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 导入mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> <!--导入mysql--> <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> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
(二)application.properties
# 端口号8080 server.port=8080 # spring连接mysql配置 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.url=jdbc:mysql://localhost:3306/datas?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # mybatis #指定POJO扫描包来让mybatis自动扫描到自定义POJO mybatis.type-aliases-package=com.hxk.demo.entity mybatis.config-location=classpath:mybatis/mybatis-config.xml mybatis.mapperLocations=classpath:mybatis/mapper/*.xml
(三)mybatis配置
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> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
UserMapper.xml:配置mybatis的sql语句()
<?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.test.demo.mapper.UserMapper"> <select id="searchUser" resultType="com.test.demo.entity.User"> select * from user where id=#{id} </select> </mapper>
3、entiy
package com.test.demo.entity; public class User { private Integer id; private String name; private String password; private String telphone; public Integer getId() { return id; } public String getName() { return name; } public String getPassword() { return password; } public String getTelphone() { return telphone; } public void setId(Integer id) { this.id = id; } public void setName(String name) { this.name = name; } public void setPassword(String password) { this.password = password; } public void setTelphone(String telphone) { this.telphone = telphone; } }
4、UserController
package com.test.demo.controller; import com.test.demo.entity.User; import com.test.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired private UserService userService; @RequestMapping("showUser/{id}") public User getUser(@PathVariable Integer id) { return userService.searchUser(id); } @RequestMapping("sayhello") public String hello() { return "hello"; } }
5、service层
service:接口
package com.test.demo.service; import com.test.demo.entity.User; public interface UserService { User searchUser(Integer id); }
serviceImp:实现service方法
package com.test.demo.service.Imp; import com.test.demo.entity.User; import com.test.demo.mapper.UserMapper; import com.test.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserServiceImp implements UserService { @Autowired UserMapper userMapper; @Override public User searchUser(Integer id) { return userMapper.searchUser(id); } }
6、mapper
需要添加@Mapper注解
package com.test.demo.mapper; import com.test.demo.entity.User; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserMapper { User searchUser(Integer id); }
7、启动
package com.test.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class TestmappApplication { public static void main(String[] args) { SpringApplication.run(TestmappApplication.class, args); } }
}
8、数据库 mysql设置
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`telphone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'name1', '123456', '13637691582');
INSERT INTO `user` VALUES (2, 'name2', '123457', '13625235234');
SET FOREIGN_KEY_CHECKS = 1;
9、浏览器测试
直接获取数据
根据id获取数据