Java、XML与数据库编程实践(四)

类别:Java 点击:0 评论:0 推荐:

protected boolean alreadyin(String tname,String colname, String value)

    {      

        int result;

        ResultSet rst=null;

        try {

        //执行SQL语句

        String query = "select "+colname+" from "+tname+" where "+colname+"='"+value+"'";

        Statement statement = connformax.createStatement();

        rst = statement.executeQuery( query );

        if(rst.next())

        {

            statement.close();

            rst.close();

            return true;

        }      

     }

     catch ( SQLException sqlex ) {

        sqlex.printStackTrace();

        return false;

     }

     return false;    

    }

   

    protected int getIdfromNumber(String tname,String colname, String value)

    {      

        int result;

        ResultSet rst=null;

        try {

        Connection conn= DriverManager.getConnection( destPara.getUrl(), destPara.getUsername(),destPara.getPassword());

        String query = "select id,"+colname+" from "+tname+" where "+colname+"='"+value+"'";

        System.out.println(query);

        Statement statement = conn.createStatement();

        rst = statement.executeQuery( query );

        if(rst.next())

        {

            return rst.getInt("id");

        }

       

     }

     catch ( SQLException sqlex ) {

        sqlex.printStackTrace();

        return 0;

     }

     return 0;    

    }

   

    /**

     * 得到某个表中的最大的id号

     */

    protected int getMax(String tname)

    {      

        int result;

        ResultSet rst=null;   

        try {

        //执行SQL语句

        String query = "select Max(id) from "+tname;

        Statement statement = connformax.createStatement();

        rst = statement.executeQuery( query );

        if(rst.next())

        {

            return rst.getInt(1)+1;

        }

     }

     catch ( SQLException sqlex ) {

        sqlex.printStackTrace();

        return 0;

     }

     return 1;    

    }

   

    /**

     * 执行某一段sql语句

     */

    public static void execute(ConnPara connpara,String stmt) throws SQLException

    {

        Connection conn=null;

        PreparedStatement ps = null;

        try {

            conn=DriverManager.getConnection( connpara.getUrl(),  connpara.getUsername(), connpara.getPassword());

            System.out.println(stmt);

            ps = conn.prepareStatement(stmt);

            ps.executeUpdate();

        } catch (Exception e) {

            e.printStackTrace();

            System.out.println(e.getMessage());

        } finally {

        if (ps!=null) ps.close();

        if (conn!=null)conn.close();

        }

    }

   

    public static void main(String argc[])

    {

        DbInput copydb=new DbInput();

        copydb.dbInit();

        copydb.copyproduct();  

    }  

}

 

问题:

1)       access数据库不能直接由jdbc读写,解决办法是先把access配置在ODBC中,然后再通过ODBC来操作access数据库。

2)       执行时找不到com.microsoft.jdbc.sqlserver.SQLServerDriver类,这是因为在运行这个类时,要下载微软的jdbc包,这个包中有三个文件: msbase.jar,mssqlserver.jar,msutil.jar,把这三个文件包含进去,就不会有问题了。

 

 

 

本文地址:http://com.8s8s.com/it/it16351.htm