//1.调用相应的数据库驱动对象
项目---》查找主件-->找到驱动文件后缀名为.jar
//2.通过在java类中 使用找到驱动类
Class.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
3。建立连接
//这里数据库必须是相应的用户登录才能连接 不能用windows验证方式
Connection con = DriverManager.getConnection
("jdbc:sqlserver://127.0.0.1:1433;DataBaseName=bbs(相应的数据库)","数据库用户名", "数据库用户密码");// 返回连接
4. 创建执行SQL语句的命令
String sql="select *from sysobjects" //sql语句
PreparedStatement ps=con.prepareStatement(sql);
还一种可以传参数的sql语句
例子 :
String sql = "select * from sysosbjets where name=?"; //问号表示站位符
设置 参数
ResultSet rs = ps.executeQuery();
rs.setInt(1,"列名"); //1指第几个参数 ,列名对应数据库中表列名
5.创建返回对象
ResultSet rs = ps.executeQuery();//执行对数据库的查询操作
//循环出数据
while(rs.next){
rs.getInt("列明") ; //不同的数据类型用不同的getxxxx
//注意getxxx是取值 ,setxxxx是设置值
}
7.执行 增 删 改 操作
int num= ps.executeUpdate();
//返回受影响的 行数 也可以返回 布尔值
//关闭连接 顺序是从小连接到大连接
ps.colse();
rs.colse();
con.colse();
************************************************************
2,使用存储过程
//数字指第几个参数
CallableStatement cst = con.prepareCall("{call dbo.delcetUser(?,?)(这里指存储过程名字)}");
cst.setInt(1, "相应类型的值"); //设置输入参数
cst.registerOutParameter(2, java.sql.Types.INTEGER(选择相应的数据类型)); //设置输出参数
cst.execute();//执行
cst.getInt(2,"数据类型") //得到输出的参数 2是指第几个参数
/**怎么样使用Bathc批处理SQL语句*************/
Bathc;
1>利用Statement命令使用批处理
Statement stmt= con.createStatement();
//添加到Batch批处理中
stmt.addBath("insert into dept2 values("asdf","男")");
stmt.addBath("insert into dept2 values("asdf","男")");
stmt.addBath("insert into dept2 values("asdf","男")");
//执行批处理
stmet.executeBatch();
//关闭连接
stment.close();
2>利用PreparedStatement命令使用批处理
PreparedStatement ps= con.preparedStatement("insert table values("?,?,?")");
ps.setInt(1,12);
ps.setString(2,"wangwei");
ps.setDate(new Date()); //注意此处要处理NEW出来的DATE()
//添加到批处理中
ps.addBatch();
ps.setInt(1,22);
ps.setString(2,"阿士大夫");
ps.setDate(new Date()); //注意此处要处理NEW出来的DATE()
//添加到批处理中
ps.addBatch();
.......
//执行
ps.executeBatch();
ps.close();
*********
注意以上要处理在本类处理异常
例子
try{
} catch(SQLEexception e){
}catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
}
8888888888888888888888888888888888
/***处理可滚动的结果集***/
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection con =null;
PreparedStatement ps= null;
ResultSet rs =null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con =
DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;dataBaseName=test","sa","123456");
Statement sm = con.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY); //第一个参说是对于滚动不敏感,
第二个参数是可以跟新的结果集
rs=sm.executeQuery("select * from test1 order by Id");
rs.next(); //指向第一条数据返回布尔值
System.out.println(rs.getString(1)); //获取第一条表中字段名索引为1的字段值
rs.last(); //最后一条
System.out.println(rs.getString(1));//获取最后一条表中字段名索引为1的字段值
System.out.println(rs.isLast()); //是否是最后一条
System.out.println(rs.isAfterLast()); //是否是倒数第2条
System.out.println(rs.getRow()); //当前数据在多少行
// ps=con.prepareStatement("");
}catch(ClassNotFoundException cfe){
System.out.println("找不到驱动");
}
catch(SQLException sqle){
sqle.printStackTrace();
}
finally{
try{
// ps.close();
rs.close();
con.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}