您的位置:首页 > 数据库

JDBC 实现 数据库的增删改查

2016-08-02 10:22 417 查看
没有 JDBC和ODBC 之前,访问不同数据库需要编写相应的数据库访问程序,ODBC 使得访问链接数据库的接口统一,访问不同数据库的 API 一致。

JDBC 是 Java Database Connector,JDBC API 主要供开发人员使用,JDBC Driver API 主要供底层 数据库 开发人员使用,用于设计与具体数据库的接口。

JDBC 实现的流程

加载驱动 —— 加载数据库驱动,一般是Class.forName方法实现;

打开链接 —— 开启数据库链接,参数包括数据库 URL 、Name 和 pwd;

执行查询 —— 执行数据库查询语句;

处理结果 —— 处理数据库查询结果;

清理环境 —— 清理数据库环境,依次关闭开启的 API;

下面将展示数据库 MySQL 和 Eclipse 下的 数据库对数据的 增删改查代码

create table tbl_user(
id int(11) unsigned not null auto_increment,
name varchar(50) not null default '',
password varchar(50) not null default '',
email varchar(50) default '',
primary key (id))
engine = InnoDB
default charset = utf8;

create table tbl_address(
id int(11) unsigned not null auto_increment,
city varchar(20) default null,
country varchar(20) default null,
user_id int(11) unsigned not null,
primary key(id))
engine = innodb
default charset = utf8;

insert into tbl_user(id,name,password,email) values
(1,'xiaoming','123456','xiaoming@gmail.com'),
(2,'xiangzhang','123456','xiaozhang@gmail.com');

insert into tbl_address (city,country,user_id) values
('beijing','china',1);

insert into tbl_address (city,country,user_id) values
('tianjin','china',2);

package jdbc_Pack_003;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/*
jdbc 的执行顺序:
1.加载驱动
2.打开链接
3.执行查询
4.处理结果
5.清理环境
*/
public class JDBC_Pack_003 {
public static void main(String[] args) {
String sql = "select * from tbl_user";
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
//			Class 和其他类一样继承自 Obj 类,不同的是 它还封装了 被封装到 JVM 之中的类的信息,类的成员变量,
//			类的成员方法,类的实现接口或者父类 等等
//			forName 用来初始化参数指定的类,并创建一个实例化对象
//			此处的参数 是 jdbc 中的 MySQL 的驱动程序
Class.forName("com.mysql.jdbc.Driver");
//			localhost 是服务器主机,3360 是主机端口,test 是DB的名字
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","1233211234567");
st = conn.createStatement();
rs = st.executeQuery(sql);
while (rs.next()) {
System.out.print(rs.getInt("id")+"   ");
System.out.print(rs.getString("name")+"   ");
System.out.print(rs.getString("email")+"   ");
System.out.println();
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}finally{
try {
rs.close();
st.close();
conn.close();
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.getMessage());
}
}
}
}

package jdbc_Pack_004;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JDBC_Cls_004 {
public static Connection getConnection(){
Connection connection = null;
try{
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db","root","1233211234567");
}
catch(Exception e){
e.printStackTrace();
}
return connection;
}

public static void insert(){
Connection connection = getConnection();
try {
String sql = "INSERT INTO tbl_user(name,password,email)VALUES('Tom','123456','tom@gmail.com')";
Statement statement = (Statement) connection.createStatement();
int count = statement.executeUpdate(sql);
System.out.println("用户向表中插入了"+count+"条记录 !");
connection.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}

public static void update(){
Connection connection = getConnection();
try {
String sql = "UPDATE tbl_user SET email='tom@hotmail.com' WHERE name='Tom'";
Statement statement = (Statement) connection.createStatement();
int count = statement.executeUpdate(sql);
System.out.println("用户向表中更新了"+count+"条记录 !");
connection.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}

public static void delete(){
Connection connection = getConnection();
try {
String sql = "DELETE FROM tbl_user WHERE name='Tom'";
Statement statement = (Statement) connection.createStatement();
int count = statement.executeUpdate(sql);
System.out.println("用户向表中删除了"+count+"条记录 !");
connection.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}

public static void main(String []args) {
//		insert();
//		update();
delete();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息