1、下载jar包,mysql5.7.21,使用的是下图版本的jar包没有问题
2、将jar放在项目中新建的lib文件夹中
3、在TestJDBC项目名称上右键buildpath导入该包,Referenced Library中出现同名的小奶瓶就是导包成功了
build path->configure build path->add jars->找到本项目下lib文件中的jar包
4、mysql中创建database,再建表,并插入数据
5、eclipse中新建package,新建Class,编写代码流程如下:
a) 注册驱动,使用反射进行驱动的注册
Class.forName("com.mysql.jdbc.Driver");
b) 使用Connection类建立连接
String url = "jdbc:mysql://localhost:3306/myproj";
String username = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url,username,password);
其中url为格式为:
jdbc : mysql :// localhost:3306 / mysql
固定写法 : 数据库类型 :// 各DB厂商规定的IP地址以及端口 / database名称
c) 创建语句执行者
Statement stmt = conn.createStatement();
d) 执行SQL语句
ResultSet rs = stmt.executeQuery(sql);
通过Statement获得执行sql语句的方法,主要有两种
- int excuteUpdate(String sql):用于insert、update、delete(DML),返回值为这条sql语句影响的条数
- ResultSet excuteQuery(String sql),用于select语句(DQL),返回查询到的结果集
e) 处理结果(对于DQL的结果集进行处理)
通过ResultSet类中的方法对结果集进行处理:
- 使用同一的:Object getObject(int col)方法,字符集中的任何类型都可以用这个,因为Object是所有类型的父类型,其中int参数代表了你要取这条记录的第几列(列号从1开始);
- 按照类型分别使用不同的方法,如String getString(int col),Int getInt(int col),这里面用的都是基础类型的包装类,参数与上面那个方法一样
if (rs.next()){
System.out.println(rs.getObject(1)+"的密码为"+rs.getObject(2));
}
f) 关闭资源,一定要记得关闭资源
rs.close();
stmt.close();
conn.close();
6、除了注册驱动的是mysql.jdbc下的之外,其他的包都是java.sql下的,不要导错了
7、完整代码
package my.test.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestLogin {
/**
* @param args
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/myproj";
String username="root";
String password="root123";
String sql="select * from user;";
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()){
System.out.println(rs.getObject(1)+"的密码为"+rs.getObject(2));
}
rs.close();
stmt.close();
conn.close();
}
}