Java连接MySQL数据库
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。通常说的JDBC是面向关系型数据库的。
准备工作
1.在eclipse中新建一个java项目
2.在MySQL数据库中创建一个数据表,并插入数据
--创建一个表,包含两个字段
create table user(
id int primary key auto_increment,
name varchar(20)
)
--向表中插入几条记录
insert into user(name) values
('Jerry'),('Smith'),('Mary'),('Tom')
3.查询表中的数据
select * from user;
4.导入包
下载包
MySQL驱动包网盘地址:https://pan.baidu.com/s/1jCiFky_Q7cmD0tVyijBxyg
提取码: sh9s
将包导入到创建的web项目中
在项目上,右键选择Build Path->Configure Build Path,选择Libraries选项卡
下一步,点击Add External Jars 按钮,在弹出的对话框中,添加下载好的包
依次点击“打开->Apply->Apply And Close”,查看包是否成功导入
JDBC连接过程
1.加载驱动 采用Java的反射机制,加载数据库的驱动包
Class.forName("com.mysql.jdbc.Driver");
2.创建链接对象
String url = "jdbc:mysql://localhost:3306/csdn";
String username ="root";
String password = "root";
conn = DriverManager.getConnection(url,username,password);
3.执行SQL语句
String sql = "select * from user";
stat = conn.prepareStatement(sql);
rs = (ResultSet) stat.executeQuery();
4.遍历结果集
while(rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println(id + " : " + name);
}
5.执行结果
完整代码
package cn.sd.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.mysql.jdbc.ResultSet;
public class JDBCTest {
public static void main(String[] args) {
// 创建连接对象,结果集对象等
Connection conn = null;
PreparedStatement stat = null;
ResultSet rs = null;
try {
// 加载类
Class.forName("com.mysql.jdbc.Driver");
// 连接的URL 格式为:jdbc:mysql://ip地址:端口号/数据库名
String url = "jdbc:mysql://localhost:3306/csdn";
String username = "root";
String password = "root";
// getConnection参数说明:username为数据库的用户名,password为用户密码
conn = DriverManager.getConnection(url, username, password);
// 要执行的SQL
String sql = "select * from user";
// 获取PrepareStatement对象
stat = conn.prepareStatement(sql);
// 执行SQL语句
rs = (ResultSet) stat.executeQuery();
// 遍历结果集
while (rs.next()) {
// 获取属性名为id的int类型属性值
int id = rs.getInt("id");
// 获取属性名为name的String类型属性值
String name = rs.getString("name");
// 输出获取的属性值
System.out.println(id + " : " + name);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
//关闭对象
if (rs != null) {
rs.close();
}
if (stat != null) {
stat.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
在遍历结果集时,如果不知道属性的名字,需要用到Java的反射机制,来获取属性值。在以后的文章中会单独说明Java反射机制的相关操作,以及如何动态的获取数据库中的属性值。