文章目录
- 前言
- 一、mysql-connector-java
- 二、使用步骤
- 1.mysql-connector-java-5
- 2.mysql-connector-java-8
- 三、mysql-connector-java的使用
- 代码的实现
- 举例
前言
随着我们对java和数据库的深入学习,java与数据库连接也让很多小伙伴感到头疼,而本文就介绍了利用JDBC中的基础API建立java与数据库的连接。
一、mysql-connector-java
要像让我们的java项目连接到我们的数据库,我们需要先下载一个jar包,而mysql-connector-java就是我们连接数据库所需要的jar包,mysql-connector-java共分为5和8的版本。
mysql-connector-java的下载路径如下:https://dev.mysql.com/downloads/connector/j/
二、使用步骤
1.mysql-connector-java-5
该版本支持5.6、5.7、8.0版本的mysql数据库,支持3.0、4.0、4.1、4.2版本的jdbc,在使用该版本时Driver类的实现路径是
com.mysql.jdbc.Drive。
2.mysql-connector-java-8
支持5.6、5.7、8.0版本的mysql数据库,支持4.2版本的jdbc,在使用该版本时的Driver类的实现路径是com.mysql.cj.jdbc.Drive。
三、mysql-connector-java的使用
首先,我们要创建一个空项目,之后我们在src目录下创建一个名为lib的Directory文件
然后,我们将我们的mysql-connector-java包复制到lib文件内
复制完后,我们需要做的就是启动这个jar包
如果我们的jar包变为可展开模式的话就说明我们jar包启动成功了
代码的实现
//1.注册驱动
//注册驱动时,我一般使用反射触发的方案
//如果你用的jar包是5版本的话,这里的cj也就不用加上了,也就是"com.mysql.jdbc.Driver"
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取连接
Connection connecti = DriverMapper.getConnection();
//getConnection()方法共有三种,分别是有一个参数url、有两个参数url和info,最后一个是有三个参数url、user和password
//一个参数:String url 的格式: "jdbc:mysql://127.0.0.1:3306/数据库名?user=账号&password=密码"
//两个参数:String url的格式:"jdbc:mysql://127.0.0.1:3306/数据库名",而Properti info也就是将user和password封装进一个对象
//三个参数:String url的格式:"jdbc:mysql://127.0.0.1:3306/数据库名",String user是你的数据库账户名,String password是你的数据库密码
//3.创建statement
//这一步有两种方案,一种是静态方案,另一种是预编译的方案,这里我们使用预编译的方案
PreparedStatement preparedstatement = connection.preparedStatement(sql语句结构);
//这里的sql语句结构就是你要对数据库的操作,例如"select * from 数据库名"
//4.占位符赋值
//对你sql语句中的占位符?进行赋值操作
preparedstatement.setObject(?的位置 从左到右 从1开始,值);
//5.发生SQL语句
//我们发送的sql语句分为DQL和非DQL是有不同的发送方法的
int rows = executeUpdate();//非DQL
Result result = executeQuery();//DQL
//6.查询结果的解析
if(result.next())或while(result.next())
//因为result返回的结果的光标是停在数据的前一行的,所以我们要使用next()方法使光标下移,这里的判断就是判断光标下移是否
//还有数据,如果有,返回true,没有则返回false
//获取列的数据即可
get类型(int 列的下角标 从1开始);
//获取列的信息
getMetadata(); ResultsetMetaData对象包含的就是列的信息
//7.关闭资源
//调用对应的close()方法即可
举例
在这里插入代码片@Test
public void testDelete() throws ClassNotFoundException, SQLException {
//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取连接
Connection connection = DriverManager.getConnection("jdbc:mysql:///atguigu", "root", "123456");
//3.编写SQL语句结果,动态值的部分使用?代替
String sql = "delete from t_user where id=?";
//4.创建prepareStatement,并且传入SQL语句的结果
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//5.占位符赋值
preparedStatement.setObject(1,3);
//6.发送SQL语句
int rows = preparedStatement.executeUpdate();
//7.输出结果
if (rows > 0){
System.out.println("删除成功!!");
}else {
System.out.println("删除失败!!");
}
//8.关闭资源
preparedStatement.close();
connection.close();
}
其对应的输出结果为:删除成功!!