一、MySQL Workbench的坑
(一)往表里面添加汉字键值出现 Incorrect string value。
这种情况是编码问题,貌似默认的是GBK的编码,需要改成utf-8
点击表的右键,点击 Select Rows - Limits 1000 ,就会出现信息
我的:SELECT * FROM user.member_information;
然后将出现的表名复制,替换下面的table_name
alter table table_name convert to character set utf8;
所以我的就变成这样:alter table user.member_information convert to character set utf8;
最后点击圈出来的小闪电,注意要下面执行命令变成绿色才是执行成功!
然后你就可以愉快的使用汉字作为键值了!
(二)、怎么导入xls文件到数据库
我使用MySQL Workbench导入过程出现下面错误,。。。。。。,又是一个小时的找问题(啊啊啊~awsl)
打开xls文件,点击文件另存为,然后选中utf-8 cvs格式的文件。
注意数据格式一定要弄对不然会丢失精度,比如身份证你会发现最后几位丢失。
解决办法如下:
在另存为前修改xls单元格的格式
我这里直接使用文本格式了,可以根据需求选择。
然后另存为
选择csv的格式,不然不能导入到数据库。
保存后,进入csv文件检查下,如果还有其他错误,则同理修改格式。
接下来导入到数据库
找到你想到导入到的表,点击右键选择,Table Date Import Wizard
然后选择需要导入的文件(这里一cvs为例子)
Use existing table 使用已经存在的表,下面个就是新建立个表,然后是表名,前面个是数据库名字,看自己的需求选择。
然后next就是
成功的导入会出现这个,打开Show Logs查看。
然后等全部导入就OK了。
个人吐槽:才1W多的数据导入就有点卡,所以以后几十万几百万的数据呢,数据的迁移是个问题!另外练手数据库需要大量数据啊,怎么来呢,嘿嘿记得某次比赛估摸着有几十G的数据,下次比赛弄点下来(手动狗头)。
二、MyEclipse jsp 连接的坑
基本的连接看这里,基本的东西都有,驱动包点这里,不知道怎么没看到我上次找到的win的文件,那就附上百度云链接吧。
百度云链接:https://pan.baidu.com/s/1gfv3xsKyWr1D4Uc3qjZIRA
提取码:qbni
考虑到百度云下的太慢,来个速度快点的(手动狗头)
链接:https://pan.baidu.com/s/1ne9rfQK1FKu-SHsVdwAcBA
提取码:nq6c
说坑吧,我按照上面的使用总是抛出异常,而且还是一堆。
有个需要注意的就是时区问题,不知道怎么时区对不上,然后就报错,一直连接失败!把url,改为下面这个,
注意端口后面的user是你数据库名字!复制的时候记得替换
String url="jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
附上我JSP的连接代码:
<%
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
Class.forName("com.mysql.jdbc.Driver");
//user是数据库名字
String url="jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
con=DriverManager.getConnection(url,"root","你的密码"); //账号也不一定是root,根据你自己的情况看。
stmt=con.createStatement();
String sql="select * from all_user"; //from 后面是查询的表名,SQL语句,不会百度,
rs=null;
rs=stmt.executeQuery(sql);
while(rs.next()) //显示所有的信息
{
%>
<tr>
<td><%=rs.getString("user_id") %></td> //这里是你表的数据名
<td><%=rs.getString("user_name") %></td>
<td><%=rs.getString("password") %></td>
<td><%=rs.getString("limits") %>
</tr>
<% }
rs.close();
stmt.close();
con.close();
%>
个人吐槽:数据库信息还是需要加密啊,浏览器抓个包全部抓到了,如果时间够的话,写个简单的JS加密。
课设加油,下周要搞定!