sql server的连接与sql语句执行

有几个类是必须要记住的
PreparedStatement 预编译的SQL语句对象
Connection 活动连接
ResultSet 数据表对象

PreparedStatement 表示预编译的SQL语句的对象,可以使用此对象多次高效的执行该语句。我的理解就是可以把SQL语句放到这个对象里面,然后在此对象中执行SQL语句。执行的方法有三个:

execute();执行语句后返回一个Boolean值,如果第一个结果是ResultSet对象,则返回true;如果是更新计数或者没有结果则返回false。
executeQuery();执行查询语句后返回生成的ResultSet对象。
executeUpdate();在此对象中执行无返回的SQL数据操作语句,比如insert、update、delete语句

在SQL中有个where条件语句,select from Student where name='Jethro' and age=18 在把这条语句写进PreparedStatement的时候可以把Jethro换成? 然后在后面把?的参数设置为你想要的值。比如,select from Student where name=? and age=?
调用如下方法进行参数设置:

preparedStatement.setString(1,"张三"); //第一个参数是第几个问号,第二个参数就是你的内容
preparedStatement.setInt(2,19);//如想插入小数等其他值,那么API大法好

Connection表示一个活动连接,目前有那些作用还不清楚,只知道它有个方法用来创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到此对象。那个方法是preparedStatement(String sql);

ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

ResultSet有一个next方法,用来将光标移动到数据行的下一行,通常一开始光标都在第一行之前。

OK,还是直接上代码比较直观,这个代码实现的是查询学生信息并存储到Vector数组

Vector recording= new Vector();//存放记录的对象数组,一条记录由n个字段组成。
try {//连接数据的代码一定要用try...catch包围
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动
    Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DataBaseName=xsgl", "sa", "admin123");//创建一个数据库的活动连接
    PreparedStatement preparedStatement = con.prepareStatement("select * from student where sex=?");//将带参数的SQL语句写到preparedStatement对象里
        preparedStatement.setString(1,"男");//把第一个问号的值设置为男,查询所有的男性学生
    ResultSet resultSet = preparedStatement.executeQuery();//执行SQL语句,接收返回的ResultSet对象
    while (resultSet.next()) {将光标向下移动,有数据就返回true
        Vector line= new Vector();//新建一个存储字段的对象数组,表示一条记录。
        line.add(js.getInt(1));//读取此行的第一个字段,并添加到此条记录
        line.add(js.getString(2));//读取此行的第二个字段,并添加到此条记录
        line.add(js.getInt(3));//读取此行的第三个字段,并添加到此条记录
        line.add(js.getString(4));//以此类推
        line.add(js.getString(5));
        recording.add(line);把这条记录添加到存储记录的对象数组
    }
        try {//主动关闭对象
            if (preparedStatement != null) {
                preparedStatement.close();
            }
            if(ResultSet != null){
                resultSet.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (Exception e3) {}
} catch (Exception e) {
    System.out.println("错误");
}
添加新评论