3
3
import java .sql .Connection ;
4
4
import java .sql .ResultSet ;
5
5
import java .sql .SQLException ;
6
+ import java .sql .Statement ;
6
7
import java .util .ArrayList ;
7
8
import java .util .List ;
8
9
@@ -16,22 +17,29 @@ public class SQLBasedUtils implements DBUtils, Constants {
16
17
17
18
@ Override
18
19
public ServiceProviderInfo getServer (Connection conn , int serviceId ) throws SQLException {
19
- String sql = "SELECT * from SERVICE_PROVIDER WHERE SID = " + serviceId + " ORDER BY RAND () LIMIT 1;" ;
20
+ String sql = "SELECT * from SERVICE_PROVIDER WHERE SID = " + serviceId + " ORDER BY RANDOM () LIMIT 1;" ;
20
21
ResultSet rs = conn .createStatement ().executeQuery (sql );
21
- if (!rs .next ())
22
+ if (!rs .next ()) {
23
+ rs .getStatement ().close ();
22
24
return null ;
25
+ }
26
+ ServiceProviderInfo info = new ServiceProviderInfo (rs .getString ("URL" ), rs .getInt ("PORT" ), "" ,
27
+ StubEnvType .JAVA );
23
28
rs .getStatement ().close ();
24
- return new ServiceProviderInfo ( rs . getString ( "IP" ), rs . getInt ( "PORT" ), rs . getString ( "NAME" ), StubEnvType . JAVA ) ;
29
+ return info ;
25
30
}
26
31
27
32
@ Override
28
33
public ServiceProviderInfo getServer (Connection conn , String serviceName ) throws SQLException {
29
- String sql = "SELECT * from SERVICE_PROVIDER WHERE NAME = " + serviceName + " ORDER BY RAND () LIMIT 1;" ;
34
+ String sql = "SELECT * from SERVICE_PROVIDER WHERE NAME = ' " + serviceName + "' ORDER BY RANDOM () LIMIT 1;" ;
30
35
ResultSet rs = conn .createStatement ().executeQuery (sql );
31
- if (!rs .next ())
36
+ if (!rs .next ()) {
37
+ rs .getStatement ().close ();
32
38
return null ;
39
+ }
40
+ ServiceProviderInfo info = new ServiceProviderInfo (rs .getString ("IP" ), rs .getInt ("PORT" ), "" , StubEnvType .JAVA );
33
41
rs .getStatement ().close ();
34
- return new ServiceProviderInfo ( rs . getString ( "IP" ), rs . getInt ( "PORT" ), rs . getString ( "NAME" ), StubEnvType . JAVA ) ;
42
+ return info ;
35
43
}
36
44
37
45
@ Override
@@ -53,7 +61,7 @@ public ServiceProviderInfo[] getAllServer(Connection conn, int serviceId) throws
53
61
public ServiceProviderInfo [] getAllServer (Connection conn , String serviceName ) throws SQLException {
54
62
ArrayList <ServiceProviderInfo > list = new ArrayList <ServiceProviderInfo >();
55
63
56
- String sql = "SELECT * from SERVICE_PROVIDER WHERE NAME = " + serviceName + ";" ;
64
+ String sql = "SELECT * from SERVICE_PROVIDER WHERE NAME = ' " + serviceName + "' ;" ;
57
65
ResultSet rs = conn .createStatement ().executeQuery (sql );
58
66
while (rs .next ()) {
59
67
list .add (new ServiceProviderInfo (rs .getString ("IP" ), rs .getInt ("PORT" ), rs .getString ("NAME" ),
@@ -66,7 +74,7 @@ public ServiceProviderInfo[] getAllServer(Connection conn, String serviceName) t
66
74
@ Override
67
75
public ServiceInfo <?> getServiceInfo (Connection conn , String serviceName )
68
76
throws SQLException , ClassNotFoundException {
69
- String sql = "SELECT * from SERVICE WHERE NAME = " + serviceName + "" ;
77
+ String sql = "SELECT * from SERVICE WHERE NAME = ' " + serviceName + "' " ;
70
78
ResultSet rs = conn .createStatement ().executeQuery (sql );
71
79
if (!rs .next ())
72
80
return null ;
@@ -116,12 +124,12 @@ public ServiceInfo<?> getServiceInfo(Connection conn, int serviceId) throws SQLE
116
124
117
125
@ Override
118
126
public boolean registerServiceProvider (Connection conn , ServiceInfo <?> service , ServiceProviderInfo provider ) {
119
- String sql = "INSERT INTO SERVICE_PROVIDER (SID, URL, PORT) VALUES (" + service .getId () + "" + provider .getIp ()
120
- + "" + provider .getPort () + ");" ;
121
- ResultSet rs ;
127
+ String sql = "INSERT INTO SERVICE_PROVIDER (SID, URL, PORT) VALUES (" + service .getId () + ",'"
128
+ + provider .getIp () + "'," + provider .getPort () + ");" ;
122
129
try {
123
- rs = conn .createStatement ().executeQuery (sql );
124
- rs .getStatement ().close ();
130
+ Statement stmt = conn .createStatement ();
131
+ stmt .executeUpdate (sql );
132
+ stmt .close ();
125
133
} catch (SQLException e ) {
126
134
e .printStackTrace ();
127
135
return false ;
@@ -131,12 +139,12 @@ public boolean registerServiceProvider(Connection conn, ServiceInfo<?> service,
131
139
132
140
@ Override
133
141
public boolean removeServiceProvider (Connection conn , ServiceInfo <?> service , ServiceProviderInfo provider ) {
134
- String sql = "DELETE FROM TABLE SERVICE_PROVIDER WHERE URL = " + provider .getIp () + " and PORT="
142
+ String sql = "DELETE FROM TABLE SERVICE_PROVIDER WHERE URL = ' " + provider .getIp () + "' and PORT="
135
143
+ provider .getPort () + ";" ;
136
- ResultSet rs ;
137
144
try {
138
- rs = conn .createStatement ().executeQuery (sql );
139
- rs .getStatement ().close ();
145
+ Statement stmt = conn .createStatement ();
146
+ stmt .executeUpdate (sql );
147
+ stmt .close ();
140
148
} catch (SQLException e ) {
141
149
e .printStackTrace ();
142
150
return false ;
0 commit comments