----------根据sql和条件-----------
package fozzz;
import java.util.Vector;
public class myTest {
public static void main(String[] args) {
String sql = "select sc.sno,s.sname,sc.grade from student s " + "INNER JOIN sc on s.sno=sc.sno "
+ "INNER JOIN course c on c.courseid=sc.courseid " + "where c.cname=? and sc.grade>?";
Vector<Object> vector = new Vector<Object>();
vector.add("取经");
vector.add(40);
Select select = new Select(sql, vector);
Vector<Vector<Object>> result = select.getResult();
System.out.println(result);
}
}
-----------连接工厂----------
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MyConnection {
public Connection getConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://192.168.1.199/my", "root", "root");
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}
----------连接数据库-----------
package fozzz;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import util.MyConnection;
public class Select {
private Vector<Vector<Object>> result;
public Select(String sql, Vector<Object> vector2) {
int member = sql.split(" ")[1].split(",").length;
Connection connection = new MyConnection().getConnection();
try {
PreparedStatement prepareStatement = connection.prepareStatement(sql);
for (int i = 0; i < vector2.size(); i++) {
prepareStatement.setObject(i + 1, vector2.get(i));
}
ResultSet rs = prepareStatement.executeQuery();
result = new Vector<Vector<Object>>();
while (rs.next()) {
Vector<Object> vector = new Vector<>();
for (int j = 0; j < member; j++) {
vector.add(rs.getObject(1 + j));
}
result.add(vector);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public Vector<Vector<Object>> getResult() {
return result;
}
}