关于SpringBoot的增删改查小测试(无注解)

本文详细介绍了如何在SpringBoot项目中整合MyBatis,包括项目搭建、实体类定义、DAO层接口设计、XML映射文件编写及控制器测试。通过具体示例,展示了增删改查操作的实现。

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

1.创建SpringBoot项目

我们以eclipse为例,首先我们要安装Maven

1)安装maven,网上有很多教程大家可以参考这位老哥的教程(https://www.cnblogs.com/kyleinjava/p/9549481.html

安装好之后我们要在eclipse进行一些配置让eclipse使用我们自己刚刚安装的maven,如下所示

2)我们在eclipse中安装springboot插件

输入spring安装他

安装好之后我们就可以开始创建SpringBoot项目啦

先择Spring Starter Project,

在这里我们要选择使用的技术,现在我们选择

创建成功啦,现在我们要在pom.xml引入一下c3p0的依赖

        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>

创建这些包和类

 

我们先来写实体类

在entity里面创建User类并且对里面的属性进行封装

package com.example.demo.entity;

public class User {
	private Integer id;
	private String username;
	private String password;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}

}

 写一个连接数据库的类 SSMConfig 

package com.example.demo.config;

import java.beans.PropertyVetoException;
import java.io.IOException;

import javax.sql.DataSource;

import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import com.mchange.v2.c3p0.ComboPooledDataSource;

@Configuration
//Mapper的扫描路径
@MapperScan("com.example.demo.dao")
public class SSMConfig {
	@Autowired//说明需要bean
	private DataSource dataSource;
	
	
	@Bean(name="dataSource")
	public ComboPooledDataSource createDataSource() throws PropertyVetoException{
		ComboPooledDataSource dataSource = new ComboPooledDataSource();
		
		dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
		dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/goods?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC");
		dataSource.setUser("root");
		dataSource.setPassword("root");
		
		//在关闭连接之后不会自动的Commit
		dataSource.setAutoCommitOnClose(false);
		
		
		return dataSource;
	}
	
	@Bean(name="sqlSessionFactory")
	public SqlSessionFactoryBean creatSqlSessionFactoryBean() throws IOException {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		
		//加载主配置文件mybatis-config.xml
		
		bean.setConfigLocation(new ClassPathResource("mybatis-config.xml"));
		
		PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		//Mapper扫描路径
		//String packageSearchPath=;
		bean.setMapperLocations(resolver.getResources("classpath*:/mapper/**.xml"));
		
		//配置实体的包
		bean.setTypeAliasesPackage("com.example.demo.entity");
		//dataSource
		bean.setDataSource(dataSource);
		//bean.setDataSource(dataSource);
		
		return bean;
	}
	
	
	
	
	
}

 Controller测试类 的填写

package com.example.demo.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.example.demo.dao.UserDao;
import com.example.demo.entity.User;

@Controller
public class TestController {
	@Autowired
	private UserDao userDao;
	
	@RequestMapping("/test")
	public String test() {
		
		/**
		 * 测试查询所有用户
		 */
//		List<User> searchAllUsers = userDao.searchAllUsers();
//		
//		for(User user:searchAllUsers) {
//			System.out.println(user.getId()+","+user.getUsername()+","+user.getPassword());
//		}
		
		
		/**
		 * 测试查询单个用户
		 */
		
//		User user= userDao.searchUserById(22);
//		
//		System.out.println(user.getId()+","+user.getUsername()+","+user.getPassword());
//		
		
		/**
		 * 测试添加单个用户
		 */
//		int a =userDao.addUser1(99, "111", "333");
//
		
		
		
		
//		User user = new User();
//		user.setId(3);
//		user.setUsername("张三");
//		user.setPassword("321");
//		
//		userDao.addUser2(user);
//		
		//System.out.println(a+"..........................");
		
//		User user =userDao.searchUserById(1);
//		
//		user.setUsername("改了");
//		user.setPassword("mimagaile");
//		
//		userDao.updateUser(user);
		
//		
		
		userDao.deleteUser2(99);
		return "hello";
	}
}

 DAo

package com.example.demo.dao;


import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.example.demo.entity.User;

public interface UserDao {


	/**
	 * 1.增
	 */
	public int addUser2(User user);
	
	public int addUser1(int id,String username,String password);
	
	
	/**
	 * 2.删
	 */
	public int deleteUser2(@Param("yang") int id);
	
	public int deleteUser(int id);
	/**
	 * 3.改
	 */
	public int updateUser(User user);
	/**
	 * 4.查
	 *(1).查询所有User
	 *(2).查询单个User
	 */
	public List<User> searchAllUsers();
	
	public User searchUserById(int id);
	
	
}

 数据库的设计

 

 USerMapper.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">
        <!-- namespace:Mapper对应的Dao全路径 -->
<mapper namespace="com.example.demo.dao.UserDao">

	<!-- id: Dao中对应方法名称,resultType:返回类型 -->
	<select id="searchAllUsers" resultType="com.example.demo.entity.User" >
		select * from user
	</select>
	<select id="searchUserById" resultType="com.example.demo.entity.User">
		select * from user where id=#{id}
	</select>
	
	<!-- useGeneratedKeys:如果执行成功返回主键的值parameterType:传入参数的类型 -->
	<insert id="addUser1" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
		insert into user(id,username,password) values(#{id},#{username},#{password})
	</insert>
	<insert id="addUser2" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="com.example.demo.entity.User">
		insert into user values(#{id},#{username},#{password})
	</insert>
	
	<update id="updateUser" parameterType="com.example.demo.entity.User">
		update user set username=#{username},password=#{password} where id=#{id}
	
	</update>	
	
	<delete id="deleteUser">
		delete from user where id=#{id}
	</delete>
	
	
	<delete id="deleteUser2">
		delete from user where id=#{yang}
	</delete>
	
</mapper>


 

 

 

mybatis-config.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

	<settings>
		<!-- 获取主键自增的这个值 -->
		<setting name="useGeneratedKeys" value="true"/>
		
		<!-- 开启驼峰命名的转化 -->
		<setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>

</configuration>

 项目写到这里就结束了

这是一个小demo,下载连接在这里

链接:https://pan.baidu.com/s/1r1h33D-1zOe0OXPCEfMDOA 
提取码:djmr

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值