快速搭建springboot+mybatis+postgresql开发环境

2023-05-16

    这里,利用eclipse或者idea提供的springboot项目创建向导,不用去找依赖。

    普通的eclipse需要安装spring插件。可以直接使用sts版本。全称是Spring Tools Suite。在eclipse下,新建->Spring Starter Project,跟着向导,选择项目位置,填写项目名称。

    下一步,选择Spring Web,MyBatis Framework,PostgreSQL Driver三个依赖即可。

    pom.xml主要内容,其中junit是手动添加:

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.5.6</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.xx</groupId>
	<artifactId>springmybatis</artifactId>
	<version>1.0</version>
	<name>springmybatis</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>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.2.0</version>
		</dependency>

		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		
	</dependencies>

    这里在eclipse下配置文件默认是properties后缀类型,这个没关系。

    application.properties

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://192.168.61.150:5432/webapp?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=postgres
spring.datasource.password=postgres
logging.level.com.xx.mybatis.dao=Debug

    接着,添加实体类与dao接口。

        UserBean.java

package com.xx.mybatis.domain;

public class UserBean {
	private int id;
	private String name ;
	private String mobile ;
	
	public void setId(int id) {
		this.id = id;
	}
	
	public int getId() {
		return id;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	
	@Override
	public String toString() {
		return "user[id="+id+",name="+name+",mobile="+mobile+"]";
	}
}

    dao接口:

package com.xx.mybatis.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import com.xx.mybatis.domain.UserBean;

@Mapper
public interface UserMapper {
	
	@Select(value = "select * from xx_user where id = #{id}")
	public UserBean findById(int id);
}

    定义一个service接口:

package com.xx.mybatis.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.xx.mybatis.dao.UserMapper;
import com.xx.mybatis.domain.UserBean;

@Service
public class UserService {
	
	@Autowired
	private UserMapper userMapper;
	
	public UserBean findById(int id) {
		return userMapper.findById(id);
	}
}

编写启动类,这个少不了,添加一个MapperScan的注解,指定Mapper的位置:

package com.xx.mybatis;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan(basePackages = "com.xx.mybatis.dao")
public class SpringmybatisApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringmybatisApplication.class, args);
	}

}

    编写单元测试:

package com.xx.mybatis;
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 com.xx.mybatis.domain.UserBean;
import com.xx.mybatis.service.UserService;

import junit.framework.Assert;

@SpringBootTest
@RunWith(SpringRunner.class)
public class SpringmybatisApplicationTests {
	
	@Autowired
	private UserService userService;

	@Test
	public void contextLoads() {
		UserBean user = userService.findById(1);
		
		Assert.assertEquals("feiy", user.getName());
	}

}

    准备数据:

 

    如果数据库准备了,这时候直接运行单元测试,前面配置文件开启了sql日志打印,这里如果运行单元测试,会看到查询时的sql。

    这里,使用了mybatis注解,sql语句直接写在方法体的注解中,少了UserMapper.xml配置文件的编写,以及配置文件位置指定,很方便。

    这个测试,没有使用阿里的druid数据源,本身默认的hikaricp数据源就是性能很好的,而且远胜于druid数据源,所以没有额外引入druid数据源依赖(pom.xml少了一个配置),所以配置文件中(application.properties)也不需要指定datasource。更加简化了配置,只配置了数据库连接信息。

     整个测试,没有结合springboot-web,没有编写controller,这里主要是为了突出springboot+mybatis+postgresql整合,至于web接口,如果service层都调试通过,web层几乎是套用,难度不大。

    整篇文章是一个入门级的整合,对于springboot开发来说,我们自然希望我们的工程建的又快又简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速搭建springboot+mybatis+postgresql开发环境 的相关文章

  • c语言自定义tcp协议实现socket通信(windows版本)

    前面一篇博客介绍了mac linux下通过C语言自定义协议实现socket通信的示例 xff0c 因为大部分api与windows还有很多区别 xff0c 这里就特意把windows下的tcp通信实例给介绍一下 无论是linux xff0c
  • macos升级体验

    周末在家里把macos从10 11 6版本升到了10 14 6版本 xff0c 其中的过程基本大同小异 后面想继续升级 xff0c 发现遇到了问题 网上有的说需要一步一步来升级 xff0c 如果是10 11 xff0c 需要先升级到10 1
  • xcode开发c语言开启多target

    xcode开发c语言 xff0c 在选择project template时选择command line tool xff0c 后面填入product name xff0c 最后选择存储位置就可以了 但是一般而言c语言项目只有一个main函数
  • vaex 将csv转换为hdf5

    I have a massive CSV file which I can not fit all into memory at one time How do I convert it to HDF5 We are working to
  • ubuntu1804源码编译jdk8

    这里纯粹自己弄着玩 xff0c 因为以前没有成功过 xff0c 这里记录一下 xff0c 就是让遇到问题的人可以规避问题 xff0c 快速编译自己的jdk 相信很多学java的人都看过或者了解过一本书 深入理解java虚拟机 xff0c 里
  • vmware安装minix并开启x11

    最近突然想弄一下minix这个老牌的系统 vmware安装minix3虚拟机 xff0c 其实很简单的 xff1a 1 新建虚拟机 xff0c 选择经典 2 选择客户机操作系统 xff1a 其他 xff0c 版本 xff1a 其他 64位
  • minix3通过pkgin_cd安装二进制包

    在安装完minix3虚拟机之后 xff0c 如果要进行其他工具的安装 xff0c 默认需要借助pkgin xff0c 这个需要先更新 pkgin up xff0c 然后安装各种可以被下载的包 本人试了几次之后 xff0c 发现pkgin i
  • clang: error: unable to execute command: Executable “ld“ doesn‘t exist!

    如题所示 xff0c 我在minix3中直接安装了clang xff0c 然后使用如下命令编译c程序报错 clang hello c o hello clang error unable to execute command Executa
  • c语言结构体内存对齐问题

    c语言中结构体使用是非常广泛的 xff0c 但是结构体有一个问题 xff0c 就是如果开头的字段属性是字符类型 char xff0c 紧跟着的是其他类型 xff0c 比如整型 长整型 双精度 浮点型 xff0c 这时候结构体的大小会发生改变
  • java通过jni调用native method

    jdk中规定了native method xff0c 每一个native method背后对应有一个动态链接库来支持它 xff0c 在windows系统上 xff0c 就是dll后缀的文件 native method是需要通过c c 43
  • minix3下安装libevent

    libevent是一个c语言编写的事件框架 xff0c 支持异步IO 定时器 信号事件 它支持跨平台 xff0c 大部分都是在linux下安装并使用 xff0c 今天介绍在unix系统minix3上的安装 minix3上编译环境是clang
  • win10启动命令行之前执行命令

    这个问题的引出 xff0c 是我在win10上设置cmd命令行字体的问题 xff0c 我之前在win7上设置过cmd终端命令行字体 xff0c 通过更改注册表 xff0c 然后设置想要的字体 xff0c 就可以达到效果 xff0c 可是在w
  • Dynamic Linking Error: Win32 Error 126问题排查

    如题所示 xff0c 这个问题是我在electron项目中使用ffi调用动态链接库出现的 xff0c 本机运行都好好的 xff0c 打包构建然后放到别的机器上运行出错 这个问题一度也让我很迷茫 xff0c 如果是路径导致的这个问题 xff0
  • npm安装windows-build-tools一直卡在successfully installed python2.7不动

    以前安装过windows build tools xff0c 很顺利的 xff0c 没想到最近在别的机器上安装 xff0c 出现了卡住不动的情况 xff0c 就是如题的问题 其实这个问题出现在执行vs BuildTools exe安装问题上
  • C++学习笔记一 —— 两个类文件互相引用的处理情况

    先记录一些零碎的知识点 xff1a 1 一个类可以被声明多次 xff0c 但只能定义一次 xff0c 也就是可以 class B class B class B class B 这样子 2 一个类 C 的声明中 xff08 函数只声明还没定
  • koa设置静态资源以加载html页面

    koa是express之后又一个node框架 xff0c 它可以很方便的构建http服务 一般 xff0c 我们看到的koa是配合koa router路由来做服务端请求控制 xff0c 大部分是要么返回string xff0c 要么返回js
  • springboot实现jsonp

    jsonp是ajax跨域解决方案的一种办法 xff0c 就是借助标签 lt script gt lt script gt 可以实现不同域之间数据请求的一种方式 xff0c 类似iframe xff0c 不受跨域限制 xff0c 它请求返回之
  • koa利用koa-views通过路由返回html页面

    前面一篇博客介绍了koa借助koa static依赖可以实现以静态资源的形式加载html xff0c 但是没有路由功能 xff0c 一般而言 xff0c 前后端分离之后 xff0c 路由控制是由前端控制 xff0c 也有一些不分离的项目 x
  • koa解决跨域问题

    koa作为一个node http服务框架 xff0c 它解决跨域问题 xff0c 跟其他框架跨域类似 xff0c 可以通过自定义中间件的方式对请求做处理 xff0c 也可以通过使用封装好的 64 koa cors依赖 xff0c 两行代码搞
  • nginx解决跨域问题

    跨域问题 xff0c 是因为浏览器同源策略 xff0c 页面从一个域发起另一个域的异步ajax请求时 xff0c 不被认可导致 如果我们的请求在一个域里面 xff0c 那么浏览器就会认为是安全的 xff0c 就不会造成跨域 xff0c 而n

随机推荐

  • cookie属性max-age与expires同时存在时谁会生效

    我以前面试前端的时候 xff0c 面试官问过这个问题 xff0c 这是一个比较刁钻的问题 xff0c 好像很难选择 max age表示最大生命周期 xff0c expires表示过期时间 xff0c cookie使用其中任何一个 xff0c
  • 带cookie的异步ajax跨域请求问题

    ajax跨域携带cookie需要增加一个参数 xff0c xhrFields withCredentials true xff0c 而且这个时候的cookie是种在服务端接口域里面的 xff0c 而不是页面所在的域 服务端解决跨域问题的时候
  • sqlmap工具与sql注入漏洞测试

    sql注入是我们在开发与面试中经常听到的一个词语 xff0c 它利用sql语句本身执行的特点 xff0c 加入一些特定的语句拼接 xff0c 骗过sql编译 xff0c 最后执行 xff0c 结果就出现意想不到的情况 我在之前的工作中并不了
  • Javascript保留两位小数

    javascript语言 xff0c 因为是弱类型语言 xff0c 没有java那么多类型 xff0c 所以在处理浮点数保留两位小数上 xff0c 没有那么多格式化办法 javascript语言中字符串和整数 xff0c 浮点数是有区别的
  • linux下strace命令跟踪java进程

    strace命令的使用 xff0c 是看了马士兵老师讲的netty底层原理课程 xff0c 里面举了一个例子 xff0c 使用java程序编写一个简单的socket服务器 xff0c 然后等待客户端连接 本身 xff0c 这个程序很简单 x
  • Deepin 下安装 Vmware 无法联网的问题

    问题描述 1 Could not connect 39 Ethernet0 39 to virtual network 39 dev vmnet0 39 解决办法 使用sudo vmware networks start查看是否能够启动网络
  • Mac下使用虚拟专用网络

    虚拟专用网络 xff0c 简称vpn xff0c 目前还是有很多地方有使用到的 xff0c 除了越狱 xff0c 很多公司也会给员工开通虚拟专用网的账号 xff0c 这样 xff0c 员工即使在家里也可以方便的与公司内网进行联通 xff0c
  • Mac下远程连接windows

    如题 xff0c 如果在windows系统下 xff0c 一台机器A如果开启了容许远程连接 xff0c 那么可以直接通过另一台机器B的远程桌面连接客户端 xff0c 输入主机地址 xff0c 然后加上用户名和密码 xff0c 就可以登入机器
  • 索引失效问题整理

    在面试的时候 xff0c 数据库方面的问题对于开发人员来说 xff0c 是绕不过的一个点 xff0c 而数据库方面 xff0c 很少直接面试SQL怎么写 xff0c 而是问效率相关的问题 xff0c 索引是提高查询效率的一种手段 xff0c
  • geoserver配合openlayers框架加载地图

    geoserver地图服务器如果搭建成功 xff0c 那么会有很多图层示例 这些图层可以用作练手示例 在实际工作中 xff0c 可能需要我们自己设计地图 xff0c 自己发布 xff0c 然后使用 这里以上一篇最后发布的中国地图为例 xff
  • Java操作mysql插入记录带时间戳时差问题

    如题所示 xff0c 我们在做mybatis相关项目的时候 xff0c 会用到mysql xff0c 如今更多的是直接使用springboot 43 mybatis组合 这样 xff0c 在配置数据源的时候 xff0c 会有这样的配置 xf
  • ArcGis导入经纬度坐标然后导出shp文件

    如题所示 xff0c 一般使用ArcGis制作shp文件 xff0c 需要数据 xff0c 这里直接利用经纬度坐标即可 1 获取经纬度数据 经纬度坐标从哪里获取 xff0c 这里推荐一个方法 xff1a 使用一个html页面 xff0c 配
  • win10安装ceres环境

    ceres是一个开源的c 43 43 库 xff0c 在windows上安装有点复杂 xff0c 它依赖其他三个库 Eigen gflags glog 好在这些依赖都可以通过源码安装 在windows上进行源码编译安装 xff0c 需要对应
  • 使用ceres库将经纬度坐标GCJ02到WGS84精确转换

    在之前的一篇博客中 xff0c 介绍了经纬度坐标系的关系 xff0c WGS84是世界大地坐标系 xff0c 属于原始坐标系 xff0c 在商用中 xff0c 需要通过火星加密算法将经纬度做转换 xff0c 转换之后的坐标 xff0c 称为
  • 百度地图api调用出现“APP Referer校验失败“错误

    如题所示 xff0c 在使用百度地图API的时候 xff0c 出现App Referer校验失败 这个是因为百度地图安全设置导致 xff0c 解决办法就是进入百度地图开放平台 xff0c 控制台下 xff0c 切换到 xff0c 应用管理
  • postgresql与postgis结合示例

    postgresql支持空间数据存储 postgis是postgresql的一个扩展 与postgresql配合使用 xff0c 需要对应的版本 如果是windows上安装 xff0c 可以参考这里选择对应的postgis版本 如果不安装p
  • vue3 语法糖获取axios返回值,vue3语法和vue2语法区别

    typescript怎么定义全局的函数 第一步 xff0c 双击打开HBuilderX编辑工具 xff0c 新建TypeScript文件并定义类Apple xff0c 定义三个变量a b c xff0c a是具体的数据类型 xff0c 而b
  • 蓝桥杯单片机开发板-数码管显示

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • postgresql导入shp地理文件并用uDig连接postgresql显示地图信息

    postgresql与postgis结合 xff0c 可以很好的支持空间数据库 shp文件可以通过postgis插件安装之后的工具 xff1a PostGIS Boundle 3 for PostgreSQL X64 9 6 Shapefi
  • 快速搭建springboot+mybatis+postgresql开发环境

    这里 xff0c 利用eclipse或者idea提供的springboot项目创建向导 xff0c 不用去找依赖 普通的eclipse需要安装spring插件 可以直接使用sts版本 全称是Spring Tools Suite 在eclip