用SpringMVC+ mybatis帮我写一个将图片存在本地文件夹,图片路径存在mysql的项目工具类,
时间: 2024-02-19 19:59:00 浏览: 78
好的,以下是一个简单的工具类实现,使用了SpringMVC+MyBatis框架。
首先,在SpringMVC的配置文件中添加MyBatis的配置:
```
<!-- MyBatis配置 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<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="root" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.mapper" />
</bean>
```
其中,`dataSource`是数据库连接信息,`sqlSessionFactory`是MyBatis的SessionFactory,`sqlSession`是MyBatis的SqlSessionTemplate,`MapperScannerConfigurer`是MyBatis的Mapper扫描器,用于自动扫描Mapper接口并生成实现类。
接着,创建一个图片工具类`ImageUtil`,其中包含两个方法:`saveImage`用于保存图片到本地文件夹并返回图片路径,`saveImagePath`用于将图片路径保存到数据库中。
```
public class ImageUtil {
// 保存图片到本地文件夹并返回图片路径
public static String saveImage(MultipartFile file, String filePath) throws IOException {
File f = new File(filePath);
if (!f.exists()) {
f.mkdirs();
}
String fileName = UUID.randomUUID().toString() + "." + file.getOriginalFilename().split("\\.")[1];
File newFile = new File(filePath + File.separator + fileName);
file.transferTo(newFile);
return newFile.getAbsolutePath();
}
// 将图片路径保存到数据库中
public static void saveImagePath(String imagePath, int id, SqlSession sqlSession) {
ImageMapper imageMapper = sqlSession.getMapper(ImageMapper.class);
imageMapper.saveImagePath(imagePath, id);
}
}
```
其中,`saveImage`方法接收一个`MultipartFile`类型的文件和一个文件夹路径,通过`UUID.randomUUID().toString()`和文件后缀名生成一个新的文件名,将文件保存到指定的文件夹下,并返回保存后的文件路径。`saveImagePath`方法接收一个图片路径、一个id和一个SqlSession对象,通过MyBatis的Mapper将图片路径保存到数据库中。
最后,创建一个Mapper接口`ImageMapper`,用于定义保存图片路径的方法。
```
public interface ImageMapper {
void saveImagePath(@Param("imagePath") String imagePath, @Param("id") int id);
}
```
这个Mapper接口只有一个方法`saveImagePath`,用于将图片路径保存到数据库中。
以上就是将图片存在本地文件夹,图片路径存在MySQL的项目工具类的实现。
阅读全文