java怎样将读取数据写入数据库

java怎样将读取数据写入数据库,第1张

就要链接数据库,可以通过JDBC链接。

首先,在连接数据库之前必须保证SQL Server 2012是采用SQL Server身份验证方式而不是windows身份验证方式,开始如下配置:

一、因为SQL Server 2012装好后,默认协议是没有开启的,所以要打开SQL Server配置管理器中开启。

1、安装好SQL Server 2012后,运行 开始 → 所有程序 → Microsoft SQL Server 2012 → 配置工具 →SQL Server配置管理器

2、在左边栏找到 SQL Server网络配置选项,点开它的小箭头,会看到“【你的数据库名】的协议” (图中是ERIC2012的协议),选中它,看右边栏。

(1)如果Named Pipes 未启用,则右键→启用

(2)右键单击 TCP/IP,选择 启用

(3)双击TCP/IP(右键→属性),在d出的窗口中选择 “IP地址” 选项卡,将IP1和IP10的【IP地址】设为127.0.0.1,并将所有【IPx】的【已启用】设为是。接着,拖动下拉条到最下方,将 IPAll 中的【TCP端口】设成 【1433】,其余不变。

3、重新启动计算机。

4、接下来使用telnet命令测试1433端口是否打开。首先要保证telnet服务开启。

5、完成上一步后。开始菜单 → 运行cmd → 输入:telnet 127.0.0.1 1433,(注意telnet与127之间有空格,1与1433之间有空格)。

6、若提示“不能打开到主机的连接,在端口 1433: 连接失败”,则说明1433端口没有打开,需要重新进行以上配置。

需要拼接字符串, 因为id和student是字符串, 在SQL里需要加单引号: StringBuilder builder = new StringBuilder()

builder.append("insert into student values")

builder.append("('")

builder.append(id)

builder.append("','")

builder.append(password)

builder.append("')")

String st = builder.toString()

或者使用setString的方式:

Connection conn = DriverManager.getConnection(url)

PreparedStatement ps = conn.prepareStatement("insert into student values (?, ?)")

pstmt.setString(1, id)             // 设置第1个参数的值为字符串

pstmt.setString(2, password)    // 设置第2个参数的值为字符串

pstmt.execute()

首先创建一个空 Blob/Clob 字段,再从这个空 Blob/Clob字段获取游标,例如下面的代码:

PreparedStatement ps = conn.prepareStatement( " insert into PICTURE(image,resume) values(?,?) " )

// 通过oralce.sql.BLOB/CLOB.empty_lob()构造空Blob/Clob对象

ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob())

ps.setClob( 2 ,oracle.sql.CLOB.empty_lob())

ps.excuteUpdate()

ps.close()

// 再次对读出Blob/Clob句柄

ps = conn.prepareStatement( " select image,resume from PICTURE where id=? for update " )

ps.setInt( 1 , 100 )

ResultSet rs = ps.executeQuery()

rs.next()

oracle.sql.BLOB imgBlob = (oracle.sql.BLOB)rs.getBlob( 1 )

oracle.sql.CLOB resClob = (oracle.sql.CLOB)rs.getClob( 2 )

// 将二进制数据写入Blob

FileInputStream inStream = new FileInputStream( " c://image.jpg " )

OutputStream outStream = imgBlob.getBinaryOutputStream()

byte [] buf = new byte [ 10240 ]

int len

while (len = inStream.read(buf) >0 ) {

outStream.write(buf, 0 ,len)

}

inStream.close()

outStream.cloese()

// 将字符串写入Clob

resClob.putString( 1 , " this is a clob " )

// 再将Blob/Clob字段更新到数据库

ps = conn.prepareStatement( " update PICTURE set image=? and resume=? where id=? " )

ps.setBlob( 1 ,imgBlob)

ps.setClob( 2 ,resClob)

ps.setInt( 3 , 100 )

ps.executeUpdate()

ps.close()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9969101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存