Java 如何显示用户';这张桌子和另一张一起吗?
我正在做一个论坛,现在我有了这张桌子。请看这里: 此表供用户使用:Java 如何显示用户';这张桌子和另一张一起吗?,java,mysql,sql,database,jsp,Java,Mysql,Sql,Database,Jsp,我正在做一个论坛,现在我有了这张桌子。请看这里: 此表供用户使用: create table if not exists login_system( user_id INT NOT NULL auto_increment, email VARCHAR(100) NOT NULL, password VARCHAR(100) NOT NULL, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, gender VAR
create table if not exists login_system(
user_id INT NOT NULL auto_increment,
email VARCHAR(100) NOT NULL,
password VARCHAR(100) NOT NULL,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
gender VARCHAR(50) NOT NULL,
about_yourself VARCHAR(150) NOT NULL,
my_website VARCHAR(100000) NOT NULL,
PRIMARY KEY(user_id)
);
此表用于回答以下问题:
create table if not exists thread_question(
question_id INT NOT NULL auto_increment,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
question_title VARCHAR(500) NOT NULL,
question VARCHAR(100000) NOT NULL,
question_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(question_id)
);
如果用户发布问题,我想显示一个用户链接。它必须假设在悬停在人名上之后提供链接。以便其他人可以看到他/她的个人资料信息
我可以通过以下方式简单地将一些问题带到论坛中:
<%
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/forum", "root", "1234");
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from thread_question where question_id="+question_id);
while(rs.next()){
String first_name=rs.getString("first_name");
String last_name=rs.getString("last_name");
String thread_title=rs.getString("question_title");
String thread_question=rs.getString("question");
String thread_dateTime=rs.getString("question_dateTime");
...
...
...
%>
现在我的愿望是显示login\u系统的表
以及question的表
,您很清楚我们不能在这里创建两个语句。所以请帮助我。。我想从login\u system
表中获取user\u id
,在该表中,我可以通过单击链接轻松显示他/她的个人资料。你能帮帮我吗?如何做到这一点?您的方法存在各种问题。首先,正如所评论的,您不应该将连接代码直接放入JSP中。其次,由于SQL注入的风险,不应该通过连接字符串来创建语句。确保您理解这意味着什么,并使用PreparedStatement
要最终回答您的问题,而不是在thread\u question
表中有名字和姓氏,您应该在login\u system
表中有一个id外键,然后在SQL语句中使用join。我想如果我将逐字记录解决方案粘贴到这里,对您不会有多大帮助。您的方法存在各种问题。首先,正如所评论的,您不应该将连接代码直接放入JSP中。其次,由于SQL注入的风险,不应该通过连接字符串来创建语句。确保您理解这意味着什么,并使用PreparedStatement
要最终回答您的问题,而不是在thread\u question
表中有名字和姓氏,您应该在login\u system
表中有一个id外键,然后在SQL语句中使用join。我想如果我将逐字记录解决方案粘贴到这里,对您不会有多大帮助。您的方法存在各种问题。首先,正如所评论的,您不应该将连接代码直接放入JSP中。其次,由于SQL注入的风险,不应该通过连接字符串来创建语句。确保您理解这意味着什么,并使用PreparedStatement
要最终回答您的问题,而不是在thread\u question
表中有名字和姓氏,您应该在login\u system
表中有一个id外键,然后在SQL语句中使用join。我想如果我将逐字记录解决方案粘贴到这里,对您不会有多大帮助。您的方法存在各种问题。首先,正如所评论的,您不应该将连接代码直接放入JSP中。其次,由于SQL注入的风险,不应该通过连接字符串来创建语句。确保您理解这意味着什么,并使用PreparedStatement
要最终回答您的问题,而不是在thread\u question
表中有名字和姓氏,您应该在login\u system
表中有一个id外键,然后在SQL语句中使用join。我想,如果我将逐字解决方案粘贴到这里,对您不会有多大帮助。首先,请跟随带有“无”名称的提示的horse\u,出于安全原因,不要将SQL代码放入JSP页面
另外,请修改你的语法/拼写,因为你的问题很难理解
另一件事是,您需要阅读有关规范化数据库结构的内容
我很清楚,如果愿意,您可以创建多个sql语句,这只是另一个连接,但在这种情况下,您不需要(大多数情况下)
将您的问题表更改为此
create table if not exists thread_question(
question_id INT NOT NULL auto_increment,
user_id id INT NOT NULL,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
question_title VARCHAR(500) NOT NULL,
question VARCHAR(100000) NOT NULL,
question_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(question_id)
);
看起来您想要的SQL是这样的
SELECT
LS.FIRST_NAME,
LS.LAST_NAME,
TQ.question_title,
TQ.question,
TQ.question_dateTime
FROM
login_system as LS
JOIN thread_question as TQ ON
LS.user_id = TQ.user_id
首先,跟随一匹没有名字的马,出于安全原因,不要将SQL代码放入JSP页面
另外,请修改你的语法/拼写,因为你的问题很难理解
另一件事是,您需要阅读有关规范化数据库结构的内容
我很清楚,如果愿意,您可以创建多个sql语句,这只是另一个连接,但在这种情况下,您不需要(大多数情况下)
将您的问题表更改为此
create table if not exists thread_question(
question_id INT NOT NULL auto_increment,
user_id id INT NOT NULL,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
question_title VARCHAR(500) NOT NULL,
question VARCHAR(100000) NOT NULL,
question_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(question_id)
);
看起来您想要的SQL是这样的
SELECT
LS.FIRST_NAME,
LS.LAST_NAME,
TQ.question_title,
TQ.question,
TQ.question_dateTime
FROM
login_system as LS
JOIN thread_question as TQ ON
LS.user_id = TQ.user_id
首先,跟随一匹没有名字的马,出于安全原因,不要将SQL代码放入JSP页面
另外,请修改你的语法/拼写,因为你的问题很难理解
另一件事是,您需要阅读有关规范化数据库结构的内容
我很清楚,如果愿意,您可以创建多个sql语句,这只是另一个连接,但在这种情况下,您不需要(大多数情况下)
将您的问题表更改为此
create table if not exists thread_question(
question_id INT NOT NULL auto_increment,
user_id id INT NOT NULL,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
question_title VARCHAR(500) NOT NULL,
question VARCHAR(100000) NOT NULL,
question_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(question_id)
);
看起来您想要的SQL是这样的
SELECT
LS.FIRST_NAME,
LS.LAST_NAME,
TQ.question_title,
TQ.question,
TQ.question_dateTime
FROM
login_system as LS
JOIN thread_question as TQ ON
LS.user_id = TQ.user_id
首先,跟随一匹没有名字的马,出于安全原因,不要将SQL代码放入JSP页面
另外,请修改你的语法/拼写,因为你的问题很难理解
另一件事是,您需要阅读有关规范化数据库结构的内容
我很清楚,如果愿意,您可以创建多个sql语句,这只是另一个连接,但在这种情况下,您不需要(大多数情况下)
将您的问题表更改为此
create table if not exists thread_question(
question_id INT NOT NULL auto_increment,
user_id id INT NOT NULL,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
question_title VARCHAR(500) NOT NULL,
question VARCHAR(100000) NOT NULL,
question_dateTime VARCHAR(100) NOT NULL,
PRIMARY KEY(question_id)
);
看起来您想要的SQL是这样的
SELECT
LS.FIRST_NAME,
LS.LAST_NAME,
TQ.question_title,
TQ.question,
TQ.question_dateTime
FROM
login_system as LS
JOIN thread_question as TQ ON
LS.user_id = TQ.user_id
遵循Shifty解决方案,如果您不想加入表,那么还有一个解决方案,即
1.火警查询