前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis学习及上传git

mybatis学习及上传git

作者头像
用户8447427
发布2022-08-18 16:28:49
2620
发布2022-08-18 16:28:49
举报
文章被收录于专栏:userlyz学习记录

database下的pom.xml添加

代码语言:javascript
复制
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.9</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.7</version>
</dependency>
###########################################
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

中间可能的错误

1、Mapper.xml文件并没有在target/classes/com/spring/www/DAO下

那就是在第一步中的**##后边的内容没有粘贴,导致找不到配置文件**

2、在Mapper.xml文件中mapper的namespace位置并没有到位

代码语言:javascript
复制
mapper namespace="com.spring.www.DAO.BookDAO">

3、在有返回值的情况下要使用

代码语言:javascript
复制
<select id="queryAll" resultType="Book">

动态sql的生成

if

代码语言:javascript
复制
<select id="queryAllByIf" resultType="Book" parameterType="String">
	select * from book where true
    <if test="Bname!=null and Bname!=''">
    	and Bname like concat('%',#{name},'%')
    </if>
</select>

如果满足if条件那就将if后边sql语句进行拼接上去生成的sql语句是

代码语言:javascript
复制
Preparing: select * from book where true and Bname like concat('%',?,'%')

注意where之后要要使用一个真值

foreach

适用于传入的参数是一个列表,用于多个值的筛选

代码语言:javascript
复制
<select id="querryAllByforeach" parameterType="List" resultType="Book">
	select * from book where Bisdn in
    <foreach item="item" index="index" collection="list" open="(" separator=","close=")">
    	 #{item}
    </foreach>
</select>

拼接的sql语句是

代码语言:javascript
复制
==> Preparing: select * from book where Bisdn in ( ? , ? )
==> Parameters: 001(String), 002(String)

bind元素

进行模糊查询

代码语言:javascript
复制
<select id="querryAllByBind" parameterType="Book" resultType="Book">
	<bind name="paran_name" value="'%'+Bname+'%'"/>
    	select * from book where Bname like #{paran_name}
</select>

拼接的sql语句是

代码语言:javascript
复制
select * from book where Bname like ?

下面就是代码展示

完整展示

链接:https://pan.baidu.com/s/1ReDMcpGz6WcMM0hq5nxK0Q 提取码:qwer

事务处理

database-context.xml

代码语言:javascript
复制
<!--配置事务管理器-->
<bean id="transactionManager"
      class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
      p:dataSource-ref="dataSource"/>

在SaleService中的OnSale前添加注释@Transactional

添加测试类

TransactionTest

代码语言:javascript
复制
import com.spring.www.Business.SaleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests;
import org.testng.annotations.Test;

@ContextConfiguration("classpath*:database-context.xml")
public class TransactionTest extends AbstractTransactionalTestNGSpringContextTests {
    @Autowired
    SaleService service;
    @Test
    public void transTest(){
        service.onSale(0.5f);
    }
}

这样是不能改变数据库中的值的。这样主要是为了避免”脏数据“影响其他业务

要是就是想看运行的结果,那就要在测试类中添加@Rollback(value = false),这样就能直观的看到测试的结果了

提交远端仓库

创建公开的代码仓库

添加git

在上传项目的问价夹下

代码语言:javascript
复制
bushgit init
 git remote add origin 远端仓库地址

提交目录

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 动态sql的生成
    • if
      • foreach
        • bind元素
        • 下面就是代码展示
          • 完整展示
          • 事务处理
          • 提交远端仓库
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档