JDBC的描述及JDBC的编码步骤
JDBC的描述
什么是JDBC?
- java语言与数据库交互的技术.
- JDBC是java程序与关系型数据库交互的标准,
- 提供了一套统一的操作界面。
- JDBC是一组接口,制定java程序与各种数据库软件交互一套API
- 斜体样式数据库的产品:Oracle/mysql/db2/sql server
- JDBC制定的标准,程序员会根据这套标准,去写java程序
- 软件运行期间,java程序调用的是数据库厂商提供的具体的API
- 数据库厂商提供的具体的驱动程序,也就实现了JDBC的标准。
- JDBC的程序------驱动程序------mysql
- JDBC的程序------驱动程序------oracle
- JDBC的程序------驱动程序------db2
JDBC的编码步骤
- 1)加载驱动
- 2)创建java与数据库的链接
- 3)发送sql
- 4)查询等,处理数据
- 5)关闭连接
JDBC创建连接
1.加载驱动
将驱动包jar导入web下。并进行add;
用Class.forName(className);语句加载驱动。其中classname赋值为String className = “com.mysql.jdbc.Driver”;
2.创建连接
Connection conn = DriverManager.getConnection(url,user,password);其中url为String url = “jdbc:mysql://localhost:3306/t_store?characterEncoding=utf8”;user为数据库的用户名;password为数据库的密码。
package cn.aust.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* 使用jdbc创建连接
*/
public class Demo05 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String className = "com.mysql.jdbc.Driver";
String user ="root";
String password = "aoxixi";
/**
* jdbc:mysql:设置驱动程序类
* localhost:3306/tedu_store 数据库的地址
* 端口号:3306
* useSSL=true 高版本的musql安全性数据交互的选项
* user:数据库的用户名
* password:数据库的密码
*/
String url = "jdbc:mysql://localhost:3306/t_store?characterEncoding=utf8";
//1.加载驱动程序
Class.forName(className);
System.out.println("加载成功!!!!");
//2.创建连接
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
System.out.println("已经和数据库建立连接!!");
}
}
封装jdbc的驱动加载和连接和关闭
基本功能
注册
向数据库t_user表中插入数据,添加一条数据。
加载驱动、建立连接成功后用sql语句实现插入功能。
Statement对象,用来发送并执行sql语句。
功能的执行语句:int row = st.executeUpdate(sql);
package cn.aust.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 注册:
* 向t_user表中插入数据,添加一条数据。
*/
public class Demo06 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String className = "com.mysql.jdbc.Driver";
//1.加载驱动
Class.forName(className);
System.out.println("加载成功!!!");
//2.建立连接
String url="jdbc:mysql://localhost:3306/t_store?characterEncoding=utf8";
String user = "root";
String password ="aoxixi";
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
System.out.println("已经与数据库建立连接!!!");
//3.发送sql语句
//Statement对象,用来发送并执行sql语句
Statement st = conn.createStatement();
String sql="INSERT INTO t_user(username,password,email,phone,image,gender," +
"created_user,created_time,modified_user,modified_time) " +
"VALUES('敖茜茜','19911005','2911139240@qq.com','18225675696'," +
"null,2,'system','2021-01-01','system',NOW());";
int row = st.executeUpdate(sql);
System.out.println(row);
if(row> 0){
System.out.println("数据注册成功!!!");
}
//关闭
if(conn!=null){
conn.close();
}
}
}
删除账户
删除数据库t_user表中的记录。
具体步骤与注册功能类似,只是将sql语句更换。
package cn.aust.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 删除账号
*/
public class Demo07 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
String classname = "com.mysql.jdbc.Driver";
Class.forName(classname);
System.out.println("加载成功!!!");
//2.建立连接
String url = "jdbc:mysql://localhost:3306/t_store?characterEncoding=utf8";
String user = "root";
String password = "aoxixi";
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
System.out.println("已经与数据库建立连接!!!");
//删除记录
Statement st = conn.createStatement();
String sql = "DELETE FROM t_user WHERE id=2019304185";
int row = st.executeUpdate(sql);
System.out.println(row);
if(row> 0){
System.out.println("数据删除成功!!!");
}
//关闭
if(conn!=null){
conn.close();
}
}
}
修改密码
修改数据库t_user表中的记录。
具体步骤与注册功能类似,只是将sql语句更换。
package cn.aust.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 修改密码的功能
*/
public class Demo08 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
String classname = "com.mysql.jdbc.Driver";
Class.forName(classname);
System.out.println("加载成功!!!");
//2.建立连接
String url = "jdbc:mysql://localhost:3306/t_store?characterEncoding=utf8";
String user = "root";
String password = "aoxixi";
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
System.out.println("已经与数据库建立连接!!!");
//修改记录
Statement st = conn.createStatement();
String sql = "UPDATE t_user SET password='aoxixi12' WHERE id=2019304186";
int row = st.executeUpdate(sql);
System.out.println(row);
if(row> 0){
System.out.println("数据更新成功!!!");
}
//关闭
if(conn!=null){
conn.close();
}
}
}
查询
查询数据库t_user表中的记录。
与前面集中更新不容。查询的sql语句用ResultSet–结果集指针接收。
ResultSet rs = st.executeQuery(sql);并移动结果指针,查看每一条数据,用
while(rs.next())语句。
package cn.aust.jdbc;
import java.sql.*;
/**
* 查询
*/
public class Demo09 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
String classname = "com.mysql.jdbc.Driver";
Class.forName(classname);
System.out.println("加载成功!!!");
//2.建立连接
String url = "jdbc:mysql://localhost:3306/t_store?characterEncoding=utf8";
String user = "root";
String password = "aoxixi";
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
System.out.println("已经与数据库建立连接!!!");
//3.发送sql语句
Statement st = conn.createStatement();
String sql = "SELECT* FROM t_user";
//ResultSet--结果集指针
ResultSet rs = st.executeQuery(sql);
//4.处理结果集对象
//移动结果指针,查看每一条数据
while(rs.next()){
String username = rs.getString("username");
System.out.println(username);
Timestamp created_time = rs.getTimestamp("created_time");
}
//5.关闭
if(conn!=null){
conn.close();
}
}
}