有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

mysql与Java Rest Webservice的手动数据库连接(jersey)

我想知道是否有人能帮我解决一个小问题。我正在尝试使用Jersey在Java中创建一个restfull服务

但我找不到任何关于如何进行手动数据库连接的示例。如果我这样做了,那么在查询数据库时,连接将返回一个空指针

public DbConnection()
{
    try 
    {
        // This will load the MySQL driver, each DB has its own driver
        Class.forName("com.mysql.jdbc.Driver");
        // Setup the connection with the DB
        connection =     DriverManager.getConnection("jdbc:mysql://url/team_staging?"
                        + "user=X&password=X");
    }
    catch (ClassNotFoundException ex) 
    {
        Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, null, ex);
    } 
    catch (SQLException ex) 
    {
        Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, null, ex);
    }
}

有人能给我指一下正确的方向吗?我不想使用任何ORM

我发现在netbeans中,如果没有hibernate或自动生成的rest服务,很难找到好的例子

我的问候, Axl


共 (1) 个答案

  1. # 1 楼答案

    我认为你避开ORM解决方案的本能是好的

    您正在编写一个web服务,这意味着它至少要部署在一个servlet/JSP引擎(例如Tomcat)或一个完整的JavaEE应用服务器上。我将学习如何为应用服务器创建JNDI连接池

    您希望将连接参数(例如驱动程序、URL等)外部化

    我没有看到一个班级成员有这种联系。退出ctor时会发生什么?超出范围了吗?这就解释了NPE

    我会这样写:

    package persistence;
    
    public class DatabaseUtils {
        private DatabaseUtils() {}
    
        public static Connection getConnection(String driver, String url, String username, String password) throws Exception {
            Class.forName(driver);
            return DriverManager.getConnection(url, username, password);
        }
    }