Mysql约束----JDBC连接

一、数据库中的约束
1、主键约束:primary key
特点:主键是唯一的;不能为空
逻辑主键:与业务无关的 id
业务主键:与业务有关的


2、唯一约束:unique
3、非空约束:not null


create database day12;
use day12;
create table person(
id int primary key auto_increment,
name varchar(100) not null,
num varchar(100) unique,
description varchar(255)
);
insert into person (name,num,description) values('aa','3701','good man');


4、外键约束:多表
foreign key
4.1一对多
create table department(
id int primary key auto_increment,
name varchar(100)
);
create table employee(
id int primary key auto_increment,
name varchar(100),
salary float(8,2),
dept_id int,
CONSTRAINT dept_id_fk FOREIGN KEY(dept_id) REFERENCES department(id)
);


4.2多对多
create table teacher(
id int primary key auto_increment,
name varchar(100),
salary float(8,2)
);


create table student(
id int primary key auto_increment,
name varchar(100),
grade char(2)
);


create table teacher_student(
t_id int,
s_id int,
primary key(t_id,s_id),
CONSTRAINT t_id_fk FOREIGN KEY(t_id) REFERENCES teacher(id),
CONSTRAINT s_id_fk FOREIGN KEY(s_id) REFERENCES student(id)
);




4.3一对一
create table human(
id int primary key auto_increment,
name varchar(100)
);
create table idcard(
id int primary key auto_increment,
num varchar(100) unique,
CONSTRAINT i_id_fk FOREIGN KEY(id) REFERENCES human(id)
);


二、JDBC的相关概念
1、JDBC是SUN公司提供的访问数据库的规范,一般由接口和抽象类组成。
存放在jdk的java.sql和javax.sql包中
她是JavaEE技术的一种
数据厂商都实现了该规范。一般称之为驱动


三、JDBC入门案例:编写步骤
1、注册驱动
2、建立数据库连接:所有与数据库打交道的代码都是在连接的基础上实施的。
3、建立代表sql语句的对象
4、如果是查询,得到结果集。
5、关闭使用的对象




四、JDBC中的主要接口或者类
1、DriverManager
作用:注册驱动,获取数据库的连接
注册驱动:
DriverManager.registDriver(Driver dirver):
缺点:1、严重依赖驱动
     2、驱动程序会加载2次
正确方案:
Class.forName("com.mysql.jdbc.Driver");
获取数据库的连接:
getConnection(String url, String user, String password) 
getConnection(String url) :
url:jdbc:mysql://localhost:3306/day12?user=root&password=sorry&useUnicode=true&characterEncoding=utf8


getConnection(String url, Properties info) :key值是数据库厂商规定的
Properties props = new Properties();
props.setProperty("user","root");
props.setProperty("password","sorry");


连接串:
mysql:本机的默认端口3306
jdbc:mysql:///day12=jdbc:mysql://localhost:3306/day12
具体看数据库的文档

2、Connection
非常重要
3、Statement
ResultSet executeQuery(String sql) :sql只能是DQL语句select。返回封装了结果的ResultSet对象
int executeUpdate(String sql) :sql只能是DML语句insert update delete.返回影响到的行数。
boolean execute(String sql) :sql可以是任何语句。返回值boolean。返回true不一定执行成功。
如果sql语句有返回的结果集:true
没有结果集:false

 
 
4、ResultSet
结果集中:索引从1开始。

5、PreparedStatement
功能:防注入
     采用占位符?的形式,替换掉SQL中的参数
     支持预编译SQL语句


6、释放资源
Connection一定用完即放


五、JDBC案例:客户信息的CRUD
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值