如何在JS中写点击一个按钮,修改SQL数据库中VALUES的值,并插入当前日期与时间到后台数据库中

如何在JS中写点击一个按钮,修改SQL数据库中VALUES的值,并插入当前日期与时间到后台数据库中中的ENDDATE和ENDTIME两个字段中。

4个回答

插入当前日期与时间到后台数据库中中的ENDDATE和ENDTIME两个字段中可以使用数据库的触发器。至于修改values值的话,用表单来操作就好

感觉这种表不多,在表上建个出发器方便点

表单提交就行了,不想刷新就用ajax来请求服务器
http://www.w3school.com.cn/jquery/ajax_ajax.asp

@无聊码农 是不是方法参数是VALUES,ENDDATE,ENDTIME? 方法体该怎么写?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
单选按钮值未存储在数据库中

<div class="post-text" itemprop="text"> <p>I created a radio button in which when user click on yes value then text box is shown to user otherwise they remain hide.<br> My question when user select yes then I am able to store yes value in sql but when user click on no value that value is not stored in datbase</p> <pre class="lang-html prettyprint-override"><code>&lt;script&gt; $(document).ready(function(){ $(function() { $('input[name="yeshave"]').on('click', function() { if ($(this).val() == 'yes') { $('#textboxes').show(); } else { $('#textboxes').hide(); } }); }); }); &lt;/script&gt; </code></pre> <p>no radio button code:</p> <pre class="lang-html prettyprint-override"><code>&lt;table&gt; &lt;tr&gt; &lt;td&gt;Do you haver passport:&lt;/td&gt; &lt;td&gt;&lt;input type="radio" name="yeshave" value="yes"&gt; Yes&lt;/td&gt; &lt;td&gt;&lt;input type="radio" name="yeshave" value="no"&gt; No&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; </code></pre> <p>SQL code is:</p> <pre class="lang-php prettyprint-override"><code>if(isset($_POST['yeshave'])) { $selectedValue=$_POST['yeshave']; } $query = "INSERT INTO upload (name, size, type, image,passport_no,dateofissue,dateofexpiry,placeofissue, having_passport ) ". "VALUES ('$fileName', '$fileSize', '$fileType', '$image','".$passno."','".$doi."','".$doe."','".$poi."','".$selectedValue."')"; mysqli_query($conn,$query) or die('Error, query failed'); </code></pre> </div>

jsp页面提交后如何将信息传到另一个jsp页面并将数据存储到数据库

这是第一个页面,由一个下拉列表和一个复选框组成 ``` <form action="ProcessAis.jsp" method="post" onsubmit="return check(this);"> <table align="center" width="450"> <tr> <td> <h2>船舶检测项</h2> </td> </tr> <tr> <td><b>船舶名称</b></td> </tr> <tr> <td> <select name="dId" id="dId" class="selectpicker bla bla bli" data-live-search="true" size="1"> <% List<detection> list = (List<detection>)request.getAttribute("list"); if(list ==null || list.size() < 1){ out.print("没有数据!"); }else{ for(detection dct :list){ %> <option><%=dct.getFI_FisherName()%></option> <% } } %> </select> <tr> <td><input name="AIS" type="checkbox" id="checkid" onchange="changeval()">AIS</td> <tr> <tr> <td><input type="submit" value="提 交"></td> </tr> ``` 这是接收页面 ``` processAis.jsp <script type="text/javascript"> function changevla(){ var check = document.getElementById("checkid"); if(check.checkid == true){ document.getElementById("checkid").value = "1"; }else{ document.getElementById("checkid").value = "2"; } } </script> <% try{ Class.forName("**************"); String url = "*****************"; String username = "******"; String password = "*********"; Connection conn = DriverManager.getConnection(url,username,password); String sql = "insert into newship(FI_FisherName,AIS) values(?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1,dct.getFI_FisherName()); ps.setString(2,document.getElementById("checkid").value); int row = ps.executeUpdate(); if(row >0){ out.print("数据添加成功"); } ps.close(); conn.close(); }catch(Exception e){ out.print("数据添加失败!"); e.printStackTrace(); } %> ``` 下来列表的值是从数据库里读取出来的,目的是将下拉列表的值和复选框的选定情况(选定返回一个值为“1,未选定返回一个值为“2)一起提交到第二个页面,然后再将返回的值存储到数据库中。现在的问题是感觉第一个页面的数据无法传到第二个页面,第二个页面传到数据库里的是空数据。想请问应该如何修改才能达到目的,最好是有详细代码说明,万分感谢。

连接上了数据库,执行了insert动作,但是数据库没有插入的数据

脑袋疼,感觉就是执行了,没有commit。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Oracle.ManagedDataAccess.Client; using System.Data; using System.Configuration; using System.Collections; using System.Web.Security; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using Oracle.ManagedDataAccess.Types; using Oracle.ManagedDataAccess.Client.SqlGen; using System.Windows.Forms; using System.Data.OracleClient; public partial class his_device : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { if (Panel1.Visible == true) { Button1.Text = "Show Search Panel"; Panel1.Visible = false; } else { Button1.Text = "Hide Search Panel"; Panel1.Visible = true; } } protected void btnSearch_Click(object sender, EventArgs e) { //this.HISI_DEVICE.SelectCommand="SELECT * FROM SCC_B2B.HIS_DEVICE WHERE DEVICE_NAME LIKE '" + this.TxtDevice.Text + "%'"; //this.GridView1.DataBind(); using (Oracle.ManagedDataAccess.Client.OracleConnection conn = new Oracle.ManagedDataAccess.Client.OracleConnection()) { conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; string str_sql = "SELECT * FROM SCC_B2B.HIS_DEVICE"; TxtDevice.Text.Replace("'", ""); TxtDevice.Text.Replace(";", ""); if (!TxtDevice.Text.Equals("")) { str_sql = str_sql + " WHERE DEVICE_NAME LIKE '" + TxtDevice.Text + "%'"; } Oracle.ManagedDataAccess.Client.OracleDataAdapter da = new Oracle.ManagedDataAccess.Client.OracleDataAdapter(str_sql, conn); DataSet ds = new DataSet(); da.Fill(ds, "Device"); GridView1.DataSource = ds; GridView1.DataBind(); da.Dispose(); ds.Dispose(); } } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { } protected void GridView1_PageIndexChanging(object sender, EventArgs e) { } protected void Button2_Click(object sender, EventArgs e) { Response.Redirect("../Default.aspx"); } protected void btnInsert_Click1(object sender, EventArgs e) { using (Oracle.ManagedDataAccess.Client.OracleConnection conn = new Oracle.ManagedDataAccess.Client.OracleConnection()) { conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; Oracle.ManagedDataAccess.Client.OracleCommand cmd = new Oracle.ManagedDataAccess.Client.OracleCommand(); conn.Open(); string sql = ("insert into SCC_B2B.HIS_DEVICE (device_name,device_type) values( '"+TxtDevice.Text+"','"+TxtFactory.Text+"')"); conn.Close(); if (TxtDevice.Text == "") { MessageBox.Show("Device_name cannot be null", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (TxtFactory.Text == "") { Response.Write("Device_type cannot be null"); } else { Response.Write("数据添加成功!"); } } } } protected void btnDelete_Click(object sender, EventArgs e) { using (Oracle.ManagedDataAccess.Client.OracleConnection conn = new Oracle.ManagedDataAccess.Client.OracleConnection()) { Oracle.ManagedDataAccess.Client.OracleCommand cmd = new Oracle.ManagedDataAccess.Client.OracleCommand(); conn.Open(); string sql = ("insert into SCC_B2B.HIS_DEVICE (device_name,device_type) values( '" + TxtDevice.Text + "','" + TxtFactory.Text + "')"); int ret = (int)cmd.ExecuteNonQuery(); conn.Close(); if (TxtDevice.Text == "") { MessageBox.Show("Device_name cannot be null", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (TxtFactory.Text == "") { MessageBox.Show("Device_type cannot be null", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (ret > 0) { MessageBox.Show("数据添加成功!"); } else { MessageBox.Show("数据添加失败!"); } } } } } }

将编辑按钮添加到html表中的每一行,以编辑数据库

<div class="post-text" itemprop="text"> <p>I am relatively new to php, and need help with a program i am doing for an internship... on the page i am trying to create, i queried all records in the mysql database, and inserted them into an html table. What i am trying to do, is also add an edit button in a separate column of each row of the table, so the rows can be edited.. i know how to get the button there, but i do not know how i can get the values out of that particular row, into a php variable so i can perform more queries to edit, delete, etc... I have been looking for a couple days, and it looks like it may be possible to do with javascript, but i have never used javascript before, so i do not know what im looking at... help would be much appreciated</p> <p>basically:</p> <pre><code>&lt;html&gt; &lt;table border="1"&gt; &lt;th&gt;Suspended&lt;/th&gt; &lt;th&gt;Device Name&lt;/th&gt; &lt;th&gt;IP&lt;/th&gt; &lt;th&gt;Depend&lt;/th&gt; &lt;th&gt;Email&lt;/th&gt; &lt;?php $sql = "select * from table;" while($row=mysql_fetch_assoc($sql)) { echo "&lt;tr&gt;&lt;td&gt;".$row[0]."&lt;/td&gt;&lt;td&gt;".$row[1]."&lt;/td&gt;&lt;td&gt;".$row[2]."&lt;/td&gt;&lt;td&gt;".$row[3]." &lt;/td&gt;&lt;td&gt;".$row[4]."&lt;/td&gt;&lt;/tr&gt;"; } ?&gt; &lt;/table&gt; &lt;/html&gt; </code></pre> <p>==I have not really tried anything yet for the edit/delete buttons.. i dont really know where to start</p> </div>

单击按钮提交时,数据库中的数据输入两次

<div class="post-text" itemprop="text"> <p>Why when I click on the submit button for the first data it just entered in the database but it is not in the page view. after that click again once the data is entered in the page, but when I check the database, the data is two of the same. how about.</p> <p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code"> <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;?php include 'xx.php'; ?&gt; &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; &lt;form method="post" &gt; &lt;center&gt; &lt;div&gt; &lt;tr&gt; &lt;td&gt; &lt;label&gt;&lt;b&gt;User&lt;/b&gt;&lt;/label&gt; &lt;input type="user" placeholder="User" name="user" required&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/div&gt; &lt;div&gt; &lt;tr&gt; &lt;td&gt; &lt;label&gt;&lt;b&gt;Position&lt;/b&gt;&lt;/label&gt; &lt;input type="position" placeholder="Position" name="position" required&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/div&gt; &lt;div&gt; &lt;tr&gt; &lt;td&gt; &lt;label&gt;&lt;b&gt;Serial Number&lt;/b&gt;&lt;/label&gt; &lt;input type="serial" placeholder="Serial Number" name="serialnumber" required&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/div&gt; &lt;div&gt; &lt;td&gt; &lt;center&gt; &lt;input type="submit" name="send" value="Submit"&gt;&lt;/input&gt;&lt;/center&gt; &lt;/center&gt; &lt;/td&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt; &lt;?php if (isset($_POST['send'])) { $user=$_POST['user']; $position=$_POST['position']; $serialnumber=$_POST['serialnumber']; $xx="INSERT INTO xx (user,position,serialnumber)VALUES('$user','$position','$serialnumber')"; $result=mysqli_query($dbconfig,$sql); echo "&lt;script language='javascript'&gt;window.location.href='xx.php'&lt;/script&gt;"; } ?&gt;</code></pre> </div> </div> </div>

按钮Onclick调用Javascript调用PHP文件,该文件添加到Mysql数据库

<div class="post-text" itemprop="text"> <p>I need help with adding to a database. I want to call a javascript scrt from a button click method. The Javascript Script, I want to call upon a php file which contains some code that adds to a MySQL Database.</p> <p>I literally tried over 20+ website and No help with the stuff.</p> <p>If AJAX would be better Could you help me?</p> <p>The Button Code:</p> <pre><code>&lt;input type="button" value="favorites1" onClick="favfunct();"&gt; </code></pre> <p>The Javascript Code</p> <pre><code>function favfunct() { var target = document.createElement( "script" ); target.setAttribute( "src", "php/addtofavorites.php" ); document.getElementsByTagName( "body" )[0].appendChild( target );` } </code></pre> <p>The Php Code</p> <pre><code>&lt;?php echo "test successful" $con = mysql_connect("localhost","root","student"); if ($_POST["get"] == 'runfunction') echo "Works"; } if ($_POST["action"] == 'favorites1'){ echo "Testing Was Successful" if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("tvid", $con); $sql="INSERT INTO Persons (userid, davorites) VALUES ('1','$_POST[video0]')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo "Your Video was Added To Your Favorites"; mysql_close($con) } ?&gt; </code></pre> </div>

跪求各位大神帮我看看哪错了吧

基于asp.net开发的,数据库是sql server2005.无法将信息添加到数据库中。 添加按钮click事件代码如下: protected void Button1_Click(object sender, EventArgs e) { string sql; sql = "insert into shipinxinxi(mingcheng,leibie,danjia) values('"+mingcheng.Text.ToString().Trim() + "','"+leibie.Text.ToString().Trim() + "','"+danjia.Text.ToString().Trim() + "') "; int result; result = new Class1().hsgexucute(sql); if (result == 1) { Response.Write("<script>javascript:alert('添加成功');</script>"); } else { Response.Write("<script>javascript:alert('系统错误,请检查数据库设置问题');</script>"); } } Class1.cs中代码如下: using System; using System.Data; //using System.Data.OleDb; using System.Data.SqlClient; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; /// <summary> /// Class1 的摘要说明 /// </summary> public class Class1 { //SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["testConnectionString"]); public Class1() { // // TODO: 在此处添加构造函数逻辑 // } // public static string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath("~/App_Data/web.mdb"); public static string connstring = ConfigurationManager.AppSettings["cn"]; //设置连接数据库的代码是webconfig里面的cn那句,即:server=.;database=net05qingongzhuxue;uid=sa;pwd=; public static DataSet GDS(string sql) { //OleDbDataAdapter dap = new OleDbDataAdapter(sql, connstring); SqlDataAdapter dap = new SqlDataAdapter(sql, connstring); DataSet ds = new DataSet(); dap.Fill(ds); return ds; } public static void Dsql(string sql) { // OleDbConnection conn = new OleDbConnection(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = connstring; conn.Open(); // OleDbCommand cmd = new OleDbCommand(sql, conn); SqlCommand cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); conn.Close(); } public int hsgexucute(string sql) //自定义函数:执行sql语句,如果执行成功,返回值1,否则0 { //myConnection.Open(); SqlConnection conn = new SqlConnection(); //定义新数据库连接 conn.ConnectionString = connstring; //设置该新连接字符串是connstr,即上面的webconfig里的cn值 SqlCommand myCommand = new SqlCommand(sql, conn); //设置新执行命令 // SqlCommand cmd = new SqlCommand(sql, conn); try { conn.Open(); //打开数据库连接 myCommand.ExecuteNonQuery(); //执行sql语句 return 1; //执行成功,返回1 } catch { //Console.WriteLine("SqlException:{0}",SQLexc); return 0; //执行失败,返回0 } finally { conn.Close(); //关闭数据库连接 } } 每次点击添加按钮,就会弹出提示框显示'系统错误,请检查数据库设置问题',这是怎么回事呢?

如何将单选按钮的值插入数据库?

<div class="post-text" itemprop="text"> <p>I have this code:</p> <pre><code>&lt;label style="cursor:pointer;"&gt;&lt;input type="radio" name="rads" value="'.$correct.'" id = "radio"&gt;'.$answer.'&lt;/label&gt; &lt;button onclick="myFunction()"&gt;Value&lt;/button&gt;'; </code></pre> <p>where $correct is a row in my database that shows if a question is correct or wrong and has a value of either 1 or 0<code> ($correct = $row['correct']</code> <img src="https://i.stack.imgur.com/wNyJq.png" alt="enter image description here"></p> <p>I'm trying to increment data in another table in the database anytime a user clicks on a radio button. <img src="https://i.stack.imgur.com/Wa0Gp.png" alt="enter image description here"></p> <p>For example, if a question is wrong the value will be '0' and when a user clicks on it, the 'wrong' row will be incremented and vice-versa. </p> <p>I tried using PHP to insert the values:</p> <pre><code>$vote = isset($_GET['rads']); if($vote == 1){ $sql = mysqli_query($connection, "UPDATE stats SET question_id='$question_id', correct=correct + 1, wrong=0") ; } elseif($vote == 0) { $sql = mysqli_query($connection, "UPDATE stats SET question_id='$question_id', correct=0, wrong=wrong + 1") ; } </code></pre> <p>but only the 'wrong' column was incrementing. I tried using js to print out the value of the selected radio button:</p> <pre><code>&lt;p id =" demo"&gt;&lt;/p&gt; &lt;script&gt; function myFunction() { var x = document.getElementById("radio").value; document.getElementById("demo").innerHTML = x; } &lt;/script&gt; </code></pre> <p>But nothing appeared when I clicked the button. I also tried:</p> <pre><code>var try = document.getElementsByName('rads'); for (var i = 0, len = try.length; i &lt; length; i++) { if (try[i].checked == 0) { // increment wrong in db else if (try[i].checked == 1){ //increment correct in db } break; } </code></pre> <p>I'm not really sure what to do anymore. Sorry if I'm not clear.</p> </div>

弹出显示数据库中的条目列表,以便在按下编辑按钮时进行选择

<div class="post-text" itemprop="text"> <p>i am trying to design maintenance requisition form that is able to add, view, edit, delete data to and from a database table. im at a point of configuring the edit &amp; view buttons. I want it to be able to fetch all requisitions saved in the database and show list in a pop up. I also want to be able to click on either data in the list and have all details show in the requisition form. From there, i want to be able to edit details and save again.</p> <p>problem: i have searched the forums and have failed to get a starting point on how to do this. You guys helped with the session part and believed i could come back for help.</p> <p>here is my code:</p> <p>requisitionform.php</p> <pre><code>&lt;?php include("session.php");//include session to know logged in user //check if submit button has been pressed if(isset($_POST['submit'])){ //make a connection to server and database include("DBconnect.php"); //define variables $area_of_use=$_POST["area_of_use"]; $machine_name=$_POST["machine_name"]; $machine_code=$_POST["machine_code"]; $area=$_POST["area"]; $type=$_POST["type"]; $priority=$_POST["priority"]; $description=$_POST["description"]; $deadline=$_POST["deadline"]; //Save data into database $sql="INSERT INTO requisition_table ( reqNo,RequestingDepartment,MachineName, MachineCode,ForwardArea,MaintType,MaintPriority, ProblemDescription,Deadline,RequestedBy,ReqDate) VALUES (default,'$area_of_use','$machine_name', '$machine_code','$area','$type','$priority', '$description','$deadline','$login_session',now())"; $result=mysqli_query($con, $sql); } ?&gt; &lt;!DOCTYPE html&gt; &lt;head&gt; &lt;title&gt;ZEKOmaint&lt;/title&gt; &lt;style&gt; button { width:1.8cm; align:center; } .2{ align:center; } &lt;/style&gt; &lt;?php require "disablerequestform.php"; require "onchange.php"; require "req.php"; ?&gt; &lt;script src='https://code.jquery.com/jquery-2.1.3.min.js'&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;?php if(isset($_POST['submit'])){ if ($result) { echo "&lt;script type='text/javascript'&gt;alert('submitted successfully!') &lt;/script&gt;"; } else { echo "&lt;script type='text/javascript'&gt;alert('failed!')&lt;/script&gt;"; } } ?&gt; &lt;fieldset style="width:19cm;"&gt; &lt;legend&gt;&lt;b&gt;Maintenance Requistion&lt;/b&gt;&lt;/legend&gt; &lt;fieldset id="2"&gt; &lt;button onclick="grayer('request',false);"&gt;ADD&lt;/button&gt; &lt;button&gt;VIEW&lt;/button&gt; &lt;button&gt;EDIT&lt;/button&gt; &lt;button&gt;DEL&lt;/button&gt; &lt;input type="submit" name="submit" form="requestform" value="SAVE"&gt; &lt;button onclick="document.location.href='requisitionform.php'"&gt;CANC&lt;/button&gt; &lt;button onclick="document.location.href='logout.php'"&gt;EXIT&lt;/button&gt; &lt;button&gt;PRINT&lt;/button&gt; &lt;/fieldset&gt; &lt;br /&gt; &lt;form id= "requestform" action="requisitionform.php" method="POST"&gt; &lt;div id="request"&gt; &lt;table id="table1"&gt; &lt;tr&gt;&lt;td&gt;Requisition No.&lt;/td&gt;&lt;td&gt; &lt;input type="int" name="req" size="10" id="req"&gt;&lt;/td&gt; &lt;td&gt;Requisition Date:&lt;/td&gt;&lt;td&gt;&lt;input type="date" name="date" size="10" value="&lt;?php echo date('d-m-Y');?&gt;"&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Requesting Department: &lt;/td&gt;&lt;td&gt; &lt;select class="form-control" name="area_of_use" id='area_of_use' required&gt; &lt;option value="" selected&gt;&lt;/option&gt; &lt;option value="Wire Galvanizing"&gt;Wire Galvanising&lt;/option&gt; &lt;option value="Wire Drawing"&gt;Wire Drawing&lt;/option&gt; &lt;option value="Barbed Wire"&gt;Barbed Wire&lt;/option&gt; &lt;option value="Utilities"&gt;Utlities&lt;/option&gt; &lt;/select&gt; &lt;/td&gt; &lt;td&gt;Forward to Area: &lt;/td&gt;&lt;td&gt;&lt;select name="area" required&gt; &lt;option value="" selected&gt;&lt;/option&gt; &lt;option value="Maintenance"&gt;Maintenance&lt;/option&gt; &lt;/select&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Machine Name:&lt;/td&gt; &lt;td&gt;&lt;select name="machine_name" id="machine_name" class="form-control" required&gt; &lt;/select&gt; &lt;script src='fetch.js'&gt;&lt;/script&gt; &lt;/td&gt; &lt;td&gt;Maintenance type:&lt;/td&gt;&lt;td&gt;&lt;select name="type" required&gt; &lt;option value="" selected&gt;&lt;/option&gt; &lt;option value="Preventive"&gt; Preventive&lt;/option&gt; &lt;option value="Corrective"&gt;Corrective&lt;/option&gt; &lt;option value="Breakdown"&gt;Breakdown&lt;/option&gt; &lt;/select&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Machine Code:&lt;/td&gt;&lt;td&gt;&lt;select name="machine_code" id = "machine_code" required&gt;&lt;/select&gt; &lt;/td&gt; &lt;script src='fetch2.js'&gt;&lt;/script&gt; &lt;td&gt;Maintenance Priority:&lt;/td&gt;&lt;td&gt;&lt;select name="priority" required&gt; &lt;option value="" selected&gt;&lt;/option&gt; &lt;option value="High" &gt; High&lt;/option&gt; &lt;option value="Moderate"&gt;Moderate&lt;/option&gt; &lt;option value="Low"&gt;Low&lt;/option&gt; &lt;/select&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; &lt;table id="table2"&gt; &lt;tr&gt;&lt;td&gt;Problem Description:&lt;/td&gt; &lt;td&gt;&lt;textarea rows="2" cols="73" name="description" required="required"&gt; &lt;/textarea&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br&gt; &lt;tr&gt;&lt;td&gt;Deadline Time: &lt;/td&gt; &lt;td&gt;&lt;input type="text" name="deadline" required&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br&gt; &lt;tr&gt;&lt;td&gt;Cancel Remarks:&lt;/td&gt; &lt;td&gt; &lt;textarea rows="1" cols="73" name="cancel"&gt;&lt;/textarea&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br&gt; &lt;/table&gt; Requested by:&lt;input type="text" name="asked" value="&lt;?php echo $login_session;?&gt;"&lt;br&gt; Approved by:&lt;input type="button" name="authorise" value="Authorise"&gt;&lt;input type="text" name="approve"&gt; &lt;/div&gt; &lt;/form&gt; &lt;/fieldset&gt; &lt;/body&gt; &lt;/fieldset&gt; &lt;/html&gt; </code></pre> <p>disablerequestform.php</p> <pre><code>&lt;script type="text/javascript"&gt; function grayer(formId, yesNo) { var f = document.getElementById(formId), s, opacity; s = f.style; opacity = yesNo? '40' : '100'; s.opacity = s.MozOpacity = s.KhtmlOpacity = opacity/100; s.filter = 'alpha(opacity='+opacity+')'; for(var i=0; i&lt;f.length; i++) f[i].disabled = yesNo; } window.onload=function(){grayer('request',true);}; // disabled by default &lt;/script&gt; </code></pre> <p>req.php</p> <pre><code>&lt;?php require 'DBconnect.php'; $sql = 'SELECT * FROM machines_table'; // Prepare the statement. $statement = mysqli_prepare($con, $sql); // Execute the statement. mysqli_stmt_execute($statement); // Get the result set from the prepared statement. $result = mysqli_stmt_get_result($statement); // Fetch the data and save it into an array for later use. $details = mysqli_fetch_all($result, MYSQLI_ASSOC); // Free the memory associated with the result. mysqli_free_result($result); // Close the prepared statement. It also deallocates the statement handle. mysqli_stmt_close($statement); ?&gt; </code></pre> <p>onchange.php</p> <pre><code>&lt;script src="https://code.jquery.com/jquery-3.2.1.min.js" type="text/javascript"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; $(document).ready(function () { $('#machinecode').change(function (event) { var machine = $(this).val(); if (machine === 'Select') { $('#machinename').val(''); } else { $.ajax({ method: 'get', dataType: 'json', url: 'getinforeq.php', data: { 'machine': machine }, success: function (response, textStatus, jqXHR) { if (!response) { alert('No client data found.'); } else { $('#machinename').val(response.machinename); } }, error: function (jqXHR, textStatus, errorThrown) { alert('An error occurred. Please try again.'); }, cmplete: function (jqXHR, textStatus) { //... } }); } }); }); &lt;/script&gt; </code></pre> <p>Thank you.</p> </div>

简单逻辑问题:注册的时候如果两次输入密码不同还是会提交from表单

``` function login1(){ var name=document.getElementById("name").value; var pwd=document.getElementById("pwd").value; var vri=document.getElementById("verify").value; var code=document.getElementById("code").innerHTML; var againpwd=document.getElementById("againpwd").value; if(vri==code){ if(name=="" || pwd==""){ alert("登录名和密码不能为空,请输入"); return false; if(pwd!=againpwd){ alert("两次输入密码不同"); return false; } } }else{ alert("验证码不正确"); return false; } } ``` 注册的时候如果两次输入密码不同还是会提交from表单 自己是在时找不出问题,求大神解答下 12.28更新整个页面代码 ``` <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>游戏公园 - 注册页面</title> <link rel="stylesheet" href="Public/Home/css/index.css" type="text/css"></link> <script> function code(){ var str="qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPLKJHGFDSAZXCVBNM"; var str1=0; for(var i=0; i<4;i++){ str1+=str.charAt(Math.floor(Math.random()*62)) } str1=str1.substring(1) document.write("<span onClick='code()' id='code' style='display: inline-block; width: 100px;height: 46px;vertical-align: middle;background-color: black;font-size: 25px;color: #fff;text-align: center;line-height: 46px'>"+str1+"</span>"); } function bg(){ document.getElementById("name").style.backgroundColor="#EEE"; } function bbg(){ document.getElementById("name").style.backgroundColor="#FFF"; } function bg1(){ document.getElementById("pwd").style.backgroundColor="#EEE"; } function bbg1(){ document.getElementById("pwd").style.backgroundColor="#FFF"; } function bg2(){ document.getElementById("verify").style.backgroundColor="#EEE"; } function bbg2(){ document.getElementById("verify").style.backgroundColor="#FFF"; } function login1(){ var name=document.getElementById("name").value; var pwd=document.getElementById("pwd").value; var vri=document.getElementById("verify").value; var code=document.getElementById("code").innerHTML; var againpwd=document.getElementById("againpwd").value; if(vri==code){ if(name=="" || pwd==""){ alert("登录名和密码不能为空,请输入"); return false; if(pwd!=againpwd){ alert("两次输入密码不同"); return false; } } }else{ alert("验证码不正确"); return false; } } </script> </head> <body> <header> <div href="../../index.jsp" class="logo" style="background:url('Public/Home/img/logo1.png');width:180px;height:60px;no-repeat;padding-right:5px"></div> <div class="desc">欢迎注册</div> </header> <section> <form method="post" action="control/register.jsp" onSubmit="return login1()"> <div class="register-box"> <label for="username" class="username_label">用 户 名 <input maxlength="20" type="text" id="name" v onFocus="bg()" onBlur="bbg()" name="name" placeholder="您的用户名或登录名"> </label> <div class="tips"></div> </div> <div class="register-box"> <label for="username" class="other_label">设 置 密 码 <input maxlength="20" type="password" onFocus="bg1()" onBlur="bbg1()" id="pwd" name="password" placeholder="建议至少使用两种字符组合"> </label> <div class="tips"></div> </div> <div class="register-box"> <label for="username" class="other_label">确 认 密 码 <input maxlength="20" type="password" id="againpwd" name="againpassword" placeholder="请再次输入密码"> </label> <div class="tips"></div> </div> <div class="register-box"> <label for="username" class="other_label">验 证 码 <input style="height:30px" cursor:pointer id="verify" type="text" onFocus="bg2()" onBlur="bbg2()" name="verify" maxlength="20" type="text" placeholder="请输入验证码"> <script>code()</script> </label> <div class="tips"></div> </div> <div class="submit_btn"> <button type="submit" id="submit_btn" onClick="login()">立 即 注 册</button> </div> </form> </section> <script src="js/index.js" type="text/javascript" charset="utf-8"></script> <div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';"> </div> </body> </html> ``` control下jsp代码如下 ``` <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="db.jdbc"%> <%@ page import="java.sql.*"%> <% String username = new String(request.getParameter("name").getBytes( "iso-8859-1"), "UTF-8"); String password = request.getParameter("password"); jdbc j = new jdbc(); String sql = "insert into login(username,password) values('" + username + "','" + password + "') "; String selectsql = "select * from login where username='" + username + "'"; ResultSet rs = j.exquery(selectsql); if (rs.next()) { request.getSession().setAttribute("username", username); out.print("<script>alert('该用户已存在');location.href='../register.jsp'</script>"); } else if (j.UID(sql)) { out.print("<script>alert('注册成功');location.href='../login.jsp'</script>"); } else { out.print("<script>alert('注册失败');location.href='../register.jsp'</script>"); } %> ```

jsp+servlet+jdbc+web.xml

message.jsp: ``` <form name="formName" method="post" action="servlet/MessageAddServlet"> <tr> <td width="12%">昵称:</td> <td width="88%"><input name='nickname' type='text' /> *</td> </tr> <tr> <td>头像:</td> <!-- 多个单选按钮配合使用时,name值相等,value值不相等, 因为处理页面根据value值才能知道选择的是哪一个单选按钮对应的内容 --> <td><input name="sex" type="radio" value="1" checked="checked"> <img src="img/1.gif" width="64" height="71"> <input type="radio" name="sex" value="2"> <img src="img/2.gif" width="64" height="71"> <input type="radio" name="sex" value="3"> <img src="img/3.gif" width="64" height="71"> <input type="radio" name="sex" value="4"> <img src="img/4.gif" width="64" height="71"> <input type="radio" name="sex" value="5"> <img src="img/5.gif" width="64" height="71"></td> </tr> <tr> <td>QQ:</td> <td><input name='qq' type='text' /></td> </tr> <tr> <td>邮箱:</td> <td><input name='email' type='text' /></td> </tr> <tr> <td>电话:</td> <td><input name='tel' type='text' /></td> </tr> <tr> <td>内容:</td> <td><textarea name="content" cols="50" rows="10" ></textarea> *</td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="submit" value="提交" onClick="return checklyb();" style="height: 19px; border: solid 1px #000000; color: #666666" /> <input type="reset" name="reset" value="重置" style="height: 19px; border: solid 1px #000000; color: #666666" /></td> </tr> </form> ``` web.xml: ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>hotel2</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>MessageAddServlet</servlet-name> <servlet-class>servlet.MessageAddServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MessageAddServlet</servlet-name> <url-pattern>/servlet/MessageAddServlet</url-pattern> </servlet-mapping> </web-app> ``` MessageAddServlet.java: ``` package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javabean.Message; public class MessageAddServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); String nickname = request.getParameter("nickname"); String sex= request.getParameter("sex"); String qq = request.getParameter("qq"); String email = request.getParameter("email"); String tel = request.getParameter("tel"); String content = request.getParameter("content"); Message m=new Message(); m.excuteServlet(nickname,sex,qq,email,tel,content); //js出现在servlet中 out.print("<script>alert('添加成功!!');location.href='lyblist.jsp';</script>"); } } ``` Message.java: ``` package javabean; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import db.DBUtil; public class Message { private int message_id; private String nickname; private String sex; private String qq; private String email; private String tel; private String content; private String message_addedtime; private String content_reply; private Connection conn; private PreparedStatement ptmt; private ResultSet rs; private String sql; public void excuteServlet(String nickname,String sex,String qq,String email,String tel,String content){ sql = "insert into message(nickname,sex,qq,email,tel,content) values(?,?,?,?,?,?) "; conn=DBUtil.getConnection(); try { ptmt = conn.prepareStatement(sql); ptmt.setString(1, nickname); ptmt.setString(2, sex); ptmt.setString(3, qq); ptmt.setString(4, email); ptmt.setString(5, tel); ptmt.setString(6, content); //对于insert的sql,不需要使用rs ptmt.execute(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 异常信息: 404错误

JSP中的一个传值问题 求解!

有两个jsp文件,前端文件有一个表格,可以点击界面按钮增加行数,并向表格内填入数据,如何将表中数据插入数据库? ## # **难点在于点击按钮增加的行name是重复的,怎么办?** 前端界面 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*"%> <jsp:useBean id="connDB" scope="page" class="com.lah.ToolBean.Conn" /> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>填写出货单</title> </head> <body> <center> <h1>出货单填写</h1> <tr> <td align="right">出货单号:</td> <td><input type="text" name="IncomeOrderNumber" style="width: 300px;"></td> </tr> <form > <table width="80%" id="tbl" border="1" align="center"> <tr> <td>货物编号</td> <td>货物名称</td> <td>货物数量</td> </tr> <tr> <td><input type=text name=ProductCode /></td> <td><input type=text name=ProductName /></td> <td><input type=text name=ProductNum /></td> </tr> </table> <input type="button" value="添加" onclick="insert_row(ProductCode,ProductName,ProductNum,IncomeOrderNumber.value)" /> </form> </center> <script type="text/javascript"> function insert_row(ProductCode,ProductName,ProductNum,IncomeOrderNumber) { //下面这些就是增加行用的 R = tbl.insertRow() //insertRow() 方法用于在表格中的指定位置插入一个新行。 C = R.insertCell() //insertCell() 方法用于在 HTML 表的一行的指定位置插入一个空的 <td> 元素。 C.innerHTML = "<input type='text' name='ProductCode' />" C = R.insertCell() C.innerHTML = "<input type='text' name='ProductName' />" C = R.insertCell() C.innerHTML = "<input type='text' name='ProductNum' />" C = R.insertCell() C.innerHTML = "<input type='button' value='删除' onclick='deleteRow(this)'>" } //用来删除行 function deleteRow(obj) { alert("确定删除吗?"); tbl.deleteRow(obj.parentElement.parentElement.rowIndex); } </script> </body> </html> ``` ``` //后台 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.sql.*"%> <jsp:useBean id="connDB" scope="page" class="com.lah.ToolBean.Conn" /> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String number = request.getParameter("IncomeOrderNumber"); String ProductCode = request.getParameter("ProductCode"); String ProductName = request.getParameter("ProductName"); String ProductNum = request.getParameter("ProductNum"); String str = "select * from [IncomeOrder] where Number='" + number + "'"; ResultSet rs = connDB.executeQuery(str); if (rs.next()) { %> <script type="text/javascript"> alert("该单号已经存在"); history.back(); </script> <% } else try { String strSql = "insert into [IncomeOrder] values('" + number + "','" + ProductCode + "','" + ProductName + "','" + ProductNum + "')"; int t = connDB.executeUpdate(strSql); if (t == 0) { %> <script type="text/javascript"> alert("增加失败!"); history.back(); </script> <% } else { response.sendRedirect("success.jsp"); } } catch (Exception e) { System.err.println(e.getMessage()); } %> </body> </html> ``` 谢谢各位l

有没有大神能指点一下哪里错了。。。。

package Frame; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.*; import javax.swing.*; import db.DButil; public class login extends JFrame implements ActionListener{ private JPanel jp=new JPanel(); //创建标签数组 private JLabel[] jlArray={new JLabel("用户名"), new JLabel("密 码"),new JLabel("")}; private JButton jb1; private JButton jb2; private JButton jb3; private JTextField jtf=new JTextField(); private JPasswordField jpf=new JPasswordField(); //布局构造实现方法 public login(){ Icon icon1=new ImageIcon("login.jpg"); Icon icon2=new ImageIcon("reset.jpg"); Icon icon3=new ImageIcon("zhuce.jpg"); JPanel jp=new JPanel(){ protected void paintComponent(Graphics g) { ImageIcon icon = new ImageIcon("bg.jpg"); Image img = icon.getImage(); g.drawImage(img, 0, 0, icon.getIconWidth(), icon.getIconHeight(), icon.getImageObserver()); }}; jp.setLayout(null); jb1=new JButton(icon1); jb2=new JButton(icon3); jb3=new JButton(icon2); jlArray[0].setBounds(70,120,90,32); jb1.setBounds(365,110,130,60); jb2.setBounds(365,170,130,60); jlArray[1].setBounds(70,170,90,32); //将标签与按钮添加到JPanel容器中 jp.add(jlArray[0]); jp.add(jlArray[1]); jp.add(jb1); jp.add(jb2); jb1.addActionListener(this); jb2.addActionListener(this);//为按钮注册动作事件监听器 //添加修改密码的按钮 jb3.setBounds(365,230,130,60); jp.add(jb3); jp.add(jtf); jtf.setBounds(140,120,180,30);//设置文本框位置 jp.add(jpf); jpf.setBounds(140,170,180,30);//设置密码框位置 jpf.setEchoChar('*'); //密码显示字符形式 jpf.addActionListener(this); //为密码框注册动作事件监听器 this.setVisible(true);//设置窗体的可见性 jpf.addActionListener(this); //为密码框注册动作事件监听器 //设置用于显示登陆状态的标签大小位置,并将其添加进JPanel容器 jlArray[2].setBounds(70,220,300,30); jp.add(jlArray[2]); this.setTitle("登陆");//设置窗体标题 this.setBounds(450,200,500,318);//设置窗体的大小 this.setResizable(false);//设置窗体不让用户调整大小 this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true);//设置窗体的可见性 this.add(jp);//将窗体添加到面板中 jp.setBackground(Color.blue); } public static void main(String[] args) { new login();//创建登陆窗体 } public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub //得到用户名与密码 String user=jtf.getText().trim(); String pwd=String.valueOf(jpf.getPassword());//返回密码的字符串表示方式 String sql=""; if(e.getSource()==jtf){//事件源为文本框,切换焦点到密码框 jpf.requestFocus(); } else if(e.getSource()==jb1||e.getSource()==jpf){ //判断用户名和密码是否匹配 查询数据库 if(DButil.check(user, pwd)){ //登陆成功 MainFrame mf=new MainFrame(jtf.getText());//主窗体 this.dispose(); } else{ //登陆失败 jlArray[2].setText("对不起,非法的用户名和密码"); this.clear(); } } else if(e.getSource()==jb2) {//事件源为注册按钮 if(user.equals("")||pwd.equals("")) {//如果注册的用户名为空或者密码为空 jlArray[2].setText("用户名和密码都不得为空!!!"); this.clear();//清空输入文本框 } else { sql="select uid from user where uid='"+user+"'"; if(DButil.isExist(sql)) {//用户名已经存在 jlArray[2].setText("对不起,用户名已存在!!!"); this.clear();//清空输入文本框 } else { sql="insert into user values('"+user+"','"+pwd+"')"; if(DButil.update(sql)>0) {//注册成功 jlArray[2].setText("恭喜您!!!注册成功,请登陆"); } } } } else if(e.getSource()==jb3)//修改密码的监听 { //判断是否已经输入用户名和密码 if(user.equals("")||pwd.equals("")) { jlArray[2].setText("修改密码先输入正确的用户名和密码!!!"); this.clear();//清空输入文本框 } //判断是否输入了正确的用户名和密码 else if(DButil.check(user,pwd)) { //正确的用户名和密码 String password=JOptionPane.showInputDialog(this,"修改密码:","请输入新密码", JOptionPane.PLAIN_MESSAGE); //得到新的密码为空 if(password==null||password.equals("")) { JOptionPane.showMessageDialog(this,"密码不得为空!!!","错误", JOptionPane.WARNING_MESSAGE); } else {//密码不为空 sql="update user set pwd='"+password+"' where uid='"+user+"'";//更新密码的SQL if(DButil.update(sql)>0) {//密码修改成功 this.clear();//清空输入文本框 jlArray[2].setText("恭喜您!!!密码修改成功,请用新密码登陆"); } } } else { JOptionPane.showMessageDialog(this,"用户名或者密码错误!!!","错误", JOptionPane.WARNING_MESSAGE); this.clear();//清空输入文本框 } } } package Frame; import javax.swing.*; import javax.swing.table.DefaultTableModel; import db.DButil; import java.awt.*; import java.awt.event.*; import java.sql.*; import java.io.*; import java.util.*; public class MainFrame extends JFrame implements ActionListener,ItemListener { private String uname=null;//当前用户的名字 private boolean isInsert=false;//是否为添加默认为否 private JPanel topjp=new JPanel();//界面上半部分的JPanel容器 private JButton jba=new JButton("模糊查询"); private JButton jbs=new JButton("查找"); private JTextField jtfs=new JTextField();//按给出信息查找联系人信息 private JRadioButton jrbxm=new JRadioButton("按姓名查找",true); private JRadioButton jrbbh=new JRadioButton("按学号查找",false); private ButtonGroup bg=new ButtonGroup();//单选按钮组 private JPanel jpbr=new JPanel();//单选按钮面板 private JPanel jpyInfo=new JPanel();//右侧显示个人信息的面板 private JTextArea jta=new JTextArea(); // 模糊查询得到的信息文本区 private JLabel[] jlInfo={new JLabel("学号:"),new JLabel("姓名:"), new JLabel("性别:"),new JLabel("出生日期:"), new JLabel("电话号码:"),new JLabel("QQ:"), new JLabel("Email:"),new JLabel("地址:"), new JLabel("添加相片")}; private JButton[] jbInfo={new JButton("编辑"),new JButton("保存"), new JButton("浏览"), new JButton("上传"),}; private JLabel jlPhoto=new JLabel();//显示图像的JLabel控件 private JTextField[] jtfInfo=new JTextField[10]; private JTextField jtfPhoto=new JTextField();//添加照片到相册的路径 private JFileChooser jfcPic=new JFileChooser();//上传图像的文件选择器 private DefaultTableModel tableModel; private JTable table; //性别部分 private JRadioButton jrbMale=new JRadioButton("男",true); private JRadioButton jrbFemale=new JRadioButton("女"); private ButtonGroup bgGender=new ButtonGroup(); private JPanel jpGender=new JPanel();//单选按钮面板 private JLabel jlDetail=new JLabel();//右侧显示一幅图片的标签 private JSplitPane jspOuter=//上下分割的JSplitPane new JSplitPane(JSplitPane.VERTICAL_SPLIT,true); //系统托盘部分 private PopupMenu popup=new PopupMenu(); private SystemTray tray;//定义SystemTray成员变量 private TrayIcon trayIcon;//定义TrayIcon成员变量 private MenuItem exit=new MenuItem("退出程序");//定义菜单 public void initJps() {//界面上半部分的初始化 topjp.setLayout(null);//设置topjp布局管理器为null //设置按钮大小并添加到JPanel面板里 jba.setBounds(5,10,120,26); jba.addActionListener(this);//为模糊查询按钮注册事件监听器 topjp.add(jba); jbs.setBounds(130,10,80,26); jbs.addActionListener(this);//为查找按钮注册事件监听器 topjp.add(jbs);//添加按钮到topjp面板里 //设置jtfs文本框大小并添加到jps面板里 jtfs.setBounds(215,10,120,26); jtfs.addActionListener(this);//为文本框注册事件监听器 topjp.add(jtfs); //设置单选按钮大小和位置并添加到jpbr面板里同时添加到bg单选按钮组里 jrbxm.setBounds(5,3,50,26); jrbxm.addItemListener(this);//为单选按钮注册ItemEvent事件监听器 bg.add(jrbxm); jpbr.add(jrbxm); jrbbh.setBounds(60,3,50,26); jrbbh.addItemListener(this); bg.add(jrbbh); jpbr.add(jrbbh); jpbr.setBounds(360,10,200,26); topjp.add(jpbr); } public void initInfo() {//初始化信息界面 jpyInfo.setLayout(null);//设置布局管理器为空 jpyInfo.setBounds(50,50,380,360);//设置信息面板的大小和位置 jlPhoto.setBounds(220,10,150,170);//设置联系人图像JLabel的大小和位置 jlPhoto.setBorder(BorderFactory.createLineBorder(Color.BLACK));//将JLbel的边框线显现出来 jpyInfo.add(jlPhoto);//将显示联系人照片的JLabel添加到信息面板 tableModel=new DefaultTableModel(); Vector vector1 = new Vector(); DButil db = new DButil(); vector1.add("学号"); vector1.add("姓名"); vector1.add("性别"); vector1.add("出生日期"); vector1.add("电话号码"); vector1.add("QQ"); vector1.add("Email"); vector1.add("地址"); vector1.add("照片路径"); tableModel.setDataVector(null, vector1); System.out.print(123); table=new JTable(tableModel); //table.addMouseListener((MouseListener) this); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JScrollPane js=new JScrollPane(table); //添加相片部分的控件 jtfPhoto.setBounds(80,250,200,26);//设置得到照片路径的文本框的大小和位置 jpyInfo.add(jtfPhoto);//将得到照片路径的文本框添加到信息面板 jbInfo[2].setBounds(285,250,80,26); jbInfo[2].addActionListener(this);//为添加照片的浏览按钮注册事件监听器 jpyInfo.add(jbInfo[2]); //上传按钮 jbInfo[3].setBounds(380,250,80,26); jbInfo[3].addActionListener(this);//为添加照片的浏览按钮注册事件监听器 jpyInfo.add(jbInfo[3]); for(int i=0;i<9;i++)//添加JLabel,并设置大小和位置 { jlInfo[i].setBounds(20,10+i*30,60,26); jpyInfo.add(jlInfo[i]); } for(int i=0;i<10;i++) {//初始化一些文本框 jtfInfo[i]=new JTextField(); } //学号 jtfInfo[0].setBounds(80,10,135,26); jpyInfo.add(jtfInfo[0]); //姓名 jtfInfo[1].setBounds(80,40,135,26); jpyInfo.add(jtfInfo[1]); //出生日期 jtfInfo[3].setBounds(80,100,135,26); jpyInfo.add(jtfInfo[3]); //电话号码 jtfInfo[4].setBounds(80,130,135,26); jpyInfo.add(jtfInfo[4]); //QQ jtfInfo[5].setBounds(80,160,135,26); jpyInfo.add(jtfInfo[5]); //Email jtfInfo[6].setBounds(80,190,135,26); jpyInfo.add(jtfInfo[6]); //地址文本框的添加 jtfInfo[7].setBounds(80,220,285,26); jpyInfo.add(jtfInfo[7]); //模糊查询信息文本区的添加 js.setBounds(0,350,600,100); jpyInfo.add(js); //编辑、保存按钮 jbInfo[0].setBounds(160,300,80,26); jbInfo[0].addActionListener(this); jpyInfo.add(jbInfo[0]); jbInfo[1].setBounds(260,300,80,26); jbInfo[1].addActionListener(this); jpyInfo.add(jbInfo[1]); //性别部分 jrbMale.setBounds(5,3,50,26); jrbMale.addItemListener(this); //为单选按钮注册ItemEvent事件监听器 bgGender.add(jrbMale); jpGender.add(jrbMale); jrbFemale.setBounds(60,3,50,26); jrbFemale.addItemListener(this); //为单选按钮注册ItemEvent事件监听器 bgGender.add(jrbFemale); jpGender.add(jrbFemale); jpGender.setBounds(60,70,125,26); jpyInfo.add(jpGender); } public void clearInfo()//清空信息面板 { for(int i=0;i<10;i++) { jtfInfo[i].setText("");//清空文本框 } jlPhoto.setIcon(null);//清空图像 } public void setjtaArea(String information){ if(information.isEmpty()){ JOptionPane.showMessageDialog(this,"所查用户不存在!!!","错误", JOptionPane.WARNING_MESSAGE); } else { jta.setText(information); } } public void setInfo(Vector<String> pInfo)//将信息向量设置到信息面板中 {//将信息向量按规则填到信息面板里 this.clearInfo(); if(pInfo.size()==0) { JOptionPane.showMessageDialog(this,"所查用户不存在!!!","错误", JOptionPane.WARNING_MESSAGE); } else { for(int i=0;i<2;i++) {//显示联系人编号和姓名 jtfInfo[i].setText(pInfo.get(i)); } if(pInfo.get(2).equals("男")) {//显示性别 jrbMale.setSelected(true); } else {//显示性别 jrbFemale.setSelected(true); } for(int i=3;i<9;i++) {//显示出生日期、电话号码和QQ jtfInfo[i].setText(pInfo.get(i)); } } } public Vector<String> getInfo()//从信息面板得到用户输入的信息 { Vector<String> pInfo=new Vector<String>(); pInfo.add(jtfInfo[0].getText().trim());//添加pid pInfo.add(jtfInfo[1].getText().trim());//添加pname String gender=jrbMale.isSelected()?"男":"女"; pInfo.add(gender);//添加性别 pInfo.add(jtfInfo[3].getText().trim());//出生日期 pInfo.add(jtfInfo[4].getText().trim());//电话号码 pInfo.add(jtfInfo[5].getText().trim());//QQ pInfo.add(jtfInfo[6].getText().trim());//Email pInfo.add(jtfInfo[7].getText().trim());//地址 String photoPath=jtfPhoto.getText().trim();//得到照片路径 pInfo.add(photoPath);//照片路径 return pInfo; } public void monitorSaveButton() //监听保存按钮的方法 { String sql=""; String pid=jtfInfo[0].getText().trim();//得到联系人的编号 String pname=jtfInfo[1].getText().trim();//得到联系人的姓名 String gender=jrbMale.isSelected()?"男":"女"; String s1=jtfInfo[3].getText().trim(); String s2=jtfInfo[4].getText().trim(); String s3=jtfInfo[5].getText().trim(); String s4=jtfInfo[6].getText().trim(); String s5=jtfInfo[7].getText().trim(); String s6=jtfPhoto.getText().trim(); String sqla="select * from contacts where pid='"+pid+"'";//判断此编号是否存在的SQL String sqlb="select * from contacts where pname='"+pname+"'";//判断此姓名是否存在的SQL boolean isIdExist=DButil.isExist(sqla);//得到编号是否存在 boolean isNameExist=DButil.isExist(sqlb);//得到姓名是否存在 if(!(pid.equals(" ")||pname.equals(" "))) { if(isIdExist||isNameExist){ JOptionPane.showMessageDialog(this,"联系人已存在"+ " , 添加联系人失败","错误",JOptionPane.WARNING_MESSAGE); } else { sql="insert into contacts values (?,?,?,?,?,?,?,?,?,?)"; String[] paras={pid,pname,gender,s1,s2,s3,s4,s5,s6,null}; if(DButil.update(sql,paras)>0){ JOptionPane.showMessageDialog(this,"联系人保存成功","提示", JOptionPane.INFORMATION_MESSAGE); } } } } public void setEditable(boolean Editable)//设置信息窗口是否可编辑 { jrbFemale.setEnabled(Editable);//设置性别是否可编辑 jrbMale.setEnabled(Editable);//设置性别是否可编辑 for(int i=0;i<8;i++) { jtfInfo[i].setEditable(Editable);//设置文本框是否可编辑 } } public void monitorSearchButton()//监听查找按钮的方法 { String name=jtfs.getText().trim(); String sql="";//声明查找字符串 if(name.equals("")) { JOptionPane.showMessageDialog(this,"查找条件不能为空!!!", "错误", JOptionPane.WARNING_MESSAGE); } else { if(jrbxm.isSelected()==true) {//按姓名查找 sql="select pid,pname,pgender,pbirthday,pnumber,pQQ,pemail,padress,pphoto from contacts where pname='"+name+"'"; this.setInfo(DButil.getPerInfo(sql));//设置信息面板为该联系人的信息 } else {//按编号查找 sql="select pid,pname,pgender,pbirthday,pnumber,pQQ,pemail,padress,pphoto from contacts where pid='"+name+"'"; this.setInfo(DButil.getPerInfo(sql));//设置信息面板为该联系人的信息 } } this.setEditable(false);//设置面板不可编辑 } public void monitorRandomSearchButton(String information){ //监听模糊查询按钮 String adress=jba.getText().trim(); String sql="";//声明查找字符串 if(adress.equals("")) { JOptionPane.showMessageDialog(this,"查找条件不能为空!!!", "错误", JOptionPane.WARNING_MESSAGE); } else{ sql="select pid,pname,pgender,pbirthday,pnumber,pQQ,pemail,padress,pphoto from contacts where padress like '%天河区%'"; } } public MainFrame(String uname) { //主窗体构造器 this.uname=uname;//设置用户名 this.initJps();//界面上半部分的搭建 this.initInfo(); jspOuter.setDividerLocation(46);//设置分割窗体JSplitPane的位置 jspOuter.setTopComponent(topjp);//设置窗体上半部分的控件 jspOuter.setBottomComponent(jpyInfo);//设置下半部分的控件 //设置窗体关闭按钮执行的动作 this.add(jspOuter); this.addWindowListener( new WindowAdapter() { @SuppressWarnings("deprecation") public void WindowClosing(WindowEvent e) { //将窗体隐藏 MainFrame.this.hide(); } } ); //设置主窗体的图标、标题、大小以及可见性 this.setResizable(false);//设置窗体不让调整大小 this.setTitle(uname+"的通讯录"); this.setBounds(420,80,618,550); this.setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource()==jbInfo[1]) {//保存按钮的监听 this.monitorSaveButton(); } else if(e.getSource()==jba) {//模糊查询按钮的监听 DButil db = new DButil(); Vector vector1 = new Vector(); vector1.add("学号"); vector1.add("姓名"); vector1.add("性别"); vector1.add("出生日期"); vector1.add("电话号码"); vector1.add("QQ"); vector1.add("Email"); vector1.add("地址"); vector1.add("照片路径"); String ad = jtfs.getText().trim(); tableModel.setDataVector(db.getData(ad),vector1); } else if(e.getSource()==jbInfo[2]) {//打开图像文件路径 jfcPic.showOpenDialog(this); if(jfcPic.getSelectedFile()!=null) { jtfPhoto.setText(""+jfcPic.getSelectedFile()); } } else if(e.getSource()==jbInfo[0]) {//编辑按钮的监听 this.setEditable(true);//设置信息面板可编辑 } else if(e.getSource()==jbs||e.getSource()==jtfs) {//查找,按按钮或者在文本框里敲回车 this.monitorSearchButton(); } } public void itemStateChanged(ItemEvent e) { } public static void main(String[] args){ } } package db; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.Vector; public class DButil { private static String jdbcName="org.gjt.mm.mysql.Driver";//声明驱动类字符串 //声明数据库连接字符串 private static String dbUrl="jdbc:mysql://127.0.0.1:3306/maillist"; private static String dbUserName="root"; private static String dbPassword="admin"; private static Connection con=null;//声明数据库连接对象引用 private static Statement stat=null;//声明语句对象引用 private static PreparedStatement pstmt=null; private static ResultSet rs=null;//声明结果集对象引用 private static PreparedStatement psInsert=null;//声明预编译语句对象引用 public static Connection getConnection()//得到数据库连接的方法 { System.out.println("连接中.."); try { Class.forName(jdbcName);//加载驱动类 con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);//得到连接 System.out.println("成功连接"); } catch(Exception e){e.printStackTrace();} return con;//返回连接 } public static boolean check(String user,String pwd)//登陆验证 { boolean flag=false; try { con=DButil.getConnection();//得到数据库连接 stat=con.createStatement();//创建语句对象 rs=stat.executeQuery("select pwd from user where uid='"+user+"'"); rs.next(); String spwd=rs.getString(1);//得到密码 if(spwd.equals(pwd)) { flag=true;//密码匹配,登陆成功 } } catch(Exception e) { flag=false;//有任何异常发生,登陆失败 } finally{DButil.closeCon();}//关闭数据库连接 return flag; } //某条记录是否存在 public static boolean isExist(String sql) { boolean flag=false;//设置返回值 try { con=DButil.getConnection();//得到数据库连接 stat=con.createStatement();//创建语句对象 rs=stat.executeQuery(sql);//执行查询 if(rs.next()) { flag=true;//存在,设置返回值为true } } catch(Exception e) { e.printStackTrace(); flag=false;//发生任何异常,置返回结果为false } finally{DButil.closeCon();}//关闭数据库连接 return flag;//返回结果 } public static int update(String sql,String[] paras)//更新数据库 { int count=0;//声明返回值 try { con=DButil.getConnection(); pstmt=con.prepareStatement(sql); for(int i=0; i<paras.length;i++){ pstmt.setString(i+1, paras[i]); } count=pstmt.executeUpdate(); } catch(Exception e) { e.printStackTrace(); count=-1;//更新失败返回值为-1 } finally{DButil.closeCon();}//关闭数据库连接 return count;//返回结果 } public static int update(String sql)//更新数据库 { int count=0;//声明返回值 try { con=DButil.getConnection(); stat=con.createStatement(); count=stat.executeUpdate(sql);//执行更新 } catch(Exception e) { e.printStackTrace(); count=-1;//更新失败返回值为-1 } finally{DButil.closeCon();}//关闭数据库连接 return count;//返回结果 } //====================添加联系人================================= public static String insertPerson(String uid,Vector<String> pInfo) { String isPathNull="isNotNull";//传过来的图像是不是合法,默认不为空 try{ con=getConnection();//得到数据库连接 if(pInfo.get(8).equals("")||pInfo.get(8)==null) {//照片路径为空,则不插入图像 psInsert=con.prepareStatement("insert into contacts(pid,pname,pgender,pbirthday,pnumber,"+ "pQQ,pemail,padress,uid)"+ "values(?,?,?,?,?,?,?,?,?)"); } else {//照片路径不为空,则插入图像 psInsert=con.prepareStatement("insert into contacts(pid,pname,pgender,pbirthday,pnumber,"+ "pQQ,pemail,padress,pphoto,uid)"+ "values(?,?,?,?,?,?,?,?,?,?,?)" ); File f=new File(pInfo.get(8));//获取选取的图片文件 byte[] b=new byte[(int)f.length()];//创建存储图片数据的数组 FileInputStream fin=new FileInputStream(f); fin.read(b);fin.close();//读取文件存于byte数组中并关闭输入流 psInsert.setBytes(11,b);//设置pphoto参数的数据 } for(int i=0;i<8;i++) {//设置公共信息 psInsert.setString(i+1,pInfo.get(i)); } psInsert.setString(10,uid);//所属用户 psInsert.execute();psInsert.close();//执行更新并关闭语句 } catch(FileNotFoundException fnfe){isPathNull="isNull";}//图片路径不对 catch(Exception e){e.printStackTrace();} finally{DButil.closeCon();}//关闭数据库连接 return isPathNull; } public static String updatePerson(String uid,Vector<String> pInfo){ String isPathNull="isNotNull";//传过来的path是不是合法 try{ con=getConnection(); if(pInfo.get(9).equals("")||pInfo.get(9)==null) {//更新时候,如果照片路径为空,则不更新图像 psInsert=con.prepareStatement("update contacts set pname=?,pgender=?,birthday=?,pnumber=?,"+ "pQQ=?,pemail=?,padress=?,pphoto=?,uid=? where pid='"+pInfo.get(0).trim()+"'"); } else {//如果照片路径不为空,则更新图像 psInsert=con.prepareStatement("update contacts set pname=?,pgender=?,page=?,pnumber=?,"+ "pemail=?,pgroup=?,ppostalcode=?,padress=?,uid=?,pphoto=? where pid='"+pInfo.get(0).trim()+"'"); File f=new File(pInfo.get(9));//获取选取的图片文件 byte[] b=new byte[(int)f.length()];//创建存储图片数据的数组 FileInputStream fin=new FileInputStream(f); fin.read(b);fin.close();//读取文件存于byte数组中并关闭输入流 psInsert.setBytes(10,b); } for(int i=1;i<8;i++){//设置公共的信息部分 psInsert.setString(i,pInfo.get(i)); } psInsert.setString(9,uid);//所属用户 psInsert.execute();psInsert.close();//执行更新并关闭语句 } catch(FileNotFoundException fnfe){isPathNull="isNull";}//路径不合法 catch(Exception e){e.printStackTrace();} finally{DButil.closeCon();}//关闭连接 return isPathNull; } public Vector getData(String ad){ Vector vector=new Vector(); try { //陈述对象 con=getConnection();//得到数据库连接 stat=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);//创建语句对象 rs=stat.executeQuery("select * from contacts where padress LIKE '%"+ad+"%'"); ResultSetMetaData rm=rs.getMetaData(); //循环打印出数据库表中数据 int n=rm.getColumnCount(); while(rs.next()){ Vector ve=new Vector(); for(int i=1;i<n+1;i++){ String s=rs.getString(i); ve.add(s); } vector.add(ve);//Vector对象接收表中数据 } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{if(rs!=null){ try { rs.close();//关闭结果集 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(stat!=null){ try { stat.close();//关闭陈述对象 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(con!=null){ try { con.close();//关闭连接 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return vector; } public static Vector<String> getPerInfo(String sql)//得到联系人信息 { Vector<String> pInfo=new Vector<String>(); try { con=getConnection();//得到数据库连接 stat=con.createStatement();//创建语句对象 rs=stat.executeQuery(sql);//执行查询 while(rs.next()) { for(int i=1;i<10;i++) { System.out.println(rs.getString(i)); pInfo.add(rs.getString(i));//将联系人信息添加到返回向量 } } } catch(Exception e) { e.printStackTrace(); } finally{DButil.closeCon();}//关闭数据库连接 return pInfo;//返回信息集合 } public static void closeCon()//关闭数据库连接的方法 { try { if(rs!=null){rs.close(); rs=null;}//如果结果集不为空关闭结果集并赋值null if(stat!=null){stat.close(); stat=null;}//如果语句对象不为空关闭语句对象并赋值null if(con!=null){con.close(); con=null;}//如果连接不为空关闭连接并赋值null } catch(Exception e){e.printStackTrace();} } public static void main(String[] args){ DButil DB=new DButil(); System.out.println(DB.getConnection()); } } }

急求!!asp.net制作网站时显示“未将对象引用设置到对象的实例。”

求大神帮忙解决;我想要实现“点击加入购物车”,然后就将datalist中显示的图书和用户添加到数据库,并在另一界面显示购物车,加入购物车的按钮的源代码是这样的:编译没错,调试就出现“未将对象引用设置到对象的实例。”菜鸟级找不到解决方法了。 protected void Button1_Click2(object sender, EventArgs e) { if (Session["name"] == null) { Response.Redirect("index.aspx"); } else { string connectionString = "server=.; DataBase=BookStore; Integrated Security=SSPI;"; SqlConnection conn = new SqlConnection(connectionString); conn.Open(); try { foreach (DataListItem item in DataList2.Items) { int Bamount = int.Parse(Request.QueryString["Tnventory"].ToString()); int CBamount = int.Parse(this.camount.Text.Trim().ToString()); string username = Session["name"].ToString(); string bookid = Request.QueryString["bookid"].ToString(); string BookName = Request.QueryString["BookName"].ToString(); float Price = float.Parse(Request.QueryString["Price"].ToString()); int Cnum = 0; string select = "select Cname from car where Cname=@UserName"; SqlCommand cmd = new SqlCommand(select, conn); cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 10); cmd.Parameters["@UserName"].Value = username; SqlDataReader sdr; sdr = cmd.ExecuteReader(); int o = 0; SqlCommand cd; while (sdr.Read()) { o = 1; sdr.Close(); string sql = "select MAX(Cnum) from car where Cname='" + username + "' "; cd = new SqlCommand(sql, conn); string str = cd.ExecuteScalar().ToString(); int h = int.Parse(str); Cnum = h + 1; break; } if (o == 0) { sdr.Close(); Cnum = 1; } if (Bamount < CBamount) { Response.Write("<script type=\"text/javascript\">alert(\"库存不足!\");</script>"); } else { float Cprice = Price * CBamount; string sql1 = "insert into car(Cname,Cnum,bookid,BookName,Price,CBamount,Cprice) values('" + username + "','" + bookid + "','" + BookName + "','" + Price + "','" + CBamount + "','" + Cprice + "')"; SqlCommand cmd1 = new SqlCommand(sql1, conn); cmd1.ExecuteNonQuery(); Response.Write("<script type=\"text/javascript\">alert(\"已经加入购物车!\");</script>"); } } } catch (Exception ex) { Response.Write(ex.Message); } finally { conn.Close(); } } }

学Python后到底能干什么?网友:我太难了

感觉全世界营销文都在推Python,但是找不到工作的话,又有哪个机构会站出来给我推荐工作? 笔者冷静分析多方数据,想跟大家说:关于超越老牌霸主Java,过去几年间Python一直都被寄予厚望。但是事实是虽然上升趋势,但是国内环境下,一时间是无法马上就超越Java的,也可以换句话说:超越Java只是时间问题罢。 太嚣张了会Python的人!找工作拿高薪这么简单? https://edu....

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

推荐10个堪称神器的学习网站

每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...

为什么程序猿都不愿意去外包?

分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助

Java校招入职华为,半年后我跑路了

何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...

在三线城市工作爽吗?

我是一名程序员,从正值青春年华的 24 岁回到三线城市洛阳工作,至今已经 6 年有余。一不小心又暴露了自己的实际年龄,但老读者都知道,我驻颜有术,上次去看房子,业务员肯定地说:“小哥肯定比我小,我今年还不到 24。”我只好强颜欢笑:“你说得对。” 从我拥有记忆到现在进入而立之年,我觉得,我做过最明智的选择有下面三个: 1)高中三年,和一位女同学保持着算不上朋友的冷淡关系;大学半年,把这位女同学追到...

这些插件太强了,Chrome 必装!尤其程序员!

推荐 10 款我自己珍藏的 Chrome 浏览器插件

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

@程序员:GitHub这个项目快薅羊毛

今天下午在朋友圈看到很多人都在发github的羊毛,一时没明白是怎么回事。 后来上百度搜索了一下,原来真有这回事,毕竟资源主义的羊毛不少啊,1000刀刷爆了朋友圈!不知道你们的朋友圈有没有看到类似的消息。 这到底是啥情况? 微软开发者平台GitHub 的一个区块链项目 Handshake ,搞了一个招募新会员的活动,面向GitHub 上前 25万名开发者派送 4,246.99 HNS币,大约价...

做了5年运维,靠着这份监控知识体系,我从3K变成了40K

从来没讲过运维,因为我觉得运维这种东西不需要太多的知识面,然后我一个做了运维朋友告诉我大错特错,他就是从3K的运维一步步到40K的,甚至笑着说:我现在感觉自己什么都能做。 既然讲,就讲最重要的吧。 监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个省时省力、效率最高的方...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux系统的最常用命令你了解多少呢?

Linux系统的最常用命令第一组 用户管理类命令1.添加用户2.修改密码3.删除用户4.切换用户5.添加用户组6.删除用户组第二组 文件与目录类命令1.查看目录2.改变工作目录3.复制文件、目录4.移动或改名5.删除文件、目录6.改变文件权限7.创建目录8.新建文件9.查看目录大小10.查看当前路径第三组 压缩打包类命令压缩解压1.压缩解压--gzip2.压缩解压--bzip23.压缩解压--ta

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

博主在阿里笔试中拿了0分,竟是因为分不清楚 Java 输入类 nextLine 与 next 两个方法的区别

前言 以前做算法题,都是实现一个方法,需要的参数会在方法参数中直接给出,而且需要的返回值直接在方法中 return 就好了。但是,这次阿里笔试,让博主遭遇百万点暴击,需要的参数居然要到输入流中读取,而且返回结果居然直接输出到控制台上! 由于没有见过这种套路,博主的心态极差,且十分惊奇地发现,当使用 Java 输入类 nextLine 方法读取输入流中的字符串时,总会莫名其妙地少读一部分! 然后...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

相关热词 c# 不能序列化继承类 c# char* 调用 c# 开发dll模板 c#添加控件到工具箱 c#控制台组合数 编程计算猴子吃桃问题c# c# wpf 背景透明 随机抽取号码软件c# c# 开发环境 c# 属性和字段
立即提问