备注:学习小结,不喜勿喷。
要素:
1.数据库驱动:即数据库供应商针对JAVA语言开发的数据库驱动程序,注意驱动的版本要和数据库的版本相适应。
2.数据库访问路径:访问之前需要知道你的数据库放在哪。
3.访问账号:数据库连接账号。
4.密码:数据库连接密码。
连接步骤:
1.加载驱动。
2.建立连接,获取数据库连接对象。
3.创建会话。
4.定义SQL语句。
5.执行SQL语句。
6.获取结果集。
7.关闭数据库连接和会话。
示例:
项目结构
创建一个java项目,将驱动放在lib文件夹下,使用配置文件来装载连接Mysql数据库的信息。项目结构如下:
配置文件:
MysqlInfo.properties,放在src目录下面。
DRIVER = com.mysql.jdbc.Driver
URL = jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&useSSL=false
USER = 数据访问账号
PASSWORD = 数据库访问密码
测试类:
public class JDBCtest {
public static void main(String[] args) throws FileNotFoundException, IOException, SQLException{
//获取配置文件
Properties pro = new Properties();
pro.load(new FileReader("src/MysqlInfo.properties"));
//1.数据库驱动
String driver = pro.getProperty("DRIVER");
//2.数据库连接地址
String url = pro.getProperty("URL");
//3.用户名
String userName = pro.getProperty("USER");
//4.密码
String password = pro.getProperty("PASSWORD");
//5.数据库连接对象
Connection connect = null;
//6.会话
Statement statement = null;
//7.结果集
ResultSet res = null;
try{
//1.加载数据库驱动
Class.forName(driver);
//2.获取数据库连接
connect = DriverManager.getConnection(url, userName, password);
//3.创建会话
statement = connect.createStatement();
if(statement != null){
System.out.println("数据库连接成功!");
}
//4.定义sql语句
String sql = "SELECT UserName FROM student WHERE ID = 1001";
//5.执行sql语句
res = statement.executeQuery(sql);
//6.获取执行结果
while(res.next()){
System.out.println("姓名:"+res.getString("username"));
}
}catch(Exception e){
e.printStackTrace();
//关闭连接
}finally{
if(connect != null){
connect.close();
}
if(statement != null){
statement.close();
}
}
}
}
结果:
数据库连接成功!
姓名:李一梅
问题小结:
1.报异常:java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
原因:MysqlInfo.properties配置文件中的驱动配置名称错误。
针对5.0版本的数据库驱动,如:
mysql-connector-java-5.1.47-bin.jar
配置文件中的驱动名称应为:com.mysql.jdbc.Driver
针对5.0以上版本:
配置文件中的驱动名称应为:com.mysql.cj.jdbc.Driver
2.报异常:java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
原因:驱动版本与数据库版本不匹配。数据库版本为5.1.62,驱动版本为8.0.11,将驱动版本改为5.0版本即可。
3.Mysql驱动下载地址:http://central.maven.org/maven2/mysql/mysql-connector-java/
4.实际开发尽量将数据库配置信息放在配置文件中,方便修改。