使用SSM整合实现增删改查

本文详细介绍了如何使用Spring、SpringMVC和MyBatis(SSM)进行整合,实现完整的增删改查功能。从创建web模块、引入依赖开始,逐步讲解了创建数据表、配置web.xml、SpringMVC和Spring配置文件,以及搭建MyBatis环境,创建service层、mapper接口和映射文件等步骤。最后,提到了页面和数据库的相关配置,包括控制器、数据访问层、实体类和业务逻辑层的组织结构。
摘要由CSDN通过智能技术生成

SSM整合准备工作;
1、创建web模块,引入依赖;
2、创建数据表;
3、创建web.xml;
4、创建SpringMVC配置文件。

5、创建Spring的配置文件,配置扫描组件、配置数据源、配置事务管理器、配置开启事务注解;
6、创建service层,包括service接口和实现类;
7、搭建MyBatis环境,创建MyBatis核心配置文件,创建mapper接口,创建映射文件;
8、Spring整合MyBatis,在Spring的配置文件中,配置SqlSessionFactoryBean。

Spring整合MyBatis
1、搭建MyBatis环境,创建核心配置文件,创建mapper,映射文件;
2、在Spring配置文件中,添加两个配置,配置SqlSessionFactoryBean,配置扫描mapper接口MapperScannerConfigurer。

配置SqlSessionFactoryBean,可以从Spring IOC容器获取SqlSessionFactory对象
配置扫描mapper接口,将指定路径下所有接口,通过SqlSession对象创建对应的代理实现类对象,并交给Spring IOC容器管理。
就可以在service层,直接对依赖的mapper接口类型的对象进行自动装配。

引入依赖

<properties>
        <!--spring版本-->
        <spring.version>5.3.1</spring.version>
    </properties>

 <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--springmvc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--事务管理依赖的jar-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- Mybatis核心 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <!--mybatis和spring的整合包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.6</version>
        </dependency>
        <!-- 连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.9</version>
        </dependency>
        <!-- junit测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- MySQL驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>
        <!-- log4j日志 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
        <!--分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.2.0</version>
        </dependency>
        <!-- 日志 Thymeleaf依赖slf4j日志,slf4j日志的具体实现logback依赖的jar -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- ServletAPI -->
        <!--前端控制器DispatcherServlet间接实现了HttpServlet所依赖的jar-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <!--json依赖的jar-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.12.1</version>
        </dependency>
        <!--文件上传-->
        <depend
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SSMSpring+SpringMVC+MyBatis的缩写,它们分别是流行的Java框架,可以协同作用来实现快速、高效的Web开发。 下面是一个简单的示例,演示如何利用SSM框架来实现增删改查操作: 1. 配置数据源和MyBatis 在Spring的配置文件中,我们需要配置数据源和MyBatis的相关信息。以下是一个示例: ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="password"/> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath*:mapper/*.xml"/> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper"/> </bean> ``` 2. 创建实体类和Mapper接口 创建一个实体类,它对应着数据库中的一张表: ```java public class User { private Long id; private String name; private Integer age; // 省略getter和setter方法 } ``` 接着,创建一个Mapper接口,定义对应的增删改查方法: ```java public interface UserMapper { User selectById(Long id); List<User> selectAll(); void insert(User user); void update(User user); void delete(Long id); } ``` 3. 创建Mapper映射文件 在src/main/resources/mapper目录下创建UserMapper.xml文件,定义SQL语句: ```xml <mapper namespace="com.example.mapper.UserMapper"> <select id="selectById" parameterType="java.lang.Long" resultType="com.example.domain.User"> select * from user where id = #{id} </select> <select id="selectAll" resultType="com.example.domain.User"> select * from user </select> <insert id="insert" parameterType="com.example.domain.User"> insert into user(name, age) values(#{name}, #{age}) </insert> <update id="update" parameterType="com.example.domain.User"> update user set name = #{name}, age = #{age} where id = #{id} </update> <delete id="delete" parameterType="java.lang.Long"> delete from user where id = #{id} </delete> </mapper> ``` 4. 创建Service层 创建一个UserService接口,定义对应的增删改查方法: ```java public interface UserService { User selectById(Long id); List<User> selectAll(); void insert(User user); void update(User user); void delete(Long id); } ``` 创建一个UserServiceImpl类,实现UserService接口: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User selectById(Long id) { return userMapper.selectById(id); } @Override public List<User> selectAll() { return userMapper.selectAll(); } @Override public void insert(User user) { userMapper.insert(user); } @Override public void update(User user) { userMapper.update(user); } @Override public void delete(Long id) { userMapper.delete(id); } } ``` 5. 创建Controller层 创建一个UserController类,处理用户的HTTP请求: ```java @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/{id}") @ResponseBody public User selectById(@PathVariable("id") Long id) { return userService.selectById(id); } @GetMapping("") @ResponseBody public List<User> selectAll() { return userService.selectAll(); } @PostMapping("") @ResponseBody public void insert(@RequestBody User user) { userService.insert(user); } @PutMapping("") @ResponseBody public void update(@RequestBody User user) { userService.update(user); } @DeleteMapping("/{id}") @ResponseBody public void delete(@PathVariable("id") Long id) { userService.delete(id); } } ``` 6. 运行程序 现在,我们可以启动程序,访问http://localhost:8080/user,来获取所有用户的信息;或者访问http://localhost:8080/user/1,来获取ID为1的用户的信息。 当我们使用POST、PUT、DELETE请求时,需要在请求头中添加Content-Type: application/json,以告诉服务器请求数据的格式为JSON。同时,请求体需要传入JSON格式的数据,例如: ```json { "name": "Tom", "age": 20 } ``` 这样就可以实现增删改查功能了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

kongbaidaima

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

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

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

打赏作者

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

抵扣说明:

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

余额充值