JDBC 连接数据库

//1.装载驱动包 (需要百度下载各种驱动包)
    public void service(HttpServletRequest request,
                        HttpServletResponse response) throws ServletException,
                                                             IOException {
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();

      	Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {
//2.装载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");		//本题以连接oracle数据库为例
//3.创建连接
            conn =
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORADB", "scott",
                            "tiger");
//4.创建发送SQL语句的对象:Statement
            stmt = conn.createStatement();
//5.进行数据库操作
            //int executeUpdate = stmt.executeUpdate("INSERT INTO dept VALUES(50,'人事部门','绵阳')");
            //System.out.println(executeUpdate);
            //            String sql = "UPDATE dept SET LOC='成都' WHERE deptno=50";
            //            int affectedRow = stmt.executeUpdate(sql);
            //            System.out.println("影响的行数为:"+affectedRow);
            String deleteSql = "DELETE FROM dept WHERE deptno=50";
            int affectedRow1 = stmt.executeUpdate(deleteSql);
            rs = stmt.executeQuery("SELECT * FROM dept");
//6.处理操作结果
            while (rs.next()) {
                out.println(rs.getInt(1) + "       " + rs.getString(2) +
                            "       " + rs.getString(3) + "<br >");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null)
                    rs.close();
                if (stmt != null)
                    stmt.close();
                if (conn != null)
                    conn.close();
            } catch (SQLException sqle) {
                // TODO: Add catch code
                sqle.printStackTrace();
            }
	out.close();

        }

附 : 驱动包以及关键字:

 


•	MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar 
Class.forName( "org.gjt.mm.mysql.Driver" ); 
cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd ); 
•	PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jar 
Class.forName( "org.postgresql.Driver" ); 
cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd ); 
•	Oracle(http://www.oracle.com/ip/deploy/database/oracle9i/)classes12.zip 
Class.forName( "oracle.jdbc.driver.OracleDriver" ); 
cn = DriverManager.getConnection( "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd ); 
•	Sybase(http://jtds.sourceforge.net)jconn2.jar 
Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" ); 
cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd ); 
// (Default-Username/Password: "dba"/"sql") 
•	Microsoft SQLServer(http://jtds.sourceforge.net) 
Class.forName( "net.sourceforge.jtds.jdbc.Driver" ); 
cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd ); 
•	Microsoft SQLServer(http://www.microsoft.com) 
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" ); 
cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master", sUsr, sPwd ); 
•	ODBC 
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); 
Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn, sUsr, sPwd ); 
•	DB2
Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");
String url="jdbc:db2://192.9.200.108:6789/SAMPLE"
cn = DriverManager.getConnection( url, sUsr, sPwd );

注解:1:rs.next() 由Resultset返回的数据集(集合),因此可以用next()遍历;初始化指向数据的前一位。While(rs.next())第一次执行的时候,实际上已经指向数据位了。

           2:   当执行sql语句的时候,有修改和查询两种方法。修改(插入,更新,删除)用executeUpdate();方法返回的是一个int类型的数据,这个数据代表的是影响数据库多少行;而查询则用executeQuery()方法,返回的是一个数据集。

           3:把变量放在try catch 里面,默认为私有变量,外界不能访问。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值