jdbc技术
java database connectivity--java 数据库 连接
sun设计的技术规范
接口
各个数据厂商做具体的实现
sqlserver -- 微软
Oracle、mysql -- Oracle
DB2 -- IBM
...
JDBC四个重要参数
四个重要参数
a.驱动字符串
com.microsoft.sqlserver.jdbc.SQLServerDriver
com.microsoft.sqlserver.jdbc.SQLServerDriver.class
b.url连接字符串
jdbc:sqlserver://localhost:1433;dataBaseName=数据库名
c.user(数据库用户名)
d.pwd(数据库密码)
三个核心接口(java.sql)
a.Connection接口(连接对象)
b.Statement接口(语句操作对象)
c.ResultSet接口(结果集对象)
预编译语句对象PrepareStatement
预编译:在java程序这一段就将sql语句编译好,生成编译文件
向数据库发送的是预编译文件,而非sql
相同sql(参数可以不同),不会重复发送预编译文件
大大提升了程序的性能
建表
部门表
删除表
drop table Dept
drop table Emp
create table Dept(
deptno int primary key, --部门编号
dname varchar(200) not null,--部门名称
location varchar(400) not null -- 部门地址
)
员工表
create table Emp(
empno int primary key identity,--员工编号
ename varchar(50) not null,--姓名
sex char(3) check(sex in('男','女')) default '男',--性别
age int check(age between 18 and 60),--年龄
sal float check(sal>=3000) default 3000,--薪资
deptno int references Dept(deptno)
)
select * from dept
select * from emp
添加
insert into dept values(10,'java开发部','北京'),(20,'市场','上海'),
(30,'企划部','长沙')
select * from dept
insert into emp values('熊大','男',25,12000,10),('熊二','男',23,11000,10),
('张三','女',21,9000,10),('李四','女',26,15000,20),('王五','男',27,16000,20),
('赵六','女',20,6000,20),('孙七','男',21,10000,30),('吴八','女',23,13000,30),
('邓九','男',20,9000,30),('常十','女',21,8000,30);
select * from emp
删除表中所有的记录,如果再添加记录标识列,会重新开始
truncate table emp
package demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
import org.junit.Test;
public class TestDemo {
/**
* 使用jdbc往数据库dept表中插入一条记录
* 增删改
*/
@Test
public void test1(){
try {
//加载数据的驱动类
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//连接字符串
String url = "jdbc:sqlserver://localhost:1433;dataBaseName=db01";
//用户名
String user = "sa";
//密码
String pwd = "123";
//获得连接对象(java和数据库之间搭建桥梁)
Connection conn = DriverManager.getConnection(url, user, pwd);
//增
//String sql = "insert into dept values(50,'人力资源部','武汉') ";
//删
//String sql = "delete from dept where deptno=50";
//改
String sql = "update emp set sal += 1000";
//获得语句对象,语句对象通过连接对象获得
Statement stmt = conn.createStatement();
//发送sql,操作数据库 ,增删改都使用executeUpdate()
int num = stmt.executeUpdate(sql);
System.out.println(num);//1 表示成功
//关闭资源(三个接口)
//顺序 先打开的后关闭
stmt.close();
conn.close();
} cat