本周首先暂时结束了java高级知识,进入到了数据库的学习:
java高级部分:
1.多线程:线程并发(多个线程操作共享变量);
锁机制,关键字有synchronize(并发线程安全,可锁对象和方法),wait,notify
(悲观)死锁,,wait,notify,notifyAll;
2.网络编程:UDP数据广播(数据发送者只需向交换机发送一个拷贝,交换机负责将这个信息制作n个拷贝发送给所有机器)
Http协议(HyperText Transfer Protocol)
Json数据格式,语法规则:JSON对象{"属性名":"属性值"}
JSON数组["元素1","元素2"...]
JSON插件:- Json-lib
- Gson
- Jackson
- FastJSON - alibaba
;
数据库部分:(采用mysql5.5数据库,以及navicat图形工具对其操作)
3.系统以及mysql常用命令
系统命令(以管理员身份运行)
: #启动服务
net start mysql
#停止服务
net stop mysql
#进入mysql命令行
mysql -uroot -p密码
#退出mysql命令行
exit
#修改密码
mysqladmin -uroot -p123456 password 密码
#备份数据库实例 mysqldump -uroot -proot mydb > d:/mydb.sql
#备份表 mysqldump -uroot -proot mydb tbuser > d:/tbuser.sql
Mysql常用命令
: --显示数据库实例
show databases;
--创建数据库实例
create database mydb;
--使用数据库实例
user mydb;
--显示实例中所有数据库表
show tables;
SQL语句
auto_increment:设置列自增,可用于主键列以及非空唯一列(not null unique)
unsigned:设置无符号列(列值不允许为负数)
zerofill:设置零填充列(当列数据长度不到定义长度时,数值前补0)
4.SQL语句:
DDL(数据库定义语言:用来建立数据库、数据库对象和定义其列):create、desc(查看表结构)、alter、drop
DML (数据库操纵语言:增删改查):select、insert、delete、update;
DCL(数据库控制语言:控制权限)revork,grant;
5.(完整性条件)约束:1. 主键约束
2. 外键约束
3. 不为空约束
4. 唯一约束
5. 检查约束(mysql暂不支持)
6.数据类型、运算符
7.查询(重点):SELECT 查询列1,查询列2,...
FROM 目标表
【WHERE 查询条件】
【GROUP BY 列名称】
【HAVING 查询条件】
【ORDER BY 列名称 ASC|DESC】
【LIMIT [偏移行,]记录行数】
单表查询:模糊查询(“%”,“_”),聚合函数
多表查询:等值连接,外连接
mysql函数的使用。
import java.io.Serializable;
/**
* 工作详情类
* @author NIUXUYUAN
*/
public class Jobs implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String id; //id
private String experience; //工作经验
private String city; //工作地点
private String industry; //行业
private String detail; //工作详情
private String company; //公司
private String jobname; //职位
public Jobs(String id, String experience, String city, String industry, String detail, String company,
String jobname) {
super();
this.id = id;
this.experience = experience;
this.city = city;
this.industry = industry;
this.detail = detail;
this.company = company;
this.jobname = jobname;
}
@Override
public String toString() {
return "Jobs [id=" + id + ", experience=" + experience + ", city=" + city + ", industry=" + industry
+ ", detail=" + detail + ", company=" + company + ", jobname=" + jobname + "]";
}
public String toString(int i) {
return experience+city+industry+detail+company+jobname;
}
public Jobs() {
// TODO Auto-generated constructor stub
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getExperience() {
return experience;
}
public void setExperience(String experience) {
this.experience = experience;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getIndustry() {
return industry;
}
public void setIndustry(String industry) {
this.industry = industry;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getJobname() {
return jobname;
}
public void setJobname(String jobname) {
this.jobname = jobname;
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
public class AddJobs {
static List<Jobs> list = new ArrayList<>();
File file = new File("jobs");
/**
* 输入数据
* @throws IOException
*/
public void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("以id/experience/education/city/industry/detail/company/jobname格式填入:");
String msg = "";
while(!(msg = br.readLine()).equalsIgnoreCase("quit")) {
add(msg);
}
br.close();
}
/**
* 将数据变为Jobs对象存入list集合
* @param msg
*/
private void add(String msg) {
String[] s = msg.split("/");
Jobs job = new Jobs(s[0], s[1], s[2], s[3], s[4], s[5], s[6]);
list.add(job);
}
private void checkFile() throws FileNotFoundException, IOException, ClassNotFoundException {
if(file.length()>0) {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
List<Jobs> temp = (List<Jobs>)ois.readObject();
if(temp!=null) {
list.clear();
for(Jobs t:temp) {
list.add(t);
}
}
ois.close();
}
}
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
AddJobs aj = new AddJobs();
if(!aj.file.exists()) {
aj.file.createNewFile();
}
aj.checkFile();
aj.input();
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(aj.file));
oos.writeObject(list);
oos.close();
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import java.util.List;
public class Query {
static List<Jobs> list = new ArrayList<>();
File file = new File("jobs");
/**
* 查看file文件,将数据导入list集合
* @throws FileNotFoundException
* @throws IOException
* @throws ClassNotFoundException
*/
private void checkFile() throws FileNotFoundException, IOException, ClassNotFoundException {
if(file.length()>0) {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
List<Jobs> temp = (List<Jobs>)ois.readObject();
if(temp!=null) {
list.clear();
for(Jobs t:temp) {
list.add(t);
}
}
ois.close();
}
}
public void check() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入experience/education/city/industry/detail/company/jobname的某些信息");
String msg = br.readLine();
String[] s = msg.split("/");
String regex = "";
for (String str : s) {
regex += "[\\s\\S]*" + str + "[\\s\\S]*";
}
List<Jobs> temp = new ArrayList<>();
for (Jobs j : list) {
msg = j.toString(1);
if(msg.matches(regex)) {
temp.add(j);
}
}
System.out.println("结果");
for (Jobs jobs : temp) {
System.out.println(jobs);
}
}
public static void main(String[] args) throws FileNotFoundException, ClassNotFoundException, IOException {
Query q = new Query();
q.checkFile();
q.check();
}
}