如何在jsp(java服务器页面)中使用mysql的最后一个\u insert\u id()

如何在jsp(java服务器页面)中使用mysql的最后一个\u insert\u id(),java,javascript,mysql,jsp,Java,Javascript,Mysql,Jsp,我想把mysql的last\u insert\u id()带到jsp中,它应该保存在一个特定的变量中,以便我可以在其他表中使用该值。我在stackoverflow中已经给出的查询的帮助下进行了尝试,但返回了一个值0。我已经使用了别名概念来引入值,但它仍然不起作用。有人能帮我解决这个问题吗?提前谢谢。 这是我的密码 Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:m

我想把
mysql
last\u insert\u id()
带到
jsp
中,它应该保存在一个特定的变量中,以便我可以在其他表中使用该值。我在
stackoverflow
中已经给出的查询的帮助下进行了尝试,但返回了一个值
0
。我已经使用了
别名
概念来引入值,但它仍然不起作用。有人能帮我解决这个问题吗?提前谢谢。 这是我的密码

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sairam", "root", "root");
Statement S=con.createStatement();
ResultSet rs=S.executeQuery("select last_insert_id(),student_name,date_of_admission from student");
%>
<th>Student Id</th>
<th>Student Name</th>
<th>Date of admission</td>
</tr>
<%
while(rs.next())
{
    %>
    <tr>
    <td><%=rs.getString(1) %></td>
    <td><%=rs.getString(2) %></td>
    <td><%=rs.getString(3) %></td>



<%
}
%>
Class.forName(“com.mysql.jdbc.Driver”);
Connection con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/sairam“,”根“,”根“);
语句S=con.createStatement();
ResultSet rs=S.executeQuery(“选择上次插入id()、学生姓名、学生入学日期”);
%>
学生证
学名
入院日期

这是我的新代码:

<form method="post" name="Coursedetails">
    <center><br><h1>COURSE DETAILS</h1></br></center>    
            <table border="1" align="center" bgcolor="white">
<body>
<%
String cn=request.getParameter("course_name");
String cr=request.getParameter("credits");
String pl=request.getParameter("place");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sairam", "root", "root");
Statement S=con.createStatement();
String sql="insert into course(course_name,credits,place) values('"+cn+"','"+cr+"','"+pl+"')";
S.executeUpdate(sql);
 %>

<%
PreparedStatement pst1=con.prepareStatement("select last_insert_id() from course");
ResultSet rs=pst1.executeQuery();
%>
<tr>
<th>course_id</th>
</tr>
<%
while(rs.next())
{
    %>
    <tr>
    <td><%=rs.getInt(1) %></td>
 <%
}
%>
</table>
        </tr>
          <table border="1" align="center" bgcolor="white">
  <% 
  PreparedStatement pst2=con.prepareStatement("select course_name,credits,place from course");
  ResultSet rs1=pst2.executeQuery();
    %>
    <tr>
 <td>course_name</td>
<td>credits</td>
<td>place</td>
</tr>
<%
while(rs1.next())
{
    %>
    <tr>
    <td><%=rs1.getString(1) %></td>
    <td><%=rs1.getString(2) %></td>
    <td><%=rs1.getString(3) %></td>

    <%
}
%>
</table>


    </form>
    </body>


课程详情
课程号 课程名称 信用 地方

此代码为表中的所有记录返回相同的课程id

您的需求目的不完整
last\u insert\u id()
仅在同一SQL
连接
会话中执行
insert
时有效。除非没有插入,否则它将返回一个
。如果您真的想在任何其他表中存储最后一个insert id,最好在表上的insert触发器之后使用
。在同一触发器中调用
last\u insert\u id();因此,您不需要显式地选择它。谢谢您的帮助,先生,但当我尝试此操作时,它将返回表中所有学生id列的
相同id(值)
。这些是我的
sql查询
,我想通过
jsp
中的不同页面执行它们,但我无法执行。
插入学生(学生姓名)值('sachin');选择last_insert_id();设置@a=last_insert_id();插入课程(学分,课程名称)值('3','capstone');选择last_insert_id();设置@b=last_insert_id();插入教员(教员姓名)值('bernard');选择last_insert_id();设置@c=last_insert_id();插入课堂(教员id、课程id、学期、日期、时间)值(@c、@b、'2015年春季'、'周五'、'5.30pm');选择最后一次插入id();设置@g=最后一次插入id();插入年级(学生id、班级id、年级)值(@a、@g、'c');