我想对我编写的这段代码提供一些帮助。
想法是在扫描仪中输入用户名'nomU'(例如xx),并使用此用户名,程序将在我的数据库中搜索并带来与此用户名关联的所有'pref'。表名为'usermodel'。
try {
Scanner sc = new Scanner(System.in);
System.out.println("Veuillez saisir un mot :");
String str = sc.nextLine();
Statement stmt2 = null;
String query2 = "SELECT pref FROM usermodel WHERE nomU =" + str + "";
stmt2 = connexion.createStatement();
ResultSet resultat2 = stmt2.executeQuery(query2);
while (resultat2.next()) {
String pref = (String) resultat2.getString("pref");
System.out.println("l' element , " + pref + ",est une préférence de l'utilisateur " + str + " .");
}
} catch (SQLException e) {
}
这是表“usermodel”的样子
id nomU pref
-------------------------
1 xx adblock
-------------------------
2 yy grammarly
-------------------------
3 xx avast
------------------------
所以nomU = xx的结果应该是(adblock和avast) 但它不起作用,当我输入用户名时没有任何反应, 我必须指出连接和一切都完好无损。
非常感谢你的帮助。
答案 0 :(得分:1)
字符串应该在String query = "SELECT pref FROM usermodel WHERE nomU = ?";
try (PreparedStatement prstm = connection.prepareStatement(query)){
prstm.setSting(str);//set your input the query
ResultSet resultat2 = prstm.executeQuery(query2);
while (resultat2.next()) {
String pref = (String) resultat2.getString("pref");
System.out.println("l' element , " + pref + ",est une préférence de l'utilisateur " + str + " .");
}
}
之间,但我不建议使用这种方式,这会导致语法错误或SQL注入,而你必须使用PreparedStatement:
// Code borrowed heavily from the OpenCV samples
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/core/utility.hpp>
#include <opencv2/videoio.hpp>
#include <cctype>
#include <stdio.h>
#include <string.h>
#include <time.h>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
// Command line argument parsing
cv::CommandLineParser parser(argc, argv,
"{help h usage ?| | print this message }"
"{@vid_name | | video file }"
"{@frame_num | 0 | start frame }"
"{@frame_count | 100 | frames to extract }"
);
if (parser.has("help"))
{
parser.printMessage();
return 0;
}
string inputFilename = parser.get<string>("@vid_name");
int frameNumber = parser.get<int>("@frame_num");
int frameCount = parser.get<int>("@frame_count");
if (!parser.check())
{
parser.printMessage();
parser.printErrors();
return -1;
}
// Open video
VideoCapture capture;
capture.open(inputFilename);
if ( !capture.isOpened() )
{
fprintf(stderr, "Failed to open video\n");
return -1;
}
double fps = capture.get(CV_CAP_PROP_FPS);
size_t width = (size_t)capture.get(CV_CAP_PROP_FRAME_WIDTH);
size_t height = (size_t)capture.get(CV_CAP_PROP_FRAME_HEIGHT);
Size imgSz(width,height);
size_t totalFrames = (size_t)capture.get(CV_CAP_PROP_FRAME_COUNT);
// Open output video files
VideoWriter vidwriter;
int codec = CV_FOURCC('M', 'J', 'P', 'G');
vidwriter.open("clip.avi", codec, fps, imgSz, true);
if ( !vidwriter.isOpened() )
{
fprintf(stderr, "Could not open an output video file for write\n");
return -1;
}
// Extract subset of frames
Mat frame;
capture.set(CV_CAP_PROP_POS_FRAMES, frameNumber);
for (int frameInd = frameNumber; frameInd < frameNumber+frameCount; ++frameInd)
{
capture >> frame;
if ( frame.empty() )
break;
vidwriter.write(frame);
}
capture.release();
printf("Success.\n");
return 0;
}