Spring Mybatis连接pgsql配置步骤

一、实现功能

通过Mybatis实现快速访问后端pgsql、mysql等数据库。

二、具体步骤

1.修改pom.xml,添加mybatis相关依赖

<dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>1.3.2</version>
</dependency>
<dependency>
   <groupId>org.postgresql</groupId>
   <artifactId>postgresql</artifactId>
</dependency>

2.修改application.yml,修改数据库连接信息

spring:
  application:
    name: spring-boot-tutorial
  datasource:
    driverClassName: org.postgresql.Driver
    url: jdbc:postgresql://127.0.0.1:5432/tvseries?stringtype=unspecified&ApplicationName=tutorial
    username: postgres
    password: 123456
  jackson:
    serialization:
      write-dates-as-timestamps: true  #使用数值timestamp表示日期

mybatis.configuration.mapUnderscoreToCamelCase: true

备注:
(1)配置url,username和password三个参数,依据自己pgsql的环境
(2)mybatis.configuration.mapUnderscoreToCamelCase:是否采用驼峰命名法的转换


3.修改启动类,增加@MapperScan("cn.devmgr.tutorial.dao")注解

备注:@MapperScan("cn.devmgr.tutorial.dao")中cn.devmgr.tutorial.dao是数据访问层的类。

4.添加Mybatis Mapping接口类

(1)接口:TvSeriesDao.java

package cn.devmgr.tutorial.dao;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import cn.devmgr.tutorial.pojo.TvSeries;

public interface TvSeriesDao {
    
    @Select("select * from tv_series where id=#{id}")
    public TvSeries getOneById(int id);
    
    @Select("select * from tv_series where status=0")
    public List<TvSeries> getAll();
    
    public int update(TvSeries tvSeries);
    public int insert(TvSeries tvSeries);
    
    @Delete("delete from tv_series where id=#{id}")
    public int delete(int id);
    
    @Update("update tv_series set status=-1, reason=#{reason} where id=#{id}")
    public int logicDelete(int id, String reason);
}

(2)接口:TvCharacterDao.java

package cn.devmgr.tutorial.dao;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import cn.devmgr.tutorial.pojo.TvCharacter;

@Repository
public interface TvCharacterDao {
    
    @Select("select * from tv_character where id=#{id}")
    public TvCharacter getOneById(int id);
    
    @Select("select * from tv_character where tv_series_id=#{tvSeriesId}")
    public List<TvCharacter> getAllByTvSeriesId(int tvSeriesId);
    
    public int update(TvCharacter tvCharacter);
    public int insert(TvCharacter tvCharacter);
    
    @Delete("delete from tv_character where id=#{id}")
    public int delete(int id);
}

5.添加Mapping对应的XML

针对复杂的sql,不方便直接在接口类实现的,通常可以在xml中实现

(1)TvSeriesDao.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="cn.devmgr.tutorial.dao.TvSeriesDao" >
  
  <insert id="insert" parameterType="cn.devmgr.tutorial.pojo.TvSeries" 
         useGeneratedKeys="true" keyProperty="id">
    insert into tv_series (name, season_count, origin_release )
          values (#{name}, #{seasonCount}, #{originRelease} )
  </insert>
  
  <update id="update" parameterType="cn.devmgr.tutorial.pojo.TvSeries">
    update tv_series set name=#{name}, season_count=#{seasonCount}, origin_release=#{originRelease} where id=#{id}
  </update>
  
</mapper>

(2)TvCharacterDao.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="cn.devmgr.tutorial.dao.TvCharacterDao" >
  
  <insert id="insert" parameterType="cn.devmgr.tutorial.pojo.TvCharacter" 
         useGeneratedKeys="true" keyProperty="id">
    insert into tv_character (name, tv_series_id, photo )
          values (#{name}, #{tvSeriesId}, #{photo} )
  </insert>
  
  <update id="update" parameterType="cn.devmgr.tutorial.pojo.TvCharacter">
    update tv_character set name=#{name}, tv_series_id=#{tvseriesid}, photo=#{photo} where id=#{id}
  </update>
  
</mapper>

备注:

(1)<mapper namespace="cn.devmgr.tutorial.dao.TvSeriesDao" >:namespace是唯一标识,指向对应的Dao接口类


(2)<insert id="insert" parameterType="cn.devmgr.tutorial.pojo.TvSeries" useGeneratedKeys="true" keyProperty="id"> ,其中,id需要和程序中insert方法名称一致,parameterType是参数类。


(3)xml所在包名,一定要和其对应的Dao层一致(如下图1和2要一样的包名,否则会报错)

三、参考

1.源码参考:
https://github.com/gexiangdong/tutorial/tree/master/section-02

2.博客
https://blog.csdn.net/sundacheng1989/article/details/81630370

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的内容,配置Mybatis连接pgsql数据库的步骤如下: 1. 在项目的pom.xml文件中添加Mybatispgsql的相关依赖: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> </dependency> ``` 2. 在application.yml或application.properties配置文件中修改数据库连接信息: ```yaml spring: datasource: driverClassName: org.postgresql.Driver url: jdbc:postgresql://127.0.0.1:5432/your_database_name username: your_username password: your_password ``` 3. 如果需要使用驼峰命名法的转换,可以在配置文件中添加以下配置: ```yaml mybatis: configuration: mapUnderscoreToCamelCase: true ``` 4. 在启动类上添加@MapperScan注解,指定Mybatis的Mapper接口所在的包路径: ```java @MapperScan("your.mapper.package") ``` 请根据你的具体情况修改上述配置中的数据库连接信息和包路径。 #### 引用[.reference_title] - *1* *3* [Spring Mybatis连接pgsql配置步骤](https://blog.csdn.net/u010886217/article/details/102996094)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [springboot(基本配置)+mybatis -》pgsql-》 excel](https://blog.csdn.net/HuangMingJun95/article/details/123403525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值