Diary

<------个人网站传送门---------->

2018年11月17日                                   星期六                               Cold

作为一个迷茫的本科生,最近是更加迷茫了,只想感慨一句,网络知识深似海啊!

临近期末,周一到周五几乎都满课,各类课设也是多了起来。

前端需要做一个校园BBS论坛网站,功能包括用户的登录与注册,帖子的发布,评论和查看等。

这个东西,还真是可大可小,可好好做亦可糊弄了事。

都大三了,还是好好动手做吧。本着“兵马未动,粮草先行”的战略思想,当然是从数据库入手。

之前分别学了SQL Server和Oracle,可惜学的都不咋滴,也就写写简单的Select了。

网上总结的这3个数据库总体的特点如下:

一、 Oracle:最贵,功能最多,安装最不方便,Oracle环境里的其他相关组件最多,支持平台数据量一般,使用中等方便,开发中等方便,不开源,速度最慢、最安全。

二、 Microsoft SQL Server:中等贵,功能最少,安装中等方便,sqlserver环境里的其他相关组件最少,支持平台最少,使用最方便,开发最方便,运维最方便,不开源,速度中等,一般安全

三、 Mysql:免费,功能中等,安装最方便,mysql环境里的其他相关组件数量中等,支持平台最多,使用最不方便,开发最不方便,运维最不方便,有开源版本,速度最快,最不安全。

所以,这次我选择用MySQL数据库。

说起这个安装,是真的辛酸,说好的安装最方便,由于个人的一些不当操作导致超级麻烦了。(也只能怪自己喽)

一开始在菜鸟联盟看的MySQL安装教程,根据它的方法进行安装,由于下的是压缩包,即一个免安装版,所以需要自己配置my.ini文件。

可是不管根据上面的教程还是网上其他地方的配置教程,都在初始化时(mysqld --initialize --console)出现了一些问题。

好不容易弄好my.ini文件,成功获取到root用户的初始密码,却发现登录时验证出错,据说是因为密码错误。

根据网上的教程改了改,发现还是不行。便开始重新用.msi文件进行安装。

由于之前的版本也没个卸载程序啥的,只是通过删除文件清楚了,却忽略了注册表残留。

根据网上给的方法清空,重装好几次还是不行,每次都卡死在start service,试了网上各类办法均无果, 到现在不明白为啥,真的已经清理的很干净了啊...

只好用最莽的办法,直接重装系统,说起来装系统还是快的啊,也可以很好地解决问题。

重装完系统后飞速装上了MySQL5.6,畅通无阻,可算是了了一桩大事。

 

那么之前的一些别的东西就得重新配置了,例如JDK、Tomcat等。

这里归纳下环境变量的配置,系统变量非用户变量

(1)新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径
(2)编辑->变量名"Path",在原变量值的最后面加上“
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
(3)新建->变量名“CLASSPATH”,变量值“
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

验证:控制台输java,javac,java -version(注意有空格,今天输错了,一直以为没有配置成功...)

再归纳一些常用的东西:

MySQL常用操作

//创建数据库users
create database users ;
//创建table,注意需要指明主键
 CREATE TABLE `usermessage` ( 
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '用户名称',
  `password` varchar(20) NOT NULL DEFAULT '' COMMENT '用户密码',
  `sex` varchar(10) NOT NULL DEFAULT '' COMMENT '性别', 
  `email` varchar(20) NOT NULL DEFAULT '' COMMENT '邮箱地址', 
  `telenum` varchar(20) NOT NULL DEFAULT 0 COMMENT '电话号码',
  `introduce` varchar(200) NOT NULL DEFAULT '' COMMENT '个人介绍',
  PRIMARY KEY (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
//查表
select * from usermessage;
//插入数据
insert INTO `usermessage` values('jingyile','336336336','男','1159131237@qq.com','17865569671','冲鸭!!');
//更新数据
UPDATE usermessage SET introduce='学习 C++' WHERE name='jingyile';
//删表!!
DROP TABLE usermessage;
//查看字符集
show variables like '%character%';
//更改字符集为utf8
set character_set_server=utf8;
set character_set_filesystem=utf8;

利用JDBC连接MySQL数据库常用操作,需要自己下载所需jar包并导入.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<%@ page language="java" %>
 
<%@ page import="com.mysql.jdbc.Driver" %>
 
<%@ page import="java.sql.*" %>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
Class.forName("com.mysql.jdbc.Driver");//记载数据库驱动,注册到驱动管理器
String url = "jdbc:mysql://localhost:3306/users?characterEncoding=utf8"; //?后面的用于防止中文乱码
String user = "root"; //用户名
String password = "201658503102"; //密码
String tableName="abc";//表名
Connection conn = DriverManager.getConnection(url,user,password); 
Statement statement = conn.createStatement();
-------------------------------------分割线----------------------------------------
String text=request.getParameter("txt");//从表单中接受数据
String id01="01";
String sql1="SELECT * FROM "+tableName+" where id='"+id01+"' order by num;";	//排序输出
ResultSet rs = statement.executeQuery(sql1);//用于产生单个结果集的语句
ResultSetMetaData rmeta = rs.getMetaData();//返回 ResultSetMetaData 对象
rs.last();//重要!!
int num=rs.getRow()+1;
rs.first();//一定要回退
String sql="Insert into "+tableName+" values('"+id01+"',"+num+",'"+text+"')";
statement.executeUpdate(sql);
  statement.close();//一定要关闭
  conn.close();
  %>

Statement:Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。

Statement对象,用于执行不带参数的简单SQL语句。

Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。

方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。

方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。不常用...

ResultSet类是一种数据库查询结果存储类,就是当查询数据库的时候,可以将查询的结果放在具体的ResultSet对象中,其实我们把这种存储查询结果的ResultSet对象叫做ResultSet结果集。ResultSet结果集有一个索引指针,最初这个指针是指向第一条记录的前一个位置,也就是没有指向任何内容,使用x.next()方法就会使指针往后移动指向下一个记录,所以一定要先执行一次next()函数才会让指针指向第一条记录。

ResultSet相关ResultSetMetaData详细

中文乱码是一个很麻烦的东西,大概由于eclipse、MySQL使用的并非同一编码导致。

关于eclipse的syso快捷键为ALT+/ ,一段时间不用老是会忘记。

Tomcat  http://localhost:8080/

Git同步仓库,cd 到文件目录
然后
git add 文件名
git commit -m "描述"
git statues
git push

控制台定位

直接输入盘符加冒号可以跳转到相应的盘去,如 d:
cd 路径 (子目录)
cd \路径 (并列)

一个超级实用的技巧,打开文件夹在状态栏输CMD可以直接定位。

转载于:https://www.cnblogs.com/JYL666/p/10133275.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值