JDBC简介
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 —— 摘自 百度百科
工具
- IntelliJ IDEA Ultimate
- MySQL5.7
- mysql-connector-java-5.1.46-bin.jar 点击下载
设计数据库表
建立一张数据表,来为等会的操作做准备
建表语句如下:
CREATE TABLE stu
(
id INT PRIMARY KEY ,
NAME VARCHAR(20),
sex VARCHAR(2),
age INT
);
INSERT INTO stu VALUES(1,'张三', '男', 16);
INSERT INTO stu VALUES(5,'李四', '男', 18);
INSERT INTO stu VALUES(17,'小美', '女', 17);
INSERT INTO stu VALUES(21,'王五', '男', 20);
INSERT INTO stu VALUES(9,'萌萌', '女', 15);
当然也可以使用可视化界面NaviSQL来输入数据,如下图所示
代码实现
数据库名: study
表名: stu
端口号: 3306
用户名: root
密码: 1234
工程目录
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JdbcDemo {
public static void main(String[] args) throws Exception {
//注册连接
Class.forName("com.mysql.jdbc.Driver");
//获取连接
/*
* jdbc url编写方式jdbc:mysql://主机名:连接端口/数据库名
* 当然还可以在数据库名后面加上 ?参数=值
* useUnicode=true&characterEncoding=utf-8 解决中文乱码
* */
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=utf-8", "root", "1234");
//编写sql语句
String sql = "SELECT * FROM stu;";
//创建语句执行者
PreparedStatement st = conn.prepareStatement(sql);
//执行语句
ResultSet rs = st.executeQuery();
//显示结果
while (rs.next()) {
System.out.println(rs.getString("id") + " --- " + rs.getString("NAME") + " --- "
+ rs.getString("sex") + " --- " + rs.getString("age"));
}
//释放资源
rs.close();
st.close();
conn.close();
}
}
运行结果
当然也单独封装成为一个util文件夹下的一个工具类,方便后面操作的使用。
package com.csdn.util;
import java.sql.*;
public class JDBCutil {
/*
* 创建并返回连接
*
* */
public static Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=utf-8", "root", "1234");
return conn;
}
/*
* 释放资源
*
* */
public static void closeResource(Connection conn, Statement st, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
} else {
//
rs = null;
}
if (st != null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
} else {
st = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
} else {
conn = null;
}
}
}