package MySql;
import java.sql.*;
public class DBUtil {
/**
* 一、
* mysql5及之前的版本使用的是旧版驱动"com.mysql.jdbc.Driver"
* mysql6以及之后的版本需要更新到新版驱动,对应的Driver是"com.mysql.cj.jdbc.Driver"
* 二、
* com.mysql.cj.jdbc.Driver
* 这个类是数据库厂商实现的JDBC一套接口里的一个类,称之为“驱动类”,它的继承树如下所示:
* ————com.mysql.jdbc.Driver extends com.mysql.cj.jdbc.Driver
* ————com.mysql.cj.jdbc.Driver extends NonRegisteringDriver
* ————public class NonRegisteringDriver implements java.sql.Driver
* 三、
* java.sql是sun官方提供的包,java.sql.Driver是sun提供的一组用于连接数据库的接口之一,由数据库厂商自行实现
* 由上可知,com.mysql.cj.jdbc.Driver这个驱动类,是对java.sql.Driver接口的实现
*/
private String driverStr = "com.mysql.cj.jdbc.Driver" ; //上面第一点解释了为什么要加cj
private String connStr = "jdbc:mysql://localhost:3306/用户表" ;//这个相当于是本地数据库的url(地址)
private String dbusername = "root" ; //数据库的账号
private String dbpassword = "123456" ; //数据库的密码,需要大家自行修改,在控制台上用Sql语句可以修改
private Connection conn = null ;
/*
- Statement:
由createStatement创建,用于发送简单的SQL语句(不带参数)
Statement createStatement() throws SQLException;
*/
private Statement stmt = null ;
public DBUtil()
{
try
{
/*
载入这个类com.mysql.cj.jdbc.Driver进JVM之后,在后续的程序中,就可以使用它。
*/
Class.forName(driverStr); //载入这个类
/*
两种不同的数据库软件的连接方式:
-Mysql
Connection con = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");
-Oracle
Connection con = DriverManager.getConnection("jdbc:oracle:thin@host:port/database", "user", "password");
*/
conn = DriverManager.getConnection(connStr, dbusername, dbpassword);
/*
常用的Statement方法
- execute():运行语句,返回是否有结果集。
- executeQuery():运行select语句,返回ResultSet结果节
- executeUpdate():运行insert/update/delete操作,返回更新的行数。
解释了下面的方法的作用
*/
stmt = conn.createStatement();
}
catch (Exception ex) {
//捕获异常,上个学期学过
System.out.println(ex.getMessage());
System.out.println( "数据连接失败!" );
}
}
public int executeUpdate(String s) {
// executeUpdate():运行insert/update/delete操作,返回更新的行数。
int result = 0 ;
System.out.println( "--更新语句:" +s+ "\n" );
try {
result = stmt.executeUpdate(s);
} catch (Exception ex) {
System.out.println( "执行更新错误!" );
}
return result;
}
public ResultSet executeQuery(String s) {
//运行select语句,返回ResultSet结果节
ResultSet rs = null ;
System.out.print( "--查询语句:" +s+ "\n" );
try {
rs = stmt.executeQuery(s);
} catch (Exception ex) {
System.out.println( "执行查询错误!" );
}
return rs;
}
public void execQuery(String s){
try {
stmt.executeUpdate(s);
} catch (SQLException e) {
System.out.println( "执行插入错误!" );
}
}
public void close() {
try {
stmt.close();
conn.close();
} catch (Exception e) {
}
}
}
|