一.环境配置(基于MySQL数据库)
2.下载安装 Navicat,破解方法去吾爱破解网站查询
第一次连接mysql时可能会出现错误,可能是因为二者对密码的编码方法不一致,可通过在帮助中升级更新Navicat来解决
3.下载JDBC jar包 mysql-connector-java-version.jar
注意这里要说明一下JDBC jar包存放的位置:
如果是Java项目:
Eclipse项目中导入该jar包,方法:右击项目→构建路径→配置构建路径→add external jar
如果是Web项目:
eclipse配置的tomcat默认发布项目不会部署到tomcat的安装目录去,所以JDBC jar包要手动复制到Web项目中的WebContent / WEB-INF / lib文件夹下
如果是Tomcat导包(表示服务器可能要用到数据库,例如数据源):
如果是MyEclipse集成Tomcat,显然是要用“右键项目 -> Properties -> Java Build Path -> 右侧选项卡选择Libraries -> Add JARs...”。
如果是非集成Tomcat,你必须把驱动程序包复制粘贴在Tomcat根目录“common\lib”文件夹下。
二.JDBC技术简介
JDBC(Java Data Base Connectivity)是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可方便地与各种数据库交互。
1.JDBC连接数据库的过程:
1.注册数据库驱动
连接数据库之前,需要将数据库厂商提供的数据库驱动类注册到JDBC的驱动管理器,通常情况是通过数据库驱动类加载到JVM来实现的。
Class.forName("com.mysql.jdbc.Driver"); //最新更改为com.mysql.cj.jdbc.Driver
2.构建数据库连接URL
这个URL由数据库厂商来定,但符合格式“JDBC协议+IP地址或域名+端口+数据库名称”,比如MySQL的URL是“jdbc:mysql://localhost:3306/test”。
3.获取Connection对象
在完成注册和构建URL后,就可以通过驱动管理器来获取数据库连接Connection,Connection对象是JDBC封装的数据库连接对象,只有创建此对象后,才能对数据进行相关操作。
DriverManager.getConnection(url, username, password);//URL, 数据库用户名, 密码
测试实例:
package Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class testJDBC { public static void main(String[] args) { // TODO 自动生成的方法存根 try { Class.forName("com.mysql.cj.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
//由于二者的字符编码方式可能不一致,故统一编码 String username = "root"; String password = "123456"; Connection connection = DriverManager.getConnection(url, username, password); if (connection != null) { System.out.println("数据库连接成功!"); connection.close(); } else { System.out.println("数据库连接失败!"); } }catch (ClassNotFoundException e) { e.printStackTrace(); }catch (SQLException e) { e.printStackTrace(); } } }
2.JDBC API
1.Connection接口
Connection接口位于java.sql包中,是与特定数据库的连接会话,只有获得特定数据库的连接对象,才能访问数据库,操作数据库中的数据表、视图和存储过程等,Connection接口的常用方法声明:
方法声明 |
说明 |
void close() throws SQLException |
立即释放Connection对象的数据库连接占用的JDBC资源,在操作完数据库后,应立即调用此方法 |
void commit() throws SQLException |
提交事务,并释放Connection对象当前持有的所有数据库锁。当事务被设置为手动提交模式时,需要调用该方法提交事务。 |
2.DriverManager类
DriverManager类主要作用于用户及驱动程序之间,它是JDBC中的管理层,通过DriverManager类可以管理数据库厂商提供的驱动程序,并建立应用程序与数据库之间的连接。
3.Statement接口
Statement接口提供了执行语句和获取查询结果的基本方法。
4.PreparedStatement接口
实际开发中,SQL语句往往需要将程序中的变量做查询条件参数等,而使用Statement接口进行操作会过于繁琐,而且存在安全方面的缺陷。PreparedStatement接口继承于Statement接口,而且对带有参数SQL语句的操作执行进行了扩展。应用于PreParedStatement接口中的SQL语句,可以使用占位符“?”来代替SQL语句中的参数,然后再对其赋值。最好使用该接口,不仅可以提高SQL执行效率,而且还可以避免SQL语句的注入式攻击。
5.ResultSet接口
执行SQL语句的查询结果会返回查询的结果集,而Result接口封装了该结果集。Result还提供了光标的功能,通过光标可以自由定位到某一行中的数据。
三.JDBC操作数据库
1.添加数据
通过JDBC向数据库添加数据,可以使用INSERT语句实现插入数据的SQL语句,对应SQL语句中的参数可以使用占位符“?”代替,然后通过PreparedStatement对其赋值并执行SQL。
实例:建立一个学生信息数据库,通过JDBC向其添加数据。
1.首先在Navicat中创建名为student的数据库,创建student_info表
2.创建名为Student的类,来封装学生对象信息
package com; import java.io.Serializable; public class Student implements Serializable{ /** * */ private static final long serialVersionUID = -7421230515641293748L; private int id; private String name; private String sex; private int age; public int getId() { return id; } public void setId(int id) { this.id=id; } public String getName() { return name; } public void setName(String name) { this.name=name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex=sex; } public int getAge() { return age; } public void setAge(int age) { this.age=age; } }
3.创建index.jsp页面,用于提交添加学生信息的表单。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="AddStudent.jsp" method="post" onsubmit="return check(this)"> <table align="center" width="450"> <tr> <td align="center" colspan="2"> <h2>添加学生信息</h2><hr> </td> </tr> <tr> <td align="center">学号:</td> <td><input type="text" name="id"></td> </tr> <tr> <td align="center">姓名</td> <td><input type="text" name="name"></td> </tr> <tr> <td align="center">性别</td> <td><input type="text" name="sex"></td> </tr> <tr> <td align="center">年龄</td> <td><input type="text" name="age"></td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" value="添加"> </td> </tr> </table> </form> </body> </html>