MySQL01

1.mysql
//查看数据库

show databases;

//使用指定的数据库

use test;

//创建自己的数据库
create database 数据库名字 default character set utf8;
//创建数据库jsd1803

create database jsd1803 default character set utf8;

//进入指定数据库

use jsd1803;

//查看数据库下面的表

show tables;

//查看系统时间

select now() from dual;

//创建员工表emp_xi

create table emp_xi(
empno int(4) primary key auto_increment,
ename varchar(20) not null,
position varchar(15),
salary double(7,2),
bonus double(5,2),
hiredate date,
leader int(4),
deptno int(2)
);

注意:primary key auto_increment 表示主键自增长

//查看表结构

desc emp_xi;

insert into emp_xi values(1001,'张三丰','Analyst',99999.99,999.99,now(),NULL,10);
insert into emp_xi values(1002,'张无忌','Programmer',5000,NULL,now(),1001,10);
insert into emp_xi values(1003,'杨过','Manager',8000,500,now(),NULL,10);
insert into emp_xi values(1004,'郭靖','Salesman',4500,999,now(),1005,20);
insert into emp_xi values(1005,'黄蓉','Manager',6000,NULL,now(),NULL,20);
insert into emp_xi values(1006,'洪七公','Clerk',3000,NULL,now(),1005,20);
insert into emp_xi values(1007,'韦小宝','Salesman',4000,800,now(),NULL,30);
insert into emp_xi values(1008,'乔峰','Analyst',8000,600,now(),1007,30);
insert into emp_xi values(1009,'小龙女','Manager',1500,NULL,now(),1008,30);
insert into emp_xi values(1010,'段誉','President',15000,100,now(),NULL,40);
insert into emp_xi values(1011,'孙悟空','Salesman',50000,300,now(),1010,40);
insert into emp_xi values(1012,'燕小六','Analyst',12000,999.99,now(),1010,40);

//更改服务器编码

set names gbk;//当前会话有效

//创建部门表

create table dept_xi(
deptno int(2) primary key auto_increment,
dname varchar(20) not null,
location varchar(15)
);

insert into dept_xi values(10,'研发部','南京');
insert into dept_xi values(20,'行政部','苏州');
insert into dept_xi values(30,'市场部','合肥');
insert into dept_xi values(40,'财政部','无锡');
insert into dept_xi (dname,location)values('后勤部','上海');

JDBC MYSQL
Driver接口及驱动类-》MySQL

Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jsd1803","root","1234");

src下面创建.properties文件
首先把.properties文件的编码方式改成UTF-8 (右击.properties文件,选择首选项,改编码)

insert into dept_xi values(50,'','');
String sql="insert into dept_xi values("+dept.getDeptno()+",'"+dept.getDname()+"','"+dept.getLocation()+"')";

update dept_xi set dname='吃瓜部',location='南极' where deptno=50;

String sql="update dept_xi set dname='"+dept.getDname()+"',location='"+dept.getLocation()+"' where deptno="+dept.getDeptno()+"";

语句对象
Statement
PreparedStatement
Statement 主要用于执行一些静态的SQL语句,即内容固定不变
Statement每执行一次都要对传入的SQL语句编译一次,效率低。
某些情况下,SQL语句只是其中的参数不同,其他语句都是相同。
这种适用于PreparedStatement,PreparedStatement能预防SQL注入攻击

PreparedStatement是接口,继承Statement,SQL语句提前编译。
三个常用方法execute、executeQuery、executeUpdate已被修改,不需要参数

PreparedStatement实例包含事先编译的SQL语句
SQL语句可以由一个或N个IN参数,IN参数的值在SQL语句创建时未被指定,
此语句为每个IN参数保留一个问号('?'占位符)。每个问号的值必须在此语句执行前赋值,
通过适当的setInt或者setString方法提供

因为PreparedStatement对象已经预编译过,所以执行速度快于Statement对象,建议多次执行的SQL
语句创建为PreparedStatement对象,以提高执行效率。
比如:批处理

//重构员工表

MySQL
insert into emp_xi values(?,?,?,?,?,?,?,?);
update emp_xi set ename=?,position=?,salary=?,bonus=?,hiredate=?,leader=?,deptno=? 
where empno=?;
delete from emp_xi where empno=?;
原文地址:https://www.cnblogs.com/yingyigongzi/p/9165673.html