本文作为个人学习笔记
一、Maven依赖
mysql mysql-connector-java8.0.28
此处使用8.0.28版本,关于mysql更多依赖版本查阅:https://mvnrepository.com/artifact/com.mysql/mysql-connector-j
二、代码总览
import java.sql.*; public class ToolMySQL { private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; //驱动器 private static String PORT; //端口号 private static String HOSTNAME; //地址 private static String DATABASE = String.valueOf(' '); //数据库名称 private static String USER; //用户名 private static String PASS; //密码 private static Connection connection = null; private static Statement statement = null; public static void StartMySQL(){ final String DB_URL = "jdbc:mysql://" + HOSTNAME + ":" + PORT + "/" + DATABASE; try { Class.forName(JDBC_DRIVER); //加载JDBC驱动程序 connection = DriverManager.getConnection(DB_URL,USER,PASS); //建立数据库连接 statement = connection.createStatement(); //实例化Statement对象,执行sql语句 } catch (ClassNotFoundException e) { throw new RuntimeException("无法加载驱动程序",e); } catch (SQLException e) { throw new RuntimeException("无法连接到数据库",e); } } //建立数据库连接 public static void EndMySQL(){ try { if (ToolMySQL.statement != null) { ToolMySQL.statement.close(); } } catch (SQLException e) { throw new RuntimeException("关闭Statement失败",e); } try { if (ToolMySQL.connection != null) { ToolMySQL.connection.close(); } } catch (SQLException e) { throw new RuntimeException("关闭connection失败",e); } } //关闭数据库连接 public static Boolean ExecuteSQLNotResult(String sql){ try { return statement.execute(sql); //执行sql语句(返回是否成功) } catch (SQLException e) { throw new RuntimeException(e); } } //执行无结果的sql语句(建表) public static ResultSet ExecuteSQLWithResult(String sql){ try { return statement.executeQuery(sql); } catch (SQLException e) { throw new RuntimeException(e); } } //执行有结果的sql语句(查询) public static void setPASS(String pass) { PASS = pass; } public static void setUSER(String user) { USER = user; } public static void setDATABASE(String database) { DATABASE = database; } public static void setHOSTNAME(String hostname) { HOSTNAME = hostname; } public static void setPORT(String port) { PORT = port; } public static void setAll(String port,String hostname,String database,String user,String pass){ ToolMySQL.PORT = port; ToolMySQL.HOSTNAME = hostname; ToolMySQL.DATABASE = database; ToolMySQL.USER = user; ToolMySQL.PASS = pass; } }
三、部分详解
1、指定驱动器
private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; //驱动器
本部分指定jdbc驱动器类名,使用Class.forName()以加载数据库驱动程序
2、指定数据库
final String DB_URL = "jdbc:mysql://" + HOSTNAME + ":" + PORT + "/" + DATABASE;
本部分指定所需数据库的url链接,(注:在测试过程中,DATABASE需默认为' '),所需变量
HOSTNAME:服务器地址(本地为localhost)
PORT:端口号(mysql数据库默认为3306)
DATABASE:数据库(所需建立连接的数据库名称)
此处认为一般而言数据库的连接不会中途修改url连接,定义为常量
3、创建与数据库连接
connection = DriverManager.getConnection(DB_URL,USER,PASS); //建立数据库连接
本部分通过jdbc的DriverManager类,使用getConnection方法连接数据库,连接过程中需要给出所需连接的数据库,用户名和密码。
4、创建执行对象
statement = connection.createStatement(); //创建Statement对象,执行sql语句
本部分在创建数据库连接后创建statement对象以执行sql语句
5、执行sql语句(有结果、无结果)
statement.execute(sql); statement.executeQuery(sql)
sql语句分为两种,有结果(select),无结果(insert,updata),对于无结果的sql语句则使用.execute方法,对于有结果的sql语句使用executeQuery方法,该方法返回一个ResultSet类型结果集
6、获取结果数据
对于该结果集,需要获取其中数据:
.next()方法,resultset类似于c语言的指针,该方法用于将resultedet移至下一行并返回该语句的执行结果(Boolean)
.getxxx()方法,如.getInt(),该方法用于获取resultset当前所在行的特定数据类型的数据
.getObject()方法,该方法可传入Int或String类型数据,用于确定所需列,返回object类型数据,需要进行类型转换
还没有评论,来说两句吧...