JDBC学习笔记

这篇文章是本人学习JDBC过程的笔记记录,这里将其整理出来,供大家学习使用,本着简单易用的原则,本文章不进行过多的理论介绍,相关的知识还请大家查阅官方文档。同时由于是对JDBC的使用介绍,所以关于数据库方面的内容也不进行过多介绍。

JDBC介绍

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标[1]。JDBC是面向关系型数据库的。 — 维基百科

JDBC的作用

简单的来说,为了在Java中使用SQL,或者说, 为了使用Java来操作SQL,这里就需要某一些桥梁(由于数据库客户端类型众多,Java无法做到匹配所有的数据库)来连接Java与数据库,JDBC就是这样的一个桥梁。准确地来说,JDBC是这样的一个标准,由对应的数据库提供商实现,并且提供对应的实现工具,如 mysql-connector-java-5.1.40-bin.jar 是MySQL实现的一个JDBC连接池工具,当然还有Oracle的实现,SQL Server的实现等。

JDBC的基本使用

所需工具
  • MySQL
  • MySQL JDBC 连接池 mysql-connector-java-5.1.40-bin.jar 这个可以在MySQL官网中下载得到。
  • Eclipse/MyEclipse
先前准备

1 为了操作数据库,这里我们使用MySQL建立一个简单的数据表进行操作,相关的SQL语句如下

create database jdbctest;
use jdbctest;
create table user(
    id int primary key,
    name varchar(10),
    age int(2)
    );  
insert into user(id, name, age) values(001, 'Andrew', 22);
insert into user(id, name, age) values(002, 'John', 33);        

2 建立一个Java项目 LearningJDBC,并且将MySQL连接池添加到路径中

连接操作

1 注册驱动

try {
    Class.forName("com.mysql.jdbc.Driver"); // 加载驱动
} catch (ClassNotFoundException e) {
    System.out.println("无法加载驱动");
    e.printStackTrace();
}

2 获得连接

String url = "jdbc:mysql://localhost:3306/jdbctest";
String username = "root";
String password = "huanfeng";
Connection conn = null;
Statement statement = null;
try {
    conn = DriverManager.getConnection(url, username, password); //获得连接
} catch (SQLException e) {
    System.out.println("无法连接数据库");
    e.printStackTrace();
}

上面的url的格式为 jdbc:数据库类型:数据库地址:端口/对应的库
这样,我们就成功连接到了对应的数据库,并且成功获得其连接Connection,下面,我们来对其进行常见的增删改查操作。

查询操作
statement = conn.createStatement();
int id = 001;
String sql = "Select * from user where id = " +id;
ResultSet result = statement.executeQuery(sql);
while(result.next()){
    System.out.println(result.getString("name"));
}
result.close();

上面我们是使用Statement,对应的采用SQL拼接的方式来拼接SQL语句,这种方式是很容易造成SQL注入的,也就是说,使用这种方式比较不安全,于是就有了另外的工具 PreparedStatement ,具体操作如下

PreparedStatement statement = null; //使用PreparedStatement
try {
    conn = DriverManager.getConnection(url, username, password); //获得连接
    int id = 001;
    // 使用 ?作为占位符
    String sql = "Select * from user where id = ? ";
    statement = conn.prepareStatement(sql);
    statement.setInt(1, id); //注意,从1开始
    ResultSet result = statement.executeQuery();
    while(result.next()){
    System.out.println(result.getString("name"));
}

PreparedStatement 相对于Statement的安全性在于,PreparedStatement 采用预编译的方式对SQL语句进行预编译,采用这种方式可以很好的防止SQL注入。

插入操作
int id = 003;
String name = "test";
int age = 23;

String sql = "insert into user(id, name, age) values(?, ?, ?)";
statement = conn.prepareStatement(sql);
statement.setInt(1, id);
statement.setString(2, name);
statement.setInt(3, age);
int result = statement.executeUpdate();// 插入、删除、更新都是使用executeUpdate()方法;
更新操作
int id = 003;
String name = "hello";

String sql = "update user set name = ? where id = ?";
statement = conn.prepareStatement(sql);
statement.setString(1, name);
statement.setInt(2, id);
int result = statement.executeUpdate();
删除操作
int id = 003;       
String sql = "delete from user where id = ?";
statement = conn.prepareStatement(sql);
statement.setInt(1, id);
int result = statement.executeUpdate();
System.out.println(result);

以上就是JDBC的简单操作,未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值