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=?;