JDBC入门案例
什么是JDBC?
JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API。
作为一个Web开发人员来说,JDBC操作是基本技能中不能再基本的要求了。当我们了解JDBC是如何工作的,就有利于我们了解持久层框架(如现在流行的Hibernate和Mybatis)是如何操作数据库的,而不仅仅只是会用,我们更要懂得这些底层是如何运作的。
JDBC常用的API
1、Driver接口
Driver接口是所有JDBC驱动程序必须实现的接口,该接口专门提供给数据库厂商使用。
2、DriverManager类
DriverManager类用于加载JDBC驱动并且创建与数据库的连接。
3、Connection接口
Connection接口代表Java程序和数据库的连接。
4、Statement接口
Statement接口用于向数据发送SQL语句,但是该Statement容易受到SQL注入攻击,所以我们推荐使用PreparedStatement接口来向数据库发送SQL语句,PreparedStatement会执行预编译的SQL语句,这样就能避免SQL攻击。
5、PreparedStatement接口
PreparedStatement接口是Statement接口的子接口,用于执行预编译的SQL语句。
6、ResultSet接口
ResultSet接口表示select查询语句得到的结果集,该结果集封装在一个逻辑表格中。
案例:【操作mysql数据库】
创建数据库和表:
create database mydb;
use mydb;
create table t_user(
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(40) DEFAULT NULL,
`password` varchar(40) DEFAULT NULL,
`email` varchar(60) DEFAULT NULL,
`birthday` date DEFAULT NULL,
PRIMARY KEY (`id`)
);
所需要的jar:mysql-connector-java-5.0.8-bin.jar
【下载mysql驱动包可以到官网https://dev.mysql.com/downloads/connector/】
Java代码:【在这里只是简单对所使用的资源进行关闭,后面的博文中会给出更加规范的写法】
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接
String url = "jdbc:mysql://localhost:3306/mydb";
String user = "root";
String password = "123";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String sql = "SELECT id,NAME,PASSWORD,email,birthday FROM t_user";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
System.out.println("==================");
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("NAME"));
System.out.println(rs.getString("PASSWORD"));
System.out.println(rs.getString("email"));
System.out.println(rs.getDate("birthday"));
}
// 回收资源
rs.close();
stmt.close();
conn.close();
}
到这里,基本上就了解了一个简单的JDBC程序如何操作数据库。
最新文章
- Counting Bits -leetcode
- java报表工具FineReport的SQL编辑框的语法简介
- Codeforces Round #219 (Div. 1) C. Watching Fireworks is Fun
- 每日一词【命令行CMD】
- bt种子文件文件结构
- Struts2 权限验证
- SendMessage和PostMessage区别以及WPARAM 和 LPARAM区别
- Net分布式系统之六:微服务之API网关
- CSS相关
- 源码分析Session的台前幕后(Asp .Net MVC5)
- 结对编程总结 -- 赵雄君 &; 冯小纯
- redis设置密码
- weblogic创建控制台启动脚本以及创建服务器
- 官方Canvas API文档
- Virtualbox+Vagrant环境准备
- TestSushu1
- Git分支合并
- js函数集
- 关于PHP程序员技术职业生涯规划 转自 韩天锋
- FS210(cortex-A8)移植MT7601无线WIFI模块
热门文章
- Java-MyBatis-MyBatis3-XML映射文件:select
- PAT甲级——A1070 Mooncake
- python学习笔记4_数据清洗与准备
- NEO4J的安装配置及使用总结
- ES6之字符串学习
- Activiti配置实例以及Spring集成配置
- vue.js组件的个人总结
- Spring AOP(三)--XML方式实现
- Hadoop 集群规模要多大
- Latex报错: Could not start the command: xelatex.exe -synctex=1 -interaction=nonstopmode?