Spring Boot集成Mybatis

标签: Springboot 分类: Java 创建时间:2019-11-15 06:04:01 更新时间:2024-11-15 10:49:43

用的好好的Hibernate,关键时刻,连不上SqlServer,总是报缺少对象或列名,还没有解决,只能暂时换成MyBatis了。

1.pom.xml添加Mybatis支持

1
2
3
4
5
6
7
8
<!--Mybatis-->
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>

2.application.yml添加支持

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
spring:
datasource:
## default connection pool
hikari:
connection-timeout: 20000
maximum-pool-size: 5
username: \******
password: \*****
url: jdbc:sqlserver://xxxxx;databasename=xxx
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
mybatis:
configuration:
map-underscore-to-camel-case: true
type-aliases-package: com.proheng.gis.Entity
mapper-locations: classpath:mapper/*.xml

3.resources下新建mybatis-config.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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>
<!--设置别名-->
<typeAliases>
<typeAlias alias="Integer" type="java.lang.Integer" />
<typeAlias alias="Long" type="java.lang.Long" />
<typeAlias alias="HashMap" type="java.util.HashMap" />
<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
<typeAlias alias="ArrayList" type="java.util.ArrayList" />
<typeAlias alias="LinkedList" type="java.util.LinkedList" />
</typeAliases>
</configuration>

4.新建实体类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.proheng.gis.Entity;

import javax.persistence.*;

@Entity
@Table(name = "V_client",catalog = "ztzn",schema = "dbo")
public class VClient {

@Id
@GeneratedValue
private int SiteNo=0; //站点编号

public int getSiteNo() {
return SiteNo;
}
}

4.resources文件夹先新建mapper文件夹

在resources文件夹下新建mapper文件夹,然后新建Vclient映射文件Vclient.xml

1
2
3
4
5
6
7
8
9
10
11
<?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">
<!--namespace 指定映射对应的mapper接口类-->
<mapper namespace="com.proheng.gis.mapper.VClientMapper">
<!--插入-->
<select id="searchAll" resultType="com.proheng.gis.Entity.VClient">
select * from v_client;
</select>

</mapper>

5.新建映射

1
2
3
4
5
6
7
8
9
10
package com.proheng.gis.mapper;

import com.proheng.gis.Entity.VClient;

import java.util.List;

public interface VClientMapper {
List<VClient> searchAll();
}

6.在主类上添加MapperScan

@MapperScan 要添加到main类上,添加需要扫描的类,否则,就会找不到映射的bean。

1
2
@SpringBootApplication
@MapperScan("com.proheng.gis.mapper")

6.使用VClientMapper

剩下的可以多添加一层Service层,也可以不添加,根据需要使用VClientMapper就好了。可以直接在collector上注入。

1
2
@Autowired
private VClientMapper vClientMapper;

在idea中还是会报没有找到注入的bean的问题,这个不要紧,不会影响执行的。

7.配置多数据库

8.Mybatis注解

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。