一、JDBC:可以通过java程序来访问Mysql数据库;之前可以通过sqlyog或者cmd访问数据库
1.JDBC定义:java访问数据库的标准规范,执行SQL的java API,是接口。
2.JDBC原理:JDBC定义操作所有关系型数据库的规则(接口),数据库厂商实现该接口提供驱动jar包,真正执行代码是驱动包中的实现类。
3.JDBC流程:获得jar包所在的文件夹并在project setting的Libraries中添加该jar包的文件夹,然后新建module并配置library添加该jar包对应的文件夹
3.1API的使用:
3.1.1.注册驱动(JDBC3之后不用手动注册驱动):
JDBC规范定义驱动接口;java.sql.Driver
Mysql驱动包提供的实现类:com.mysql.jdbc.Driver
加载并注册数据库驱动: Class.forName(数据库驱动实现类 eg:"com.mysql.jdbc.Driver")
Class类中的forName方法可以实现类的初始化加载,获得该类的Class对象
Mysql驱动包的实现类Driver中实现了java.sql.Driver接口,并在静态代码块中使用DriverManager.registerDriver(new Driver()),当Class.forName()加载该类时会自动执行静态代码块保证驱动程序被使用之前已经被注册。
DriverManager:驱动管理类 registerDriver(new Driver()):注册驱动的方法
3.1.2获得连接
connection接口代表连接对象,由数据库厂商实现
DriverManager类的静态方法 getConnection
connection getConnection(String url,String user,String password)
user:用户名
password:密码
url: mysql url格式 eg:jdbc:mysql://localhost:3306/db4
url中:
第一部分代表协议
第二部分代表子协议:数据库名称
第三部分:数据库厂商决定,由IP 、端口号和数据库名称组成
3.1.3 获得语句执行平台
通过connection的createStatement方法获得SQL语句执行对象
Statement createStatement()
Statement用于发送SQL语句给数据库并获得执行结果生成的对象
常用方法: int executeUpdate(String sql):执行增删改语句返回结果代表受影响行数
ResultSet executeQuery(Sring sql):执行查询语句 返回 resultSet结果集对象
ResultSet结果集的处理:
Boolean next()游标到下一行;如果还有下一条记录返回true 否则返回false
XXX getXXX(String/int):参数int代表列号 String 代表列名
根据获得列的数据类型选择对应方法 可以是 getInt getString getDate
3.1.4释放资源
需要释放的资源:ResultSet Statement connection
原则:先开的后关,后开的先关 并放在 finally快中。
4.JDBC工具类实现增删改查
将注册驱动、获得连接以及关闭流等方法写在工具类中实现代码重用