由于在测试的过程中,需要在数据库中随机取一些值,然后就去研究了一下JDBC在Java中的应用。以下是初学者学习笔记。(使用Java作为编程语言,数据库是MySql。)
一、JDBC是什么
JDBC API是一个Java API,代表Java数据库链接,用来访问任何类型的表列数据。JDBC可用于:
- 连接数据库
- 创建SQL语句
- 在数据库中执行SQL
- 查看或修改数据库中的数据
二、JDBC如何使用
1.JDBC环境配置
- 首先配置java环境,配置Java的操作这里就不多说了。
- 下载JDBC的jar包,在MySql官网中就可以下载相应的包https://dev.mysql.com/downloads/connector/j/。
- 如果需要使用本地数据库,需要在本地建立一个数据库。
2.创建JDBC项目
创建一个类来打开关闭数据库
//导入所需的JDBC包,也可以使用 import java.sql.* import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class DataHelper { //设置需要连接的数据地址、用户名、密码(建议用户名、密码写在本地的配置文件中,以防止密码泄露) public static String dataBaseUrl = "jdbc:mysql://127.0.0.1/"; public static final String name = "com.mysql.cj.jdbc.Driver"; public static String user = "root"; public static String password = "123456"; //定义Connection对象 public Connection conn = null; //定义PreparedStatement对象 public PreparedStatement pst = null; public DataHelper(String sql){ try { //初始化驱动程序,打开与数据库的通信,使用以下代码 Class.forName(name); //打开连接,使用DriverManager.getConnection()方法创建connection对象,代表数据库的物理连接 conn = DriverManager.getConnection(dataBaseUrl,user,password); //执行查询,使用类型为PrepareStatement的对象,提交一个SQL语句到数据库执行查询 pst = conn.prepareStatement(sql); }catch (Exception e){ e.printStackTrace(); } } //清理环境资源,操作数据库的数据后,关闭所有数据库资源以减少资源的浪费 public void close(){ try { this.conn.close(); this.pst.close(); }catch (SQLException e){ e.printStackTrace(); } }
创建一个类来执行相关操作(以最简单的查询为例)
import com.mingyizhudao.qa.common.KnowledgeBase; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; public class InquireData { static String sql = null; static DataHelper db1 = null; static ResultSet ret = null; //定义一个查询的方法 public static void getData(String sql, int firNum, int SecNum){ //创建DataHelper对象 db1 = new DataHelper(sql); try { //执行语句 ret = db1.pst.executeQuery(); //得到结果,依次打印 while (ret.next()){ String id = ret.getString(firNum); String name = ret.getString(SecNum); System.out.println( id + name) } //关闭连接 ret.close(); db1.close(); }catch (SQLException e){ e.printStackTrace(); } } //输入需要查询的语句,得到查询的结果 public static void main(String[] args){ sql = "SELECT * FROM doctor_kb.doctor where mobile like '%9999'; getData(sql, 1, 2); } }