文章目录
一、JDBC基本介绍
1.简单介绍
简单概述:简单来说,JDBC就是java语言用来连接数据库的一种技术,使用java程序来操作数据库,实现数据的存储和处理。
2.准确介绍
准确介绍:JDBC准确来说是java提供一组API(方法),声明在java.sql包与javax.sql包中,这些方法主要是接口,它更像是一种规范行为。然后由各个不同的数据厂商来对这些接口进行实现,而这些对接口实现的类就构成了各个不同数据库的驱动类,这些驱动类就构成了各个不同数据库的驱动jar包。
二、IDEA项目中导入Mysql驱动jar包
1.准备Mysql驱动jar包
先给没有jar包的小伙伴分享链接Mysql驱动jar包8.0版本,提取码4ysr,也就2.2mb,超快的,下载之后将jar包存放在一个文件夹中,位置你自己定,待会IDEA中引入jar包你要记住位置。这里我放在了D:\Mysql驱动jar包位置
2.打开IDEA,进入你的IDEA项目,单击左上方File,点击Project Structure。
3.在弹出来的界面,先点击Libralies,然后点击java
4.在弹出来的页面,选择jar包存放的文件夹,不用精确到jar包位置,然后单击确定
5.在弹出来的页面,这里是让你选择将此jar包应用到哪些模块,由于我这里就只创建了一个MyDemo项目,所以只有一个选项,直接点击ok就行
6.在弹出来的页面,先单击Apply,然后点击确定。
7.直接如图所示吧,多了你引入的文件说明该项目导入jar包成功,接下来就可以进行愉快的java程序操作数据库了。
注意:如果按照我的步骤,最后第7步没有出现如图所示的文件,你可以重新使用我的步骤再来一遍,注意第6步一定要先点击Apply,一般都会成功的。
三、使用java程序连接Mysql数据库进行增删改查操作
1.创建Mysql数据库连接
直接给你们看代码了,你们要的注释我都放在代码里边了,超级详细的
importjava.sql.*;publicclassMain{publicstaticvoidmain(String[] args)throwsClassNotFoundException,SQLException{/**
* 第一步:连接Mysql数据库,只需要三行代码,实际上两行就行
* 1.Class.forName("com.mysql.cj.jdbc.Driver");
* 作用:加载Mysql驱动类在内存中,这行代码在连接Mysql数据库的时候可以不加,如果连接
* 其他数据库需要加,因为Mysql特有的可以自动导入驱动类
* 2.String url = "jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC";
* 说明:
* 1)连接Mysql数据库你需要提供以下信息:
* a.提供mysql服务端所在的主机ip地址或者主机名
* b.提供Mysql服务端的端口号
* c.提供Mysql服务端的用户名
* d.提供Mysql服务端的密码
* e.提供你需要操作的数据库名称
* 2)对url字段串解释:
* jdbc:是主协议、mysql:是子协议
* localhost表示连接本机的mysql数据库、3306是端口号、mydb是Mysql里的一个数据库名称
* ?serverTimezone=UTC 表示设置时区为标准国际时区,不设置会出异常导致连接补上,这一行照抄就行
* 3.Connection con = DriverManager.getConnection(url,"root","password");
* 说明:
* 1)DriverManager 是驱动管理类,是java.sql包下的类
* 2)getConnection 是获取一个数据库连接的方法
* url: 第一个参数,跟着写就行
* "root":Mysql数据库的用户名,用你自己的
* "password":Mysql数据库密码,用你自己的
* 返回一个连接对象
* 注意:使用以上类和方法需要导入java.sql包,因为JDBC技术的接口包都在其中,以下方法都有异常抛出,
* 我们直接给扔给main方法就行。
*/Class.forName("com.mysql.cj.jdbc.Driver");String url ="jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC";Connection con =DriverManager.getConnection(url,"root","password");//程序如果走到这里,你的Mysql数据库就链接成功了,如果连接失败,你就回头从新检查参数url或者用户名密码是否设置正确//此时连接的就是mydb数据库,然后可以对象mydb中的表格进行操作了System.out.println("数据库连接成功!");}}
2.实现增加记录
一样,注释都放在代码里,注意我的代码是一步一步给你们看的,最后会合并在一起
/**
* 第二步:实现增加记录的操作
* 步骤为:
* 1.编写增加记录的sql语句
* 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
* 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
* 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
* 注意:除了查询,其他方法一律都使用executeUpdate()
*///1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了String sql ="insert into item values(字段值1,字段值2...)";//2.获取PreparedStatement对象PreparedStatement ps = con.prepareStatement(sql);//参数将sql语句传入//3.通过ps发送sql语句,同时获取返回值,影响的记录数int len = ps.executeUpdate();//4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了
3.实现删除记录
直接上代码,注释都在里边,这里和上面差不多,只是修改sql语句
/**
* 第三步:实现删除记录的操作(基本上面类似,只是sql语句不一样而已)
* 步骤为:
* 1.编写增加记录的sql语句
* 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
* 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
* 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
* 注意:除了查询,其他方法一律都使用executeUpdate()
*///1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
sql ="这里面是删除的sql语句";//2.获取PreparedStatement对象
ps = con.prepareStatement(sql);//参数将sql语句传入//3.通过ps发送sql语句,同时获取返回值,影响的记录数
len = ps.executeUpdate();//4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了
4.实现修改记录
直接上代码,注释都在里边,这里和上面差不多,只是修改sql语句
/**
* 第四步:实现修改记录的操作(基本上面类似,只是sql语句不一样而已)
* 步骤为:
* 1.编写增加记录的sql语句
* 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
* 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
* 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
* 注意:除了查询,其他方法一律都使用executeUpdate()
*///1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
sql ="这里面是修改的sql语句";//2.获取PreparedStatement对象
ps = con.prepareStatement(sql);//参数将sql语句传入//3.通过ps发送sql语句,同时获取返回值,影响的记录数
len = ps.executeUpdate();//4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了
5.实现查询记录
注意:查询记录的步骤和方法和上面有很大区别,且详细看看代码里的注释
/**
* 第五步:实现查询记录的操作(和上面大不相同,详细看)
* 步骤为:
* 1.编写增加记录的sql语句
* 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
* 3.通过返回的PreparedStatement对象的***executeQuery()方法***发送sql语句
* 注意:
* 1)查询语句都是使用executeQuery()方法
* 2)数据库返回来的是一个ResultSet对象,里边存放了你想要查询的数据
* 4.遍历返回来的ResultSet对象,打印数据,具体规则看代码注释
* 5.如果不继续使用con连接了和PreparedStatement对象了就释放资源
* 注意:除了查询,其他方法一律都使用executeUpdate()
*///1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
sql ="这里面是查询的sql语句";//2.获取PreparedStatement对象
ps = con.prepareStatement(sql);//参数将sql语句传入//3.通过ps发送sql语句,同时获取返回值,是一个数据的集合ResultSet set = ps.executeQuery();//4.遍历该集合//set.next() 该方法是判断是否还有下一行数据while(set.next()){//一次读取一行数据//注意:这里的Object都可以替换为具体的数据类型,我为了演示才用的ObjectObject value1 = set.getObject(1);//数据中表的字段值序号,第1列Object value2 = set.getObject(2);//数据中表的字段值序号,第2列Object value3 = set.getObject(3);//数据中表的字段值序号,第3列//将获取到的一行的不同字段值依次打印出来看看System.out.println(value1 +"\t"+ value2 +"\t"+ value3);}//4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了
con.close();//关闭连接
ps.close();//关闭PreparedStatement对象
6.连接、增删改查合并的代码
importjava.sql.*;publicclassMain{publicstaticvoidmain(String[] args)throwsClassNotFoundException,SQLException{/**
* 第一步:连接Mysql数据库,只需要三行代码,实际上两行就行
* 1.Class.forName("com.mysql.cj.jdbc.Driver");
* 作用:加载Mysql驱动类在内存中,这行代码在连接Mysql数据库的时候可以不加,如果连接
* 其他数据库需要加,因为Mysql特有的可以自动导入驱动类
* 2.String url = "jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC";
* 说明:
* 1)连接Mysql数据库你需要提供以下信息:
* a.提供mysql服务端所在的主机ip地址或者主机名
* b.提供Mysql服务端的端口号
* c.提供Mysql服务端的用户名
* d.提供Mysql服务端的密码
* e.提供你需要操作的数据库名称
* 2)对url字段串解释:
* jdbc:是主协议、mysql:是子协议
* localhost表示连接本机的mysql数据库、3306是端口号、mydb是Mysql里的一个数据库名称
* ?serverTimezone=UTC 表示设置时区为标准国际时区,不设置会出异常导致连接补上,这一行照抄就行
* 3.Connection con = DriverManager.getConnection(url,"root","password");
* 说明:
* 1)DriverManager 是驱动管理类,是java.sql包下的类
* 2)getConnection 是获取一个数据库连接的方法
* url: 第一个参数,跟着写就行
* "root":Mysql数据库的用户名,用你自己的
* "password":Mysql数据库密码,用你自己的
* 返回一个连接对象
* 注意:使用以上类和方法需要导入java.sql包,因为JDBC技术的接口包都在其中,以下方法都有异常抛出,
* 我们直接给扔给main方法就行。
*/Class.forName("com.mysql.cj.jdbc.Driver");String url ="jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC";Connection con =DriverManager.getConnection(url,"root","password");//程序如果走到这里,你的Mysql数据库就链接成功了,如果连接失败,你就回头从新检查参数url或者用户名密码是否设置正确System.out.println("数据库连接成功!");/**
* 第二步:实现增加记录的操作
* 步骤为:
* 1.编写增加记录的sql语句
* 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
* 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
* 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
* 注意:除了查询,其他方法一律都使用executeUpdate()
*///1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了String sql ="insert into item values(字段值1,字段值2...)";//2.获取PreparedStatement对象PreparedStatement ps = con.prepareStatement(sql);//参数将sql语句传入//3.通过ps发送sql语句,同时获取返回值,影响的记录数int len = ps.executeUpdate();//4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了/**
* 第三步:实现删除记录的操作(基本上面类似,只是sql语句不一样而已)
* 步骤为:
* 1.编写增加记录的sql语句
* 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
* 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
* 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
* 注意:除了查询,其他方法一律都使用executeUpdate()
*///1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
sql ="这里面是删除的sql语句";//2.获取PreparedStatement对象
ps = con.prepareStatement(sql);//参数将sql语句传入//3.通过ps发送sql语句,同时获取返回值,影响的记录数
len = ps.executeUpdate();//4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了/**
* 第四步:实现修改记录的操作(基本上面类似,只是sql语句不一样而已)
* 步骤为:
* 1.编写增加记录的sql语句
* 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
* 3.通过返回的PreparedStatement对象的executeUpdate()方法发送sql语句,同时数据库会返回一个结果,这个结果是影响的记录数
* 4.如果不继续使用con连接了和PreparedStatement对象了就释放资源
* 注意:除了查询,其他方法一律都使用executeUpdate()
*///1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
sql ="这里面是修改的sql语句";//2.获取PreparedStatement对象
ps = con.prepareStatement(sql);//参数将sql语句传入//3.通过ps发送sql语句,同时获取返回值,影响的记录数
len = ps.executeUpdate();//4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了/**
* 第五步:实现查询记录的操作(和上面大不相同,详细看)
* 步骤为:
* 1.编写增加记录的sql语句
* 2.通过con将sql语句传入一个PreparedStatement对象,同时将这个对象返回
* 3.通过返回的PreparedStatement对象的***executeQuery()方法***发送sql语句
* 注意:
* 1)查询语句都是使用executeQuery()方法
* 2)数据库返回来的是一个ResultSet对象,里边存放了你想要查询的数据
* 4.遍历返回来的ResultSet对象,打印数据,具体规则看代码注释
* 5.如果不继续使用con连接了和PreparedStatement对象了就释放资源
* 注意:除了查询,其他方法一律都使用executeUpdate()
*///1.编写sql语句:sql字段串里面是具体的sql语句,这里我就不多说了
sql ="这里面是查询的sql语句";//2.获取PreparedStatement对象
ps = con.prepareStatement(sql);//参数将sql语句传入//3.通过ps发送sql语句,同时获取返回值,是一个数据的集合ResultSet set = ps.executeQuery();//4.遍历该集合//set.next() 该方法是判断是否还有下一行数据while(set.next()){//一次读取一行数据//注意:这里的Object都可以替换为具体的数据类型,我为了演示才用的ObjectObject value1 = set.getObject(1);//数据中表的字段值序号,第1列Object value2 = set.getObject(2);//数据中表的字段值序号,第2列Object value3 = set.getObject(3);//数据中表的字段值序号,第3列//将获取到的一行的不同字段值依次打印出来看看System.out.println(value1 +"\t"+ value2 +"\t"+ value3);}//4.如果你不继续操作了就关闭,都是close()方法,我还要继续删除、修改、查询操作就不关闭了
con.close();//关闭连接
ps.close();//关闭PreparedStatement对象}}
四、结束语
相信看到这里大家对JDBC技术已经有了一定的了解啦,感谢大家的观看与支持,码文不易,一键三连多多支持,谢谢!!!
版权归原作者 Ocean&21 所有, 如有侵权,请联系我们删除。