我的代码出了问题。
我写了一个简单的java应用程序连接到postgreSQL,代码在下面,它的工作。
package jdbctest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class JDBCtest
{
public static void main(String[] args)
{
Connection con = null;
PreparedStatement pst = null;
String url = "jdbc:postgresql://localhost/postgres";
String user = "root";
String password = "1234";
String SQL="";
try
{
String a="pswd";
con = DriverManager.getConnection(url, user, password);
//Insert
SQL = "Insert into inserttable(idnb,data) Values('ID',?)";
pst = con.prepareStatement(SQL);
pst.setString(1,a);
pst.executeUpdate();
}
catch (SQLException ex)
{
Logger lgr = Logger.getLogger(JDBCtest .class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
}
finally
{
try
{
if(con != null) con.close();
if(pst!=null) pst.close();
}
catch (SQLException ex)
{
Logger lgr = Logger.getLogger(JDBCtest .class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
}
}
然后我创建了一个Web服务来做同样的事情,WSDL创建没有错误。
package Use.SQL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jws.Oneway;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
@WebService(serviceName = "pgSQL")
public class pgSQL
{
@WebMethod(operationName = "insert")
@Oneway
public void insert(@WebParam(name = "infor") String infor)
{
Connection con = null;
PreparedStatement pst = null;
ResultSet Check = null;
String url = "jdbc:postgresql://localhost/postgres";
String user = "root";
String password = "1234";
String SQL="";
try
{
con = DriverManager.getConnection(url, user, password);
//Insert
SQL = "Insert into inserttable(idnb,data) Values('ID',?)";
pst = con.prepareStatement(SQL);
pst.setString(1,infor);
pst.executeUpdate();
}
catch (SQLException ex)
{
Logger lgr = Logger.getLogger(pgSQL .class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
}
finally
{
try
{
if (con != null) con.close();
if(pst!=null) pst.close();
}
catch (SQLException ex)
{
Logger lgr = Logger.getLogger(pgSQL .class.getName());
lgr.log(Level.WARNING, ex.getMessage(), ex);
}
}
}
}
毕竟,我写了一个名为wsdl的应用程序,如下所示。
public class JavaApplication
{
public static void main(String[] args)
{
insert("pswd");
}
private static void insert(java.lang.String infor) {
use.sql.PgSQL_Service service = new use.sql.PgSQL_Service();
use.sql.PgSQL port = service.getPgSQLPort();
port.insert(infor);
}
}
运行项目没有错误,但数据库中没有任何事情发生。
伙计们,对这个问题有任何想法吗?谢谢你们,你们真的给了我有用的信息。
现在我意识到问题是由司机造成的。
我确实在项目中添加了jar文件,但不知道如何,webservice无法获得它。
还没有解决。
它最终在按代码导入Driver后工作。
谢谢你们:D答案 0 :(得分:0)
String url = "jdbc:postgresql://localhost/postgres";
如果你的PostgreSQL端口不是80,请写端口
String url = "jdbc:postgresql://localhost:port/postgres";