数据库连接对象
加载数据库,
public static Connection getConnection() ttrows Exception{}中getConnection()是静态方法,它前面的connection是返回值类型,而在main方法中被调用时,Connection connn=DBHelper.getConnection()中直接使用了类名即DBHelper调用了静态方法getConnection.静态方法或属性可以被类名直接调用,而不用创建实例对象。
JDBC连接MySql<br> 1、在lib中添加jar包 2、DBhelper类 public class DBHelper{ private static final Sring driver="com.mysql.jdbc.Driver";//数据库驱动 private static finalString url="jdbc:mysql://localhost:3306/shopping?useUnicon=true&characterEncoding=UTF-8"//连接地址 private static finalString username = "root";//数据库用户名 private static finalString password = "";//数据库密码 private static Connection conn = null; //静态代码块负责加载驱动 static{ try{ Class.forName(driver); } catch(Exception ex){ ex.printStackTrace(); } } //单例模式返回数据库连接对象 public static Connection getConnection() throws Exception{ if(conn==null){ Connection con=DriverManager.getConnection(url,username,password); return conn; } return conn; } }
DBHelper

Navicat Premium,打开后新建连接->mysql,连接名随便,主机名端口那些跟DBHeper类里面的一一对应,确定完成连接。右键新建数据库,名字shopping,字符集utf-8,排序规则utf8_general_ci,确定完成数据库。右键数据库->运行SQL文件选择案例素材里的items.sql导入或者直接把它拖进去,完成后关闭连接再次打开就发现有个items的表了。
首先创建DBHelper类
private static final String driver ="com.mysql.jdbc.driver";//数据库驱动
private static final String url ="jdbc:mysql://localhost:3306/Shopping?useUnicode=ture&characterEncoding=utf"; // 连接数据库的地址,确保字符不会出现中文乱码
private static final String uesrname="root"; //数据库的账号
private static final String password ="123456"//数据库的密码
//上面都是固定写死的变量
private static Connection conn =null;// conn为空置; 需要导入包connection 属于SQL包下的
DBHelper

首先创建DBHelper类
private static final String driver ="com.mysql.jdbc.driver";//数据库驱动
private static final String url ="jdbc:mysql://localhost:3306/Shopping?useUnicode=ture&characterEncoding=utf"; // 连接数据库的地址,确保字符不会出现中文乱码
private static final String uesrname="root"; //数据库的账号
private static final String password ="123456"//数据库的密码
//上面都是固定写死的变量
private static Connection conn =null;// conn为空置; 需要导入包connection 属于SQL包下的
Navicat Premium,打开后新建连接->mysql,连接名随便,主机名端口那些跟DBHeper类里面的一一对应,确定完成连接。右键新建数据库,名字shopping,字符集utf-8,排序规则utf8_general_ci,确定完成数据库。右键数据库->运行SQL文件选择案例素材里的items.sql导入或者直接把它拖进去,完成后关闭连接再次打开就发现有个items的表了。
实现DBHelper类型
一个jdbc的工具类: 创建四个常量; String driver="com.mysql.jdbc.Driver; String url="jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8"; String username="root“;
将数据库Jar包添加到lib文件夹下
实现DBhelper类,连接数据库:
连接数据库5.7出现各种异常:
用官网最新驱动mysql-connector-java-8.0.11.jar需要将
driver = "com.mysql.jdbc.Driver"改为driver = "com.mysql.cj.jdbc.Driver"
另外超时,三次连接,失败,可能是时区问题.
什么连接池密匙问题,
URL设置为下面这样能解决大部分奇奇怪怪的问题
url = "jdbc:mysql://localhost:3306/mysql?serverTimezone=Hongkong&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&autoReconnect=true&failOverReadOnly=false";
private static final String url="jdbc:mysql://localhost:3306/shopping?useUnicode=true&characterEncoding=UTF-8";
DBHelper类写法
连接数据库,这几个变量都定义为私有的,静态的,常量类型的。如:
private static final String driver = "com.mysql.jdbc.Driver"; //数据库驱动
//连接数据库的URL地址
private static final String url="jdbc:mysql://localhost:3306/shopping?useUnicode=true&characterEncoding=UTF-8";
private static final String username="root";//数据库的用户名
private static final String password="";//数据库的密码
连接数据库,这几个变量都定义为私有的,静态的,常量类型。如:
private static final String driver = "com.mysql.jdbc.Driver"; //数据库驱动
连接数据库: