SSM框架整合--Mybatis

本文介绍了如何将Mybatis与Spring整合,包括创建数据库表、定义实体类、创建Mapper接口和实现类,以及编写SQL语句。在测试中,使用Junit进行增删查改操作,并配置了log4j日志。此外,还展示了Service层接口和服务层实现类的设计,以供业务逻辑调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上文导完包和配置好环境后,首先整合Mybatis

整合Mybatis首先需要一个数据库:
我们来创建一个ssmbuild数据库,并建立book表
在这里插入图片描述
然后要在pojo包下创建一个对应数据库表元素的实体类:
Books.java

package pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {
    private int bookID;
    private String bookName;
    private int bookCounts;
    private String detail;
}

接着要利用Mybatis实现sql语句,要在Mapper包下创建Mapper接口和Mapper实现类:
UserMapper.java

package Mapper;


import pojo.Books;

import java.util.List;

public interface UserMapper {

    //增加书
    void addBook(Books books);
    //删除书

    //更新书

    //查询书
    List<Books> selectBook();
    //查询全部书
}

我们已经在Mapper接口中创建了两个方法–add和select
对应的在Mapper实现类中要重写这两个方法

UserMapperImpl.java

package Mapper;

import org.mybatis.spring.SqlSessionTemplate;
import pojo.Books;

import java.util.List;


/**
 * 原来我们的所有操作都使用sqlSession来执行,现在都使用sqlSessionTemplate
 */

public class UserMapperImpl implements UserMapper {

    private SqlSessionTemplate sqlSessionTemplate;

    public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
        this.sqlSessionTemplate = sqlSessionTemplate;
    }

    @Override
    public void addBook(Books books) {
        UserMapper mapper = sqlSessionTemplate.getMapper(UserMapper.class);
        mapper.addBook(books);
    }

    @Override
    public List<Books> selectBook() {
        UserMapper mapper = sqlSessionTemplate.getMapper(UserMapper.class);
        return mapper.selectBook();
    }
}

接着就需要写SQL语句了

在spring-mybatis.xml中:首先绑定Mapper接口,然后在其中写Mapper接口中对应方法的SQL语句。这里我们方法是addBook和selectBook

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace绑定一个对应的Mapper接口-->


<mapper namespace="Mapper.UserMapper">

    <insert id="addBook" parameterType="pojo.Books">
        insert into ssmbuild.books values(#{bookID},#{bookName},#{bookCounts},#{detail});
    </insert>
    <select id="selectBook" parameterType="pojo.Books" resultType="pojo.Books">
        select * from ssmbuild.books;
    </select>
</mapper>

这样就可以用Mybatis连接数据库了,
开启Junit测试单元并在mybatis-config.xml配置log4j日志:
(配置log4j这一步在上文中已经配置完毕)

<settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
static Logger logger = Logger.getLogger(test.class);
    @Test
    public void addBooks(){
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");
        UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
        userMapper.addBook(new Books(7,"Python",7,"从入门到放弃"));
    }
    @Test
    public void selectBook(){
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");
        UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
        List<Books> books = userMapper.selectBook();
        for (Books book:books) {System.out.println(book);
        }
    }

创建Service层接口,和Dao层的接口一样,因为业务层要调用的方法一样:

package total.Service.pojo.service;

import org.apache.ibatis.annotations.Param;
import total.Service.pojo.pojo.Books;

import java.util.List;

public interface UserService {
//增加书
void addBook(Books books);
//删除书
void deleteBook(@Param("bookID") int id);
//更新书

//查询书
List<Books> selectBook();
//查询全部书
}

然后创建Service层(业务层)实现类:通过Dao层的对象来调用Dao层的方法

package total.Service.pojo.service;

import total.Service.pojo.Mapper.UserMapper;
import total.Service.pojo.pojo.Books;

import java.util.List;

public class UserServlceImpl implements UserService{

private UserMapper userMapper;
public void setUserMapper(UserMapper userMapper){
this.userMapper=userMapper;
}
@Override
public void addBook(Books books) {
userMapper.addBook(books);
}

@Override
public void deleteBook(int id) {
userMapper.deleteBook(id);
}

@Override
public List<Books> selectBook() {
return userMapper.selectBook();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yui方木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值