傲娇少女丶灬
学生会书记
学生会书记
  • 注册日期2010-02-16
  • 最后登录2018-02-20
  • 生日1990-9-30
  • 光玉7139颗
阅读:763回复:19

[聊聊]照样来提升存在感

楼主#
更多 发布于:2011-04-15 21:28
终于又到周日了~~一直以来盼望的周日啊可惜了

明天和后天分别加了一科考试 旅游日语+实用日语翻译~~

考完以后再来一次英语考试 和一个论文 咱的二学历就完成了~~~


老师给了说是60分的题 可是一看感觉完全和学的内容不相干~~==!
上次考试也是说是给题 结果一个都没有一样的~~幸亏现在科技发达 否则真的会死在那里~~

祈祷明天考试题比较简单吧
顺便考场信号比较好~~


周一依然是5页单词 几页语法等待考



现在上家族实在是费事啊 帖子要发几次才能成功~~刷主页的速度现在十分慢~~快疯了~~~

估计最近签到也有点费事了 有木有想要帮忙的~~~






数据库学的还是比较快的 今天就已经讲了JDBC了~~

照着这个进度 过几天就是web开发了~~好期待
附上今天的学习成果~ 老师说要利用则个周末把这个代码敲熟悉~~又要累的半死了



附上代码 这样显得帖子内容很多 方便那些手机看帖的人 ~~~
package fei;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 * @author Administrator
 *
 * 数据库处理类 演示查询 插入 删除 修改记录
 */
public class StudentDAO {

    /**
     * @author Administrator
     *
     * 查询单条记录
     */

    public StudentVo selectById(int id) {

        //1 声明需要创建的对象
        Connection conn = null;//(与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果)

        PreparedStatement stmt = null;//(表示预编译的 SQL 语句的对象)
        ResultSet rs = null;
        StudentVo vo = null;
        String sql = " SELECT STUDENTID,NAME,AGE,DEPART " +
                     " FROM   STUDENT " +
                     " WHERE  STUDENTID = "  + id + "  ";
        try {
            // 2 连接数据库
            conn = DBConn.getConnection();//(DBConn 是自定义数据库连接类)
            //3 创建语句
            stmt = conn.prepareStatement(sql);//(创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库)
            //4 执行SQL语句
            rs = stmt.executeQuery();//(在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象)

            while (rs.next()) {//(将光标从当前位置向前移一行)
                //创建数据传输类对象,用于储存数据
                vo = new StudentVo();
                int temp = rs.getInt("STUDENTID");//( 以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值)
                vo.setStudentid(temp);
                vo.setName(rs.getString("NAME"));//( 以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。)
                vo.setAge(rs.getInt("AGE"));
                vo.setDepart(rs.getString("DEPART"));

            }

        } catch (Exception e) {
            System.out.println("查询失败");
            e.printStackTrace();

        } finally {
            try {
                //关闭相关对象,释放资源
                rs.close();
                stmt.close();
                conn.close();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }

        return vo;
    }

    /**
     * @author Administrator
     *
     * 查询多条记录
     */

    public List selectByDept(String dept) {

        //1 声明需要创建的对象
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        List list = new ArrayList();

        //拼字符串时注意sql语法:varchar2的字段对应的变量要用单引号引起,number型/date型不用(目标是拼出一个正确的sql语句)
        String sql = " SELECT STUDENTID,NAME,AGE,DEPART " +
                     " FROM   STUDENT " +
                     " WHERE  DEPART =    '" + dept + "'  ";

        System.out.println(sql);
        try {
            // 2 连接数据库
            conn = DBConn.getConnection();
            //3 创建语句
            stmt = conn.createStatement();//( 创建一个 Statement 对象来将 SQL 语句发送到数据库。)
            //4 执行SQL语句
            rs = stmt.executeQuery(sql);//(在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象)


            while (rs.next()) {
                StudentVo vo = new StudentVo();

                vo.setStudentid(rs.getInt("STUDENTID"));
                vo.setName(rs.getString("NAME"));
                vo.setAge(rs.getInt("AGE"));
                vo.setDepart(rs.getString("DEPART"));

                list.add(vo);

            }

        } catch (Exception e) {
            System.out.println("查询失败");
            e.printStackTrace();

        } finally {
            try {
                rs.close();
                stmt.close();
                conn.close();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }

        return list;
    }

    /**
     * @author Administrator
     *
     * 插入单条记录
     */

    public int insertStudent(StudentVo vo) {
        //1 声明需要创建的对象
        Connection conn = null;
        PreparedStatement pstmt = null;

        int flg = 0;

        //拼字符串时注意sql语法:varchar2的字段对应的变量要用单引号引起,number型/date型不用(目标是拼出一个正确的sql语句)
        String sql = "INSERT INTO STUDENT ( STUDENTID,NAME,AGE,DEPART)  " +
                "                    VALUES (?,        ?,   ?,   ?)";//(???????????)
        
        //拷贝打印出的字符串到sqlplus中执行,可以检查错误
        System.out.println(sql);
        try {
            // 2 连接数据库
            conn = DBConn.getConnection();
            //设置为不自动提交
            conn.setAutoCommit(false);//(将此连接的自动提交模式设置为给定状态)
            //3 创建语句
            pstmt = conn.prepareStatement(sql);
            
          
            pstmt.setInt(1,vo.getStudentid());//( 将指定参数设置为给定 Java int 值。)
            pstmt.setString(2,vo.getName());
            pstmt.setInt(3,vo.getAge());
            pstmt.setString(4,vo.getDepart());
            
            //4 执行SQL语句
            flg = pstmt.executeUpdate();

            conn.commit();//(使所有上一次提交/回滚后进行的更改成为持久更改,并释放此 Connection 对象当前持有的所有数据库锁。)

        } catch (Exception e) {
            try {
                conn.rollback();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            System.out.println("插入失败");
            e.printStackTrace();

        } finally {
            try {
                conn.setAutoCommit(true);
                pstmt.close();
                conn.close();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }

        return flg;
    }

    /**
     * @author Administrator
     *
     * 删除记录
     */

    public int deleteStudent(int id) {
        //1 声明需要创建的对象
        Connection conn = null;
        Statement stmt = null;

        int flg = 0;
        String sql = "DELETE STUDENT WHERE STUDENTID =  " + id + "   ";
        //  System.out.println(sql);
        try {
            // 2 连接数据库
            conn = DBConn.getConnection();
            //设置为不自动提交
            conn.setAutoCommit(false);
            //3 创建语句
            stmt = conn.createStatement();
            //4 执行SQL语句
            flg = stmt.executeUpdate(sql);
            conn.commit();//(使所有上一次提交/回滚后进行的更改成为持久更改,并释放此 Connection 对象当前持有的所有数据库锁。)


        } catch (Exception e) {
            try {
                conn.rollback();//(取消在当前事务中进行的所有更改,并释放此 Connection 对象当前持有的所有数据库锁。)
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            System.out.println("删除失败");
            e.printStackTrace();

        } finally {
            try {
                conn.setAutoCommit(true);
                stmt.close();
                conn.close();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }

        return flg;
    }

    /**
     * @para int id 记录的studentid
     *
     * 更改单条记录
     */

    public int updateStudent(int id) {
        //1 声明需要创建的对象
        Connection conn = null;
        PreparedStatement pstmt = null;
        int flg = 0;
        String sql = "UPDATE STUDENT SET NAME =?,AGE= ? ,DEPART=?  WHERE STUDENTID = ?  ";
        //  System.out.println(sql);
        try {
            // 2 连接数据库
            conn = DBConn.getConnection();
            //设置为不自动提交
            conn.setAutoCommit(false);
            //3 PreparedStatement对象,设置参数

            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "Bill");
            pstmt.setInt(2, 99);
            pstmt.setString(3, "Java");
            pstmt.setInt(4, id);

            //4 执行SQL语句
            flg = pstmt.executeUpdate();
            conn.commit();

        } catch (Exception e) {
            try {
                conn.rollback();//((取消在当前事务中进行的所有更改,并释放此 Connection 对象当前持有的所有数据库锁。))
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            System.out.println("更改失败");
            e.printStackTrace();

        } finally {
            try {
                conn.setAutoCommit(true);
                pstmt.close();
                conn.close();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }

        return flg;
    }

}
喜欢0 评分0
游客

返回顶部