******************************************
(链接数据库时出现的问题)主键问题 com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '0' for key 1
针对于 executeUpdate() 方法
A_id integer auto_increment,
person char(15),
in_out char(4),
-- 缺勤时间
io_time datetime,
primary key(A_id),
foreign key (person) references Person(person)
);
auto_increment 是将主键号自动递增
****************************************************
在网页中传输的是String 但是javabean接收的是 Timestamp
org.apache.jasper.JasperException: Unable to convert string
解决:
在接收时,不要用javabean去接收
******************************************************
jsp下部署图片
*****************************************************
在客户端从数据库获取 数据的时候:
一开始是在工程下直接获取数据,但是一直获取不出来
通过EL的相对路径来获取的话就可以
加上这段代码<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
这个是调用jstl库里头的EL
<td>●<a href=" ${pageContext.request.contextPath }/servlet/FindServlet">考勤修改窗体</td>
******************************************************
在通过servlet获取session的时候
*****************************************************
jdbc链接数据库,从客户端获取数据,问题:在数据表中的数据中文出现乱码"??"
这个问题有三个方向入手 1:在创建数据库的时候,将编码设定为 utf8;
(链接数据库时出现的问题)主键问题 com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '0' for key 1
解决:
Connection conn = DriverManager.getConnection(url, username, password);
String sql = "insert into attendance(person,in_out,io_time) values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, book.getPerson());
ps.setString(2, book.getIn_out());
ps.setTimestamp(3, Timestamp.valueOf(request.getParameter("Tio_time")));//-------------javabean 里头获取的是一个Timestamp,但是在html里头传递是是一个string所以不能用Timestamp接收
int row = ps.executeUpdate(); //不能直接的接收,要间接的接收
if(row>0){
out.print("成功添加了 "+row + "条数据!");
}
ps.close();
conn.close();
针对于 executeUpdate() 方法
没有自动跟新,会报出 Duplicate entry '0' for key 1 错误,因为这个错误是你在对数据库 增加数据的时候一直在对 同一个主键重复添加,所以他就会报出错误
create table attendance
(A_id integer auto_increment,
person char(15),
in_out char(4),
-- 缺勤时间
io_time datetime,
primary key(A_id),
foreign key (person) references Person(person)
);
auto_increment 是将主键号自动递增
****************************************************
在网页中传输的是String 但是javabean接收的是 Timestamp
org.apache.jasper.JasperException: Unable to convert string
解决:
在接收时,不要用javabean去接收
<div id="apDiv1"> <form action="add_kq.jsp" method="post" οnsubmit=" return check(this)">
<ul>
<li>员 工 号 : <input type="text" name="person"/></li>
<li>
出入情况 : <input type="text" name="in_out"/></li>
<li>出入时间 : <input type="text" name="Tio_time"/></li>
<li><input type="submit" value="添加"></li>
</ul>
<li>出入时间 : <input type="text" name="Tio_time"/></li>
注意:Tio_time
这个是为了区别 javabean里头 的那个 Timestamp 对象的实例
问题就是出在这一句,由于这个是我自己做的工程,所以要是看不懂的,可以跟我要工程的源码;
javabean
public class AttendanceBean {
private int A_id;
private String person;
private String in_out;
private Timestamp io_time;<span style="font-family: Arial, Helvetica, sans-serif;">}</span>
ps.setString(1, book.getPerson());
ps.setString(2, book.getIn_out());
ps.setTimestamp(3, Timestamp.valueOf(request.getParameter("Tio_time")));//-------------javabean 里头获取的是一个Timestamp,但是在html里头传递是是一个string所以不能用Timestamp接收
int row = ps.executeUpdate(); //不能直接的接收,要间接的接收
注意这里头的区分
******************************************************
jsp下部署图片
<br><a href="${pageContext.request.contextPath }/main.jsp"> <返回></a>
<div id="apDiv1"><img src="../Images/3.gif" width="612" height="80"><span style="font-family: Arial, Helvetica, sans-serif;"></div></span><span style="font-family: Arial, Helvetica, sans-serif;">这个里头要用 ../ 来获取相对路径</span><span style="font-family: Arial, Helvetica, sans-serif;"><img src="../Images/3.gif"</span>
*****************************************************
在客户端从数据库获取 数据的时候:
一开始是在工程下直接获取数据,但是一直获取不出来
通过EL的相对路径来获取的话就可以
加上这段代码<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
这个是调用jstl库里头的EL
<td>●<a href=" ${pageContext.request.contextPath }/servlet/FindServlet">考勤修改窗体</td>
******************************************************
在通过servlet获取session的时候
先加载数据,才可以对数据进行操作
在客户端与服务器中,你要先去访问 查找 的那个servlet,再去执行操作才能获取到数据库;
先访问FindServlet 才能实现 UpdateServlet
这个是FindServlet里头重定向回去
// 请求转发到bookList.jsp
request.getRequestDispatcher("/setTime.jsp").forward(request, response);
*****************************************************
jdbc链接数据库,从客户端获取数据,问题:在数据表中的数据中文出现乱码"??"
这个问题有三个方向入手 1:在创建数据库的时候,将编码设定为 utf8;
2:在数据库表中的 字符集 是否为 utf8;
3:String url = "jdbc:mysql://localhost:3306/db_kaoqin?characterEncoding=utf8";