JDBC操作MySQL :
如果需要将查询的结果输出来必须要用List<类名>来储存;
sql语句:String sql="select * from movie where name like ?";
public List<Movie> searchMovie(String partName){
List<Movie> list=new ArrayList<>();
//String sql="select * from movie where name like '%"+partName+"% '";//查找名含partName的电影;
String sql1="select * from movie where name like ?";
//String sql="select * from movie where name like '% ? %' ";//查找名含partName的电影;
Connection conn=null;//连接初始化;
PreparedStatement psts=null;//预编译初始化;
ResultSet rs=null; //结果集初始化;
try {
conn= DBUtil.getConn();//开始连接;
psts=conn.prepareStatement(sql1);//预编译sql语句;
psts.setObject(1,"%"+partName+"%"); //设置sql语句中的未知变量;
rs=psts.executeQuery();//更新MySQL;
//如果rs变化了,说明查找到了本个或下一个,表名存在;return true;
//把结果集rs中的输出拿出来;
while(rs.next()){
int movie_id=rs.getInt("movie_id");
String name=rs.getString("name");
String staring=rs.getString("staring");
String detail=rs.getString("detail");
int duration=rs.getInt("duration");
String type=rs.getString("type");
int score=rs.getInt("score");
Movie mov=new Movie(movie_id,name,staring,detail,duration,type,score);
list.add(mov);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.closeAll(rs,psts,conn);
//关闭所有的方法,先关结果集,再关预编译,最后关连接;
}
return list;
}
如果要遍历,还需要写一个增强for循环的输出语句,(也可以写别的输出语句);
for (Movie m:list){ System.out.println(m); }