package com.test1;
import java.sql.*;
/*
* Java程序通过JDBC-ODBC桥连方式连接SQLserver数据库
* PreparedStatement的使用
* PreparedStatement可以提高执行效率
* 如果使用它,可以防止SQL注入,但是要求使用?赋值的方式才可以!
*/
public class Test2 {
public static void main(String[] args) {
// 定义需要用到的对象
ResultSet rst = null;
Connection ct = null;
PreparedStatement ps = null;
try {
// 1.加载驱动(作用是把驱动程序加载到内存)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 2.得到连接
ct = DriverManager.getConnection("jdbc:odbc:mytest");//我是通过windows验证登录,所以没有密码。
//否则应该写成ct=DriverManager.getConnection("jdbc:odbc:mytest","用户名","密码");
// 3.创建preparedStatement
ps = ct.prepareStatement("select *from dept");
rst = ps.executeQuery();
//循环取出表中记录
while (rst.next()) {
System.out.println(rst.getInt(1) + " " + rst.getString(2) + "\t"
+ rst.getString(3));
}
//使用PreparedStatement添加记录
ps=ct.prepareStatement("insert into dept values(?,?,?)");
ps.setInt(1, 90);
ps.setString(2,"安全部");
ps.setString(3,"上海");
int i=ps.executeUpdate();
if(i==1){
System.out.println("添加OK!");
}else{
System.out.println("添加不OK!");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
// 谁先创建则后关闭
try {
// 为了程序健壮
if (rst != null) {
rst.close();
}
if (ps != null) {
ps.close();
}
if (ct != null) {
ct.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}