首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

java怎么用JDBC连接数据库

2012-03-24 
java如何用JDBC连接数据库?数据库是sql2005如何返回数据库取回的数据有木有DataSet 什么的?还有jsp有木有c

java如何用JDBC连接数据库?
数据库是sql2005
如何返回数据库取回的数据
有木有DataSet 什么的?
还有jsp有木有cs页面 就像asp.net的aspx页面都有与之对应的cs那样

 

[解决办法]
java中是ResutlSet 
连接数据库一般情况:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connect conn = DriverManager.getConnection("数据库URL", "用户名", "密码");
[解决办法]
用jdbc连接数据库有三种方法的 网上很多的
[解决办法]
ResutlSet
没有CS页面。
[解决办法]

Java code
    import java.sql.*;    0.参数化        String driverName = "com.mysql.jdbc.Driver";        String url = "jdbc:mysql://localhost:3306/test"; //协议;库或服务器名称;服务器IP,端口        String username = "root";        String password="";            /* Oracle的连接            String driverName = "oracle.jdbc.driver.OracleDriver";            String url = "jdbc:oracle:thin:@192.168.0.23:1521:ora10g";             String username = "openlab";            String password="open123";*/        //以下这些都需要写在有异常的代码块里,所以需要提取出来。        Connection conn = null;        Statement stmt = null;        ResultSet rs = null;//建议用PreparedStatement    1.加载和注册数据库驱动        Class.forName(driverName);//自动注册;需要把驱动的jar包导进来;需处理异常            /*方法二:实例化具体的Driver驱动,这写法一般不用(不能参数化驱动名,不够灵活)            Driver driver = new com.mysql.jdbc.Driver();            DriverManager.registerDriver(driver); //将驱动交于DriverManager托管*/            /*方法三:Dos运行时,java -Djdbc.drives = oracle.jdbc.driver.OracleDriver; --可多个 */    2.连接数据库        conn = DriverManager.getConnection(url, username, password);//需处理异常        //Connection返回数据库连接,如:“com.mysql.jdbc.Connection@1ffb8dc”;连接不成功则返回 null    3.创建Statement对象 //为了类型安全和批量更新的效率,改用PreparedStatement        stmt = conn.createStatement();//需处理异常        //返回其生成结果的对象"oracle.jdbc.driver.OracleStatement@198dfaf"    4.操作数据库,执行SQL语句        String sql = "select * from tableName";//SQL语句里不需要写分号        rs = stmt.executeQuery(sql); //executeQuery(sqlString) 查询 返回查询结果集            /* String sql = "insert into tableName values(?,?)"; // ?占位符            int number = stmt.executeUpdate(sql);//更新,再返回int(更新、修改影响的条数) */    5.处理数据(游标)         StringBuffer sb = new StringBuffer(); //缓存;用它可提高读取速度。当然,不用也可以。        ResultSetMetaData md = rs.getMetaData(); //ResultSetMetaData可获取列的类型和属性信息        int col = md.getColumnCount(); //获取列的数目        while(rs.next()){ //rs.next()使游标下移一位,返回boolean,没有下一个结果则返回false            for(int i=1; i<=col;i++){ // index(JDBC 的下标从1开始)                  sb.append(md.getColumnName(i)+"="+rs.getString(i)+"  ");            } sb.append("\n");        }System.out.println(sb);            //1.游标的初始位置在第一条记录的前面,使第一次调用next()后,刚好拿到第一个结果。            //2.游标的最终位置在最后一条记录的后面(结果集的前面和后面留空,真正存在)     6.释放资源,断开与数据库的连接        //先判断是否有引用资源,再释放(释放空资源会抛异常);注意顺序        if(rs!=null)try{rs.close();}catch(Exception e){e.printStackTrace();}        if(stmt!=null)try{stmt.close();}catch(Exception e){e.printStackTrace();}        if(conn!=null)try{conn.close();}catch(Exception e){e.printStackTrace();}        //这些异常没法处理,处理只为方便调试。所以这些异常处理也只是打印。        /*要按先ResultSet结果集,后Statement,最后Connection的顺序关闭资源,        因为ResultSet需要Statement和Connection连接时才可以用的;Statement也需要Connection才可用;        结束Statement之后有可能其它的Statement还需要连接,因此不能先关闭Connection。ResultSet同理。*/
[解决办法]
探讨

Java code
import java.sql.*;
0.参数化
String driverName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test"; //协议;库或服务器名称;服务器IP,端口


String username……

热点排行