这可能是在JDBC中执行查询的最简单方法(JAVA)

时间:2015-03-07 09:54:29

标签: java jdbc

在学习JDBC的过程中,我在下面创建了接口和类,以便在将来使用时轻松编程。我相信仍然有可能比这更简单。我的程序所做的是通过提供Query String而不是像加载驱动程序类,创建Connection和Statement对象以及从中获取结果等所有过程来获取结果。有没有更简单的方法可以做到这一点并在未来增强功能?

MyConnection.java ----界面

package com.cherukuri.jdbc;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public interface MyConnection {

public static String DRIVER = "com.mysql.jdbc.Driver";
public static String DB_URL = "jdbc:mysql://localhost:3305/STUDENTS";
public static String USER = "root";
public static String PASSWORD = “********";

default void loadDriver() {

    try {
        Class.forName(DRIVER);
    } catch (ClassNotFoundException e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}

public Connection getConnection();

public Statement getStatement();
}

DataBaseConnection.java

package com.cherukuri.jdbc;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class DataBaseConnection implements MyConnection {

Connection connection = null;
Statement statement = null;

@Override
public Connection getConnection() {
    try {
        connection = (Connection) DriverManager.getConnection(DB_URL, USER,
                PASSWORD);
    } catch (SQLException e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
    return connection;
}

@Override
public Statement getStatement() {
    connection = getConnection();
    try {
        statement = (Statement) connection.createStatement();
    } catch (SQLException e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
    return statement;
}

public ResultSet runQuery(String Query) {

    ResultSet resultSet = null;

    statement = getStatement();
    try {
        resultSet = statement.executeQuery(Query);
    } catch (SQLException e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }

    return resultSet;

}

}

TestBaseConnection.java

package com.cherukuri.jdbc;

import java.sql.ResultSet;
import java.sql.SQLException;

public class TestDataBaseConnection {

public static void main(String[] args) {

    DataBaseConnection dbcon = new DataBaseConnection();

    ResultSet rs = dbcon.runQuery("Select * from tblStudent");
    try {
        while (rs.next()) {
            System.out.println(rs.getInt(1) + " ------------------- "
                    + rs.getString(2));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }

}
}

1 个答案:

答案 0 :(得分:1)

您可以尝试Spring JDBC,它以类似于您的包装类的方式简化JDBC访问。它消除了对某些bolierplate代码的需要,并为您管理数据库连接。