一、MySQL Workbench的坑


(一)往表里面添加汉字键值出现 Incorrect string value。

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_数据库

   这种情况是编码问题,貌似默认的是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;

  最后点击圈出来的小闪电,注意要下面执行命令变成绿色才是执行成功!

  

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_MySQL_02

 

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_数据库_03

   然后你就可以愉快的使用汉字作为键值了!

 (二)、怎么导入xls文件到数据库

  我使用MySQL Workbench导入过程出现下面错误,。。。。。。,又是一个小时的找问题(啊啊啊~awsl)

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_数据_04

  打开xls文件,点击文件另存为,然后选中utf-8  cvs格式的文件。

 注意数据格式一定要弄对不然会丢失精度,比如身份证你会发现最后几位丢失。

解决办法如下:
在另存为前修改xls单元格的格式

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_MySQL_05

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_数据_06

我这里直接使用文本格式了,可以根据需求选择。

然后另存为

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_数据库_07

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_数据_08

选择csv的格式,不然不能导入到数据库。

保存后,进入csv文件检查下,如果还有其他错误,则同理修改格式。

接下来导入到数据库
找到你想到导入到的表,点击右键选择,Table Date Import Wizard

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_数据库_09

然后选择需要导入的文件(这里一cvs为例子)

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_MySQL_10

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_MySQL_11

Use existing table 使用已经存在的表,下面个就是新建立个表,然后是表名,前面个是数据库名字,看自己的需求选择。

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_MySQL_12

然后next就是

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_数据库_13

成功的导入会出现这个,打开Show Logs查看。

MySQL workbench打开后下面的按键是灰色的 mysql workbench遇到问题_数据_14

  然后等全部导入就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加密。

课设加油,下周要搞定!