移动崽业余时间看看springboot 简单记录下 springboot配置mybatis连接mysql
ide :intellij idea
第一步 创建一个springboot项目 就不说了
第二步 检查下pom.xml 需要mysql-connector-java和mybatis-spring-boot-starter (创建springboot 勾选对应的就有了)
<project>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</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>
</dependencies>
</project>
第三步 自己的工程包名里面创建四个文件夹
包名.bean 放实体类
包名.controller 放controller
包名.Mapper 放Mapper dao接口
包名.Service
resources资源里建一个文件夹
mapping
像这样
第四步 本地数据库弄个表 放点数据 我的库名叫user 表名叫userinfo
第五步 配置mybatis
application.properties 里面写
spring.profiles.active=dev
吧配置文件指到application-dev.yml (yml文件配置起来比较好看。。。 没有自己建一个就不说了)
application-dev.yml里面写
#端口号
server:
port: 8005
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/库名?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mapping/*Mapper.xml
type-aliases-package: 包名.bean
#showSql
logging:
level:
com:
example:
mapper: debug
username和password都是自己的你要是找不到我也没办法
driver-class-name有点方便啊8.0的mysql用com.mysql.jdbc.Driver也能用 就控制台会说要用com.mysql.cj.jdbc.Driver
mapper-locations: classpath:mapping/*Mapper.xml 是映射resources/mapping里的写有sql语句的xml文件 我后缀名都有Mapper要是怕错就直接写mapper-locations: classpath:mapping/*.xml
type-aliases-package: 包名.bean 是指定实体类的路径要注意别写错了
第六步 根据自己数据库的表写bean文件 不说了 我的仅供参考
第七步 包名.Mapper 下建一个UserMapper的接口文件
@Mapper
@Repository
public interface UserMapper {
User Sel(int id);
}
我就写了一个sel方法为了从id 查询一条数据
第八步 包名.Service 下建一个UserService的java文件
@Service
public class UserService {
@Autowired
UserMapper userMapper;
public User Sel(int id){
return userMapper.Sel(id);
}
}
注入UserMapper
第九步 resources/mapping 下建一个UserMapper.xml
<?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.demo.Mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.example.demo.bean.User">
<result column="id" jdbcType="INTEGER" property="id" />
<result column="age" jdbcType="INTEGER" property="age" />
<result column="name" jdbcType="VARCHAR" property="name" />
</resultMap>
<select id="Sel" resultType="com.example.demo.bean.User">
select * from userinfo where id = #{id}
</select>
</mapper>
mapper namespace="com.example.demo.Mapper.UserMapper是对应的包名.Mapper的接口文件
<select id="Sel" 就是接口里面定义的方法 注意不要写出两个id一样的sql
type="com.example.demo.bean.User"和resultType="com.example.demo.bean.User"要注意返回值类型
第十步 Controller下建一个UserController的java文件写个helloworld
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("getUser/{id}")
public String GetUser(@PathVariable int id) {
return userService.Sel(id).toString();
}
}
简单搞一个通过id输出实体类
然后就能跑了呗 。。 操作不当会出现映射不上 注入失败等原因 自己慢慢找吧。。反正我跑起来了
再附一个项目结构
csdn现在都变成我这种菜鸡发水文的地方了。。。