首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot-07 整合

SpringBoot-07 整合

作者头像
张小驰出没
发布2021-04-15 15:59:15
发布2021-04-15 15:59:15
32700
代码可运行
举报
运行总次数:0
代码可运行

SpringBoot-07 整合

首先肯定是创建一个项目,前面的都一样,加入的依赖不太一样:

加入这两个,创建就可以。

整合JDBC

1.查看默认数据源

1.1 导入配置

创建一个application.yml,这里添加的数据库是我学习Mybatis使用的数据库,你们也可以自行创建。

代码语言:javascript
代码运行次数:0
运行
复制
spring:
  datasource:
    username: root
    password: 148729
    url: jdbc:mysql://localhost:3306/mybatistest?userUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.jdbc.Driver
1.2 测试默认数据源
代码语言:javascript
代码运行次数:0
运行
复制
@SpringBootTest
class JdbcApplicationTests {

    @Autowired
    DataSource dataSource;
    @Test
    void contextLoads() throws SQLException {
        // 默认数据源
        System.out.println(dataSource.getClass());
    }
}

结果为:com.zaxxer.hikari.HikariDataSource

1.3 数据库连接
代码语言:javascript
代码运行次数:0
运行
复制
@SpringBootTest
class JdbcApplicationTests {

    @Autowired
    DataSource dataSource;
    @Test
    void contextLoads() throws SQLException {
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        connection.close();
    }
}

这时候可能遇到时区错误,可以在url中增加serverTimezone=UTC: url: jdbc:mysql://localhost:3306/mybatistest?serverTimezone=UTC&userUnicode=true&characterEncoding=utf-8

2.jdbcTemplate

我们希望测试数据库操作,传出的是一个字符串,JSON对象即可,所以需要使用**@RestController**

2.1 先导入starter-web依赖

(如果你创建项目的时候,加入了web依赖,可以不用添加)

代码语言:javascript
代码运行次数:0
运行
复制
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
dependency>
2.2 创建Controller类
代码语言:javascript
代码运行次数:0
运行
复制
@RestController
public class JDBCController {

    @Autowired
    JdbcTemplate jdbcTemplate;
    //查询数据库信息
    @RequestMapping("/userlist")
    public List<Map<String,Object>> userList(){
        String sql = "select * from user";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        return maps;
    }
}
2.3 启动,测试

整合Druid

1.导入依赖

代码语言:javascript
代码运行次数:0
运行
复制
<dependency>
    <groupId>com.alibabagroupId>
    <artifactId>druidartifactId>
    <version>1.2.3version>
dependency>

2.配置文件引入

代码语言:javascript
代码运行次数:0
运行
复制
    #druid配置
    #配置初始化大小/最小/最大
    initialSize: 5
    minIdle: 5
    maxActive: 20
    #获取连接等待超时时间
    maxWait: 60000
    #间隔多久进行一次检测,检测需要关闭的空闲连接
    timeBetweenEvictionRunsMillis: 60000
    #一个连接在池中最小生存的时间
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
    poolPreparedStatements: false
    maxPoolPreparedStatementPerConnectionSize: 20
      #监控统计拦截的filters,stat:监控统计;log4j:日志记录;wall:防御sql注入;如果启用log4j记得添加依赖
    filters: stat,wall,log4j
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

3.导入Log4j

代码语言:javascript
代码运行次数:0
运行
复制
<dependency>
    <groupId>log4jgroupId>
    <artifactId>log4jartifactId>
    <version>1.2.17version>
dependency>

4.整合Druid

代码语言:javascript
代码运行次数:0
运行
复制
@Configuration
public class DruidConfig {
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource DruidDataSource(){
        return new DruidDataSource();
    }
}
5.加入后台监控功能
代码语言:javascript
代码运行次数:0
运行
复制
//后台监控功能:web.xml
// 因为SpringBoot 内置了servlet容器,所以没有web.xml  替代方法:ServletRegistrationBean
@Bean
public ServletRegistrationBean a(){
    ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
    // 后台需要有人登录,账号密码配置
    HashMap<String, String> initParameters = new HashMap<>();
    //增加配置   登录key 是固定的 loginUsername   loginPassword
    initParameters.put("loginUsername","admin");
    initParameters.put("loginPassword","123456");
    //允许谁可以访问
    initParameters.put("allow","");
    //禁止谁能访问  initParameters.put("用户名","地址");
    bean.setInitParameters(initParameters);  //设置初始化参数
    return bean;
}
6.加入过滤器
代码语言:javascript
代码运行次数:0
运行
复制
public FilterRegistrationBean webStatFilter(){
    FilterRegistrationBean bean = new FilterRegistrationBean();
    bean.setFilter(new WebStatFilter());
    //可以过滤的请求
    HashMap<String, String> initParameters = new HashMap<>();
    initParameters.put("exclusions","*.js,*.css,/druid/*");
    bean.setInitParameters(initParameters);
    return bean;
}

整合Mybatis

这里我新创建的一个新的SpringBoot项目,这次导入web和上面sql中的那两个依赖。

1.导入依赖

该依赖不是SpringBoot官方,是专门用来整合Mybatis的。

代码语言:javascript
代码运行次数:0
运行
复制
<dependency>
    <groupId>org.mybatis.spring.bootgroupId>
    <artifactId>mybatis-spring-boot-starterartifactId>
    <version>2.1.3version>
dependency>

2.加入配置

代码语言:javascript
代码运行次数:0
运行
复制
spring.datasource.username=root
spring.datasource.password=148729
spring.datasource.url=jdbc:mysql://localhost:3306/mybatistest?serverTime=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

3.创建POJO实体类

代码语言:javascript
代码运行次数:0
运行
复制
public class User {
    private Integer id;
    private String name;
    private String pwd;
    // toString()方法
    // Get/Set方法
    // 有参/无参方法
}

4.创建mapper类

在SpringBoot中,mapper包下只创建Mapper接口即可

代码语言:javascript
代码运行次数:0
运行
复制
// 这个注解表示了这是一个mybatis的mapper  类:Dao
@Mapper
@Repository   //注入到Spring容器中
public interface UserMapper {
    List<User> queryUserList();
    User queryUserById(int id);
    int addUser(User user);
    int updateUser(User user);
    int deleteUser(int id);
}

5.创建mapper.xml

创建路径为:resources/mybatis/mapper

代码语言:javascript
代码运行次数:0
运行
复制
<mapper namespace="com.zc.mapper.UserMapper">
    <select id="queryUserList" resultType="User">
        select * from user;
    select>
    <select id="queryUserById" resultType="User" parameterType="int">
        select * from user where id=#{id}
    select>
    <insert id="addUser" parameterType="User">
        insert into user(id,name,pwd) values (#{id},#{name},#{pwd})
    insert>
    <delete id="deleteUser" parameterType="int">
        delete from user where id = #{id}
    delete>
    <update id="updateUser" parameterType="User">
        update user set name = #{name},pwd=#{pwd} where id = #{id}
    update>

mapper>

6.起别名、注册mapper.xml

如果想要上面语句中的User生效的话,需要进行起别名:

代码语言:javascript
代码运行次数:0
运行
复制
# 整合mybatis
#起别名
mybatis.type-aliases-package=com.zc.pojo  
#注册classpath:mybatis/mapper路径下的所有mapper.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

7.创建Controller类

代码语言:javascript
代码运行次数:0
运行
复制
@RestController
public class UserController {
    @Autowired
    private UserMapper userMapper;
    @RequestMapping("/queryUserList")
    public List<User> queryUserList(){
        List<User> users = userMapper.queryUserList();
        for (User user : users) {
            System.out.println(user);
        }
        return users;
    }
}

8.测试

直接开启启动器,进入网页即可

个人博客为: MoYu’s HomePage MoYu’s Gitee Blog

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringBoot-07 整合
    • 整合JDBC
      • 1.查看默认数据源
      • 2.jdbcTemplate
    • 整合Druid
      • 1.导入依赖
      • 2.配置文件引入
      • 3.导入Log4j
      • 4.整合Druid
    • 整合Mybatis
      • 1.导入依赖
      • 2.加入配置
      • 3.创建POJO实体类
      • 4.创建mapper类
      • 5.创建mapper.xml
      • 6.起别名、注册mapper.xml
      • 7.创建Controller类
      • 8.测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档