我说的是像这样的语句不能执行:if exists (select * from master.dbo.sysdatabases where name='Points') drop database points go /*==============================================================*/ /* 建立数据库Points(请先在D:建立一个Points的文件夹) */ /*==============================================================*/ Create Database Points on (Name=Points_DAT, FileName='d:\Points\Points_DAT.MDF', Size=2MB, FileGrowth=10%) Log on (Name=Points_LOG, FileName='d:\Points\Points_LOG.LDF', Size=1MB, FileGrowth=10%) go
像sqlserver 查询分析器的那种脚本
如果是存储过程直接用callableStatement执行 如果是脚本,放到begin 和 end 之间执行
如果是sqlserver的语法,里面有go就报错比如: begin insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N') insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N') go insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N') go insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N') insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N') go insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N') end
存储过程什么的要去数据库里做
可以自己读出来然后一条一条的加入到batch去执行
不过就是存储过程在脚本里面,然后仍给 jdbc好像就不能执行了
from master.dbo.sysdatabases
where name='Points')
drop database points
go
/*==============================================================*/
/* 建立数据库Points(请先在D:建立一个Points的文件夹) */
/*==============================================================*/
Create Database Points
on
(Name=Points_DAT,
FileName='d:\Points\Points_DAT.MDF',
Size=2MB,
FileGrowth=10%)
Log on
(Name=Points_LOG,
FileName='d:\Points\Points_LOG.LDF',
Size=1MB,
FileGrowth=10%)
go
如果是脚本,放到begin 和 end 之间执行
begin
insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N')
insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N')
go
insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N')
go
insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N')
insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N')
go
insert into Points.dbo.suiteSales (suite_code,sale_mounts,thbz) values(1,1,'N')
end
go 不是 transact-SQL 指令
调用存储过程用CallableStatement
connection.prepareStatment("begin\n .....end");
但GO不是transact-SQL指令,GO相当于oracle sql puls 中的run,
存储过程中也不允许出现GO。
import java.sql.*;
import java.util.*;public class DBO {
public List query(){
Connection conn= null;
PreparedStatement ps=null;
ResultSet rs=null;
List list=new LinkedList();
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/myjdbc","root","root");
String sql="select * from user";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
User user=new User();
user.setUser_id(rs.getInt("user_id"));
user.setUser_name(rs.getString("user_name"));
user.setUser_sex(rs.getString("user_sex"));
user.setUser_age(rs.getInt("user_age"));
user.setUser_level_id(rs.getInt("user_level_id"));
list.add(user);
}
} catch (Exception e) {
e.printStackTrace();
}
finally{
try {if (null!=rs) {
rs.close();
}
if (null!=ps) {
ps.close();
}
if (null!=conn) {
conn.close();
}
} catch (Exception e) {
// TODO: handle exception
}
}
return list;
}
}
如果想执行类似**.sql 这样的文件 java可以做
如果要在jdbc代码里面写 不可以.
*.sql 里的内容也可以和sqlserver中的查询分析器一样
但是具体实现我就不知道了,不过肯定可以实现
因为以前我公司有个项目就是 调用*.sql脚本执行
期待高手出来帮忙