在开发中,我们所用到的数据库往往不止一种。像我现在所在的公司,因为业务原因,需要用到很多种数据库。这里来说一说最常用的三种数据库的JDBC的实现以及对比。

    首先,我们需要准备数据库连接所需的jar包。目前mysql的驱动包可能比较好找,但是oracle和sqlserver的有很多,要找到能用的要花一点点心思,这里直接把下载地址和版本发送出来。另外我也会把三个jar包打包放到资源中心,大家可以直接下载。

    

    说明:这里默认为本地数据库和默认的端口配置。使用的时候根据需要进行修改。然后版本大家也可以根据需要下载不同版本。


    另外,sqlserver的驱动比较多,这里使用的是jtds驱动。


    Mysql:


    驱动程序包:mysql-connector-java-5.1.38.jar


    下载地址: http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38

    驱动:com.mysql.jdbc.driver


    url: jdbc:mysql://localhost:3306/database_name



    SQL Server:


    驱动程序包:mssql-jdbc-6.2.2.jre8.jar


    下载地址: http://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc/6.2.2.jre8


     驱动: com.microsoft.sqlserver.jdbc.SQLServerDriver


url:jdbc:jtds:sqlserver://localhost:1433;database_name=database_name



    Oracle:


    驱动程序包:ojdbc6-11.2.0.3.jar

    下载地址: http://mvnrepository.com/artifact/oracle/ojdbc6/11.2.0.3


驱动:oracle.jdbc.driver.OracleDriver
 
url:jdbc:oracle:thin:@localhost:1521:database_name



    如果出现dependency引入失败,可以手动下载jar包到自己本地的maven仓库再进行引入。


    本地maven仓库一般在/user/.m2/repository文件夹下。这里可以参考我的另一篇文章:Maven使用Dependency下载失败的原因


    以下是mysql数据库的示例:

public void mysqlJDBCTest(){
        //创建数据库连接对象、预编译的statement对象和结果
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            //加载数据库驱动(因为可能出现异常,所以使用try/catch)
            Class.forName("com.mysql.jdbc.Driver");
            //配置数据库相关信息:url,用户名,密码
            String url = "jdbc:mysql://localhost:3306/xlanime";
            String username = "root";
            String password = "123456";
            //获取数据库连接
            connection = DriverManager.getConnection(url,username,password);
            //编写sql语句
            String sqlStr = "select * from user";
            //预编译sql语句
            preparedStatement = connection.prepareStatement(sqlStr);
            //执行sql语句,并获取返回的结果
            resultSet = preparedStatement.executeQuery();
            //获取并遍历结果集
            while (resultSet.next()){
                //获取数据,注意与数据库对应
                String u_name = resultSet.getString("username");
                int u_age = resultSet.getInt("age");
                String u_salary = resultSet.getString("salary");
                System.out.println("name : "+u_name+",age "+u_age+",salary "+u_salary);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    如果是SqlServer或者Oracle,直接把驱动和数据库url更换成对应的就可以了。(当然,用户名密码要正确)

    差不多就是这样了,希望对大家有用。尤其是sqlserver的这个url,注意端口号后面是分号,然后数据库名需要写成database_name=数据库名这样才行。和Mysql是不一样的。