首先,在连接数据库之前必须保证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()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)