JDBC技术

利用传统的jdbc操作数据库的步骤:获取连接→创建Statement→执行数据操作→获取结果→关闭Statement→关闭结果集→关闭连接;

JDBC操作数据库步骤概述如下:

1.注册加载驱动类

2.获取连接

3.创建语句对象

4.执行SQL语句(excute)

5(可选).处理结果

6.关闭相关对象(注意顺序:依次为ResultSet、Statement/PreparedStatement、Connction)

package hqs;
import java.sql.*;
public class DataBasePractice {

    public static void main(String[] args) {
        //声明Connection对象
        Connection con;
        //驱动程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要访问的数据库名mydata
        String url = "jdbc:mysql://localhost:3306/mydata";
        //MySQL配置时的用户名
        String user = "root";
        //MySQL配置时的密码
        String password = "root";
        //遍历查询结果集
        try {
            //加载驱动程序
            Class.forName(driver);
            //1.getConnection()方法,连接MySQL数据库!!
            con = DriverManager.getConnection(url,user,password);
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.创建statement类对象,用来执行SQL语句!!
            Statement statement = con.createStatement();
            //要执行的SQL语句
            String sql = "select * from student";
            //3.ResultSet类,用来存放获取的结果集!!
            ResultSet rs = statement.executeQuery(sql);
            System.out.println("-----------------");
            System.out.println("执行结果如下所示:");  
            System.out.println("-----------------");  
            System.out.println(" 学号" + "	" + " 姓名");  
            System.out.println("-----------------");  
            
            String name = null;
            String id = null;
            while(rs.next()){
                //获取stuname这列数据
                name = rs.getString("stuname");
                //获取stuid这列数据
                id = rs.getString("stuid");
                //首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
                //然后使用GB2312字符集解码指定的字节数组。
                name = new String(name.getBytes("ISO-8859-1"),"gb2312");
                //输出结果
                System.out.println(id + "	" + name);
            }
<span>            </span>rs.close();
            con.close();
        } catch(ClassNotFoundException e) {   
            //数据库驱动类异常处理
            System.out.println("Sorry,can`t find the Driver!");   
            e.printStackTrace();   
            } catch(SQLException e) {
            //数据库连接失败异常处理
            e.printStackTrace();  
            }catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            System.out.println("数据库数据成功获取!!");
        }
    }

}
View Code

JDBC连接各种数据库的字符串大同小异,在此总结一下,备忘。

oracle
    driverClass:oracle.jdbc.driver.OracleDriver
    url:jdbc:oracle:thin:@127.0.0.1:1521:dbname

(1)连接Oracle 8/8i/9i/10g/11g(thin模式)

Class.forName("oracle.JDBC.driver.OracleDriver").newInstance();

String url="JDBC:oracle:thin:@localhost:1521:orcl"       //orcl为Oracle数据库的SID

String user="test";

String password="test";

Connection con=DriverManager.getConnection(url,user,password);


mysql
    driverClass:com.mysql.jdbc.Driver

    PS:有的时候,mysql的驱动类也也会看到使用org.gjt.mm.mysql.Driver的情况,org.gjt.mm.mysql.Driver是早期的驱动名称,后来就改名为com.mysql.jdbc.Driver,现在一般都推荐使用 com.mysql.jdbc.Driver。在最新版本的mysql jdbc驱动中,为了保持对老版本的兼容,仍然保留了org.gjt.mm.mysql.Driver,但是实际上 org.gjt.mm.mysql.Driver中调用了com.mysql.jdbc.Driver,因此现在这两个驱动没有什么区别。
    url:jdbc:mysql://localhost:3306/mydb

(2)连接MySQL数据库

Class.forName("com.mysql.jdbc.Driver");

String url="JDBC:mysql://localhost:8080/testDB";

String user="test"; String password="test";

Connection con=DriverManager.getConnection(url,user,password);


DB2
    driverClass:com.ibm.db2.jcc.DB2Driver
    url:jdbc:db2://127.0.0.1:50000/dbname

(3)连接DB2数据库

Class.forName("com.ibm.db2.jcc.DB2Driver");

String url="JDBC:db2://localhost:5000/testDb";

String user="test"; String password="test";

Connection con=DriverManager.getConnection(url,user,password);

sybase
    driverClass:com.sybase.jdbc.SybDriver
    url:jdbc:sybase:Tds:localhost:5007/dbname

(4)连接Sybase数据库

Class.forName("com.sybase.JDBC.SybDriver");

String url="JDBC:sybase:Tds:localhost:5007/testDb";

Properties pro=System.getProperties();

pro.put("user","userId");

pro.put("password","user_password");

Connection con=DriverManager.getConnection(url,pro);


PostgreSQL
    driverClass:org.postgresql.Driver
    url:jdbc:postgresql://localhost/dbname

(5)连接PostgreSQL数据库

Class.forName("org.postgresql.Driver");

String url="JDBC:postgresql://localhost/testDb";

String user="test"; String password="test";

Connection con=DriverManager.getConnection(url,user,password);


Sql Server2000
    driverClass:com.microsoft.jdbc.sqlserver.SQLServerDriver
    url:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname

(6)连接SQL Server2000数据库

Class.forName("com.microsoft.JDBC.sqlserver.SQLServerDriver");

String url="JDBC:microsoft:sqlserver://localhost:1433;DatabaseName=testDb";

String user="test"; String password="test";

Connection con=DriverManager.getConnection(url,user,password);


Sql Server2005
    driverClass:com.microsoft.sqlserver.jdbc.SQLServerDriver
    url:jdbc:sqlserver://localhost:1433; DatabaseName=dbname

(7)连接Access数据库

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String url="JDBC:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/testDb/mdb");

Connection conn=DriverManager.getConnection(url,"","");

(8)连接informix数据库

Class.forName("com.informix.JDBC.ifxDriver");

String url="JDBC:informix-sqli:localhost:1533/testDb:INFORMIXSERVER=myserver"user=testUser;password=testpassword"; Connection con=DriverManager.getConnection(url);

//1.获得连接
Connection conn = driver.connect(url, info);
String sql="...";     //sql语句

//2.获取statement对象
Statement statement = conn.createStatement();

//3.执行
statement.executeUpdate(sql);

//4.关闭
statement.close();
conn.close();
View Code
原文地址:https://www.cnblogs.com/sxjblogs/p/7267281.html