怎么用JAVA向sqlserver写入image类型,jdbctemplate获取连接方法

sqlserver中的image类型是以二进制形式存储的,之前在网上找了很多方法试着存入,都以失败告终,在解决这个问题后,将方法分享,记录下来

try {
    Connection conn = DriverManager.getConnection("数据库连接字符串","用户名","用户密码");
    //jdbctemplate获取连接方法
    //Connection conn = jdbcTemplate.getDataSource().getConnection();
    String sql = "insert into [table](id,name,img) values(0,?,?)";
    PreparedStatement ps = conn.prepareStatement("sql语句");
    File file = new File("文件地址");//将要存入数据库的文件
    InputStream is = new FileInputStream(file);
    ps.setString(1,file.getName());
    ps.setBinaryStream(2,is,file.length());//替换sql中的"?",第一个参数代表要替换SQL中第几个参数
    ps.execute();//执行SQL
    is.close();
    conn.close();//关闭连接
} catch (Exception throwables) {
    throwables.printStackTrace();
}

 数据库连接一定要关闭,不然重复调用接口时会出现连接超时的异常

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Spring Boot 中,可以使用 Spring JDBC 提供的 JdbcTemplate 简化 JDBC 操作。下面是一个示例代码: 1. 添加依赖 在 pom.xml 文件中添加如下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>9.4.0.jre11</version> </dependency> ``` 2. 配置数据库连接 在 application.yml 文件中添加如下配置: ```yaml spring: datasource: url: jdbc:sqlserver://localhost:1433;databaseName=mydatabase username: username password: password ``` 根据实际情况修改 url、username 和 password。 3. 编写代码 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import java.io.FileOutputStream; import java.io.InputStream; @Service public class ImageService { @Autowired private JdbcTemplate jdbcTemplate; public void saveImage(int id, String filename) { String sql = "SELECT image_column FROM mytable WHERE id = ?"; jdbcTemplate.query(sql, new Object[]{id}, rs -> { if (rs.next()) { InputStream is = rs.getBinaryStream("image_column"); FileOutputStream fos = new FileOutputStream(filename); byte[] buffer = new byte[1024]; int length; while ((length = is.read(buffer)) != -1) { fos.write(buffer, 0, length); } fos.close(); is.close(); } }); } } ``` 在该示例代码中,使用了 JdbcTemplate 的 query 方法执行查询操作,使用 Lambda 表达式处理查询结果。其中,id 是图片的唯一标识符,filename 是生成的图片文件名,mytable 是存储图片的表名,image_column 是存储图片的列名。在实际使用时需要替换成相应的表名、列名和标识符。 4. 调用方法 在需要使用该方法的地方注入 ImageService,并调用 saveImage 方法即可。 ```java @Autowired private ImageService imageService; public void test() { imageService.saveImage(1, "image.jpg"); } ``` 以上就是使用 Spring Boot 读取 SQL Server 图片数据生成图片文件的完整流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值