最近在学习JDBC,顺便写写相关步骤,练练手。不多说,上代码!
事前准备:
- 安装好mysql,没有的可以去下载,下载及安装步骤传送门:https://www.runoob.com/mysql/mysql-install.html
- 装好eclipse,安装及下载传送门:https://www.runoob.com/eclipse/eclipse-install.html
创建数据库:
- create database jdbcdemo;
- create table Account(id int ,name varchar(10),money double);
- insert into account values(1,"张三",1000.00);
- insert into account values(2,"李四",1000.00);
- insert into account values(3,"王五",1000.00);
- select * from account;
/**
* 创建一个 数据库,在库中创建一个Account表,
* 插入三条记录,然后利用Java程序查询出Account表中所有的记录
* 并打印在控制台上
* @author wood
*/
public class JDBCDemo {
public static void main(String[] args) throws Exception {
// 1.注册数据库驱动
//加载类到内存中,执行内部代码;Driver为com.mysql.jdbc这个jar包下的一个类,Driver驱动,没有的可以去下载
Class.forName("com.mysql.jdbc.Driver");
// 2.获取数据库连接,返回的Connection连接对象是JDBC程序连接数据库的一个对象
//驱动管理器里面的一个获取连接的方法; 数据库路径,用户名,密码
//DriverManager.getConnection(数据库路径,数据库帐号,数据库密码)数据库路径:jdbc:mysql协议名+localhost本地计算机(或者IP地址)+3306端口号+对应数据库名
//为什么导入的包为java.sql.Connertion包,这个关于到了面向对象编程,因为返回的是一个
//mysql的连接对象,其父类为java.sql.Connection,也方便以后就算修改为其他数据库,修改也方便
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/jdbcdemo",
"root",
"root");
//打印一下,看自己的路径.数据库账号密码是不是填写正确
System.out.println("连接成功");
// 3.获取传输器
//Statement传输器对象用于向数据库服务器发送sql语句,
//该对象上提供了发送sql的方法executeQuery(""),executeUpdate("")
//executeQuery(String sql)用于向数据库发送查询类型的sql语句,返回一个ResultSet对象
//executeUpdate(String sql)用于向数据库发送更新(增加、删除、修改)类型的sql语句,返回一个int值,表示影响的记录行数
Statement stat = conn.createStatement();
// 4.利用传输器发送SQL到数据库执行,并返回执行结果
//创建一个sql执行语句
String sql = "select * from account";
//ResultSet对象用于封装sql语句查询的结果,该对象上提供了遍历数据及获取数据的方法
ResultSet rs = stat.executeQuery(sql);
// 5.处理结果:将表中所有的记录输出在控制台
//rs.next() 判断是否有下一条数据,没有返回false
while (rs.next()) {
//通过get方法+对应数据类型 获取想要的数据
int id = rs.getInt("id");
String name = rs.getString("name");
double money = rs.getDouble("money");
//打印我们接收的数据
System.out.println(id + " " + name + " " + money);
}
// 6.释放资源,避免重复过度造成的内存溢出现,同时释放资源一定要按照重下往上的顺序,这个不多说
rs.close();
stat.close();
conn.close();
}
}
以上只是一个简单链接数据库的demo,但是在实际应用中我们不能这么做,因为文章中的main()方法里面抛出了一个父类异常,而该异常我们却又抛给了JVM,故此需要在内部取消异常,进行try...catch。
刚刚接触Mysql,希望大家多给点意见,谢谢~