java连接oracle数据库,自己封装的几个方法

简单封装几个插入,查询方法,以后复习看

package student;


import java.sql.*;
import java.util.Set;
class method {
    /*
     * 获得statement对象后,可以使用executeUpdate(),executeQuery();等方法来执行sql语句,
     * a).executeUpdate()是用来执行create table,insert,drop table,alter table等会改变数据库
     *       内容的sql语句,它会返回int结果,表示记录变动数目
     * b).executeQuery()方法是用于select等查询语句,结果返回java.sql.Result对象代表查询的结果,
     *    查询的结果会是一条条的记录,然后可以使用getString(),getInt()...得到结果
     * 下面首先是connect方法,目的是将繁琐重复的连接数据库代码封装到一个方法里面,方便在下面的插入查询等方法中调用
     */
    public static Connection connect(){
        Connection ct=null;
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            ct=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl",
                    "scott", "sinstar");

        } catch (Exception e) {
            System.err.println("连接数据库出现错误!");
        }
        return ct;
    }
    /*
     * 最简单的插入方法,不带参数
     */
    public void insert(){
        Connection ct=connect();

        ResultSet rs=null;  
        String sql="insert into student values('9501','丁文峰','男',19,'计算机')";

        try {
            Statement st= ct.createStatement();
            int count=st.executeUpdate(sql);    
            System.out.println("成功插入一条数据!"+count);

        } catch (Exception e) {
            System.out.println("插入数据出现错误!");
        }
    }

    /*
     * 带了参数的方法,刚开始学习的时候,只会statement,不会prepareStatement,
     * 只能使用字符串的加法来组成一条查询语句
     * statement用于执行静态的sql语句
     */
    public void insert(String sno,String sname,String sex,int age,String sdept){
        Connection ct=connect();

        ResultSet rs=null;

        String sql;
        String str1="insert into student values('";
        String str2="','";
        String str3="',";
        String str4=",'";
        String str5="')";

        Integer i=new Integer(age);

        String ageString=i.toString();

        sql=str1+sno+str2+sname+str2+sex+str3+ageString+str4+sdept+str5;

        //String sql="insert into student values('9501','丁文峰','男',19,'计算机')";

        try {
            Statement st= ct.createStatement();
            int count=st.executeUpdate(sql);    
            System.out.println("成功插入一条数据!"+count);

        } catch (Exception e) {
            System.out.println("插入数据出现错误!");
        }
    }

    /*
     * insert方法的升级版,运用prepareStatement,在方法中添加了参数后
     * 可以使用setInt(列,值);等方法来灵活的插入语句,
     */

    public void superInsert(String sno,String sname,String sex,int age,String sdept){
        Connection ct=connect();

        ResultSet rs=null;

        String sql;


        Integer i=new Integer(age);

        String ageString=i.toString();



        //String sql="insert into student values('9501','丁文峰','男',19,'计算机')";

        try {
            PreparedStatement st= ct.prepareStatement("insert into student values(?,?,?,?,?)");
            st.setString(1, sno);
            st.setString(2, sname);
            st.setString(3, sex);
            st.setInt(4, age);
            st.setString(5, sdept);
            int count=st.executeUpdate();   
            System.out.println("成功插入一条数据!"+count);

        } catch (Exception e) {
            System.out.println("插入数据出现错误!");
        }
    }

    public void del(){

    }

    public void select(){
        Connection ct=connect();        

        try {
            Statement sm = ct.createStatement();
            ResultSet rs = sm.executeQuery("select * from student");
            /*
             * Statement用于向数据库发送语句;ResultSet代表结果集,它封装了查询到的数据
             */

            while (rs.next()) {
                System.out.print("学号:"+rs.getString("sno"));//rs.getString(1)
                System.out.print("姓名:" + rs.getString("sname"));//rs.getString(2)
                System.out.print("性别:" + rs.getString(3));
                System.out.print("年龄:" + rs.getInt(4));
                System.out.println("系别:"+rs.getString(5));

                /*
                 * 获取查询结果有两种方法!
                 * 1,使用rs.getInt("列名");或者rs.getString("列名");
                 * 2,使用rs.getString(1);代表获取第一列,2代表第二列,他是从1开始的,不是0
                 */
            }
            rs.close();
            sm.close();
            ct.close();
        } catch (Exception e) {
            System.out.println("查询错误!");
            e.printStackTrace();
        }
    }


}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值