首先,在mysql上创建一个数据库:
CREATE DATABASE jdbctest;
USE jdbctest;
CREATE TABLE user(
uid INT AUTO_INCREMENT KEY,
username VARCHAR(20),
password VARCHAR(20),
name VARCHAR(20)
)ENGINE=INNODB CHARSET=UTF8;
INSERT INTO user VALUES(NULL,'aaa','111','张三'),
(NULL,'bbb','222','李四'),
(NULL,'ccc','333','王五');
之后,写一个java程序:
package com.imooc.jdbc.imooc1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
import com.mysql.jdbc.Driver;
public class JDBCziyou {
@Test
public void demo() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null
try {
//1:注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.创建连接
conn = DriverManager.getConnection("jdbc:mysql:///jdbctest", "root", "123456");
//3.sql语句
String sql = "SELECT * FROM goods";
//4.创建执行sql语句的对象
stmt = conn.createStatement();
//5.执行sql语句,并且获得查询结果
rs = stmt.executeQuery(sql);
//6.对结果进行操作
while(rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
float price = rs.getFloat("price");
String desp = rs.getString("desp");
System.out.println(id+" "+name+" "+price+" "+desp);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//7.释放资源
if(rs != null) {
try {
rs.close();
}catch(SQLException e) {
//ignore
}
}
rs = null;
if(stmt != null) {
try {
stmt.close();
}catch(SQLException e) {
//ignore
}
}
stmt = null;
if(conn != null) {
try {
conn.close();
}catch(SQLException e) {
//ignore
}
}
conn = null;
}
}
}
然后,run as junit test即可。
注意,以上只是简单的操作,实际使用中使用到的方法等有所不同。
JDBC程序编写的基本步骤是:
1:加载数据库驱动:DriverManager.registerDriver(new Driver()); 常使用Class.forName("com.mysql.jdbc.Driver");代替。
2:创建连接:Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest","root","123456")。其中,jdbc:mysql为连接mysql数据库的固定写法,localhost为域名,此处使用本地域名,3306为mysql端口号。jdbctest为连接的数据库名。后面就是用户名和密码。
3:创建执行sql语句的对象:
String sql = "xxxxx";
Statement stmt = conn.createStatement();
其中,xxxx为sql语句,不用分号。
4:执行失去了语句,获取执行得到的内容。
ResultSet resultSet = stmt.executeQuery(sql);
可以推测,resultSet这个集合中,存放了多条语句执行所获得的记录。每个记录是一个元素。
5:对获得的对象进行操作,比如说遍历其内容。
6:释放资源:
从上面代码中可以看到,每个资源被释放后,还手动的置为Null,这是便于垃圾处理机制更快的进行资源回收。