JDBC连接数据库的步骤

1. 加载JDBC驱动

    使用java反射机制中的方法forName()进行加载

Class.forName(“com.mysql.jdbc.Driver”);

2. 建立数据库连接

驱动管理类DriverManager使用特定的驱动程序,

通过getConnection(Stringusr)方法建与某个特定数据库的连接。

每个JDBC驱动都对应一个URL地址用于自我标识

jdbc:mysql://localhost:3306/mysql;
连接MySQL:

Connection con=DriverManager.getConnection("jdbc:mysql://localhost/sample",username,password);

或

String url="jdbc:mysql://localhost/sample";  //sample表示的是数据库,localhost为主机或服务器

String username,      //登录MySQL数据库的用户名

String password;      //登录MySQL数据库的密码

Connection con=DriverManager.getConnection(url,username,password);

3. 创建一个语句对象

//1.执行静态SQL语句。通常通过Statement实例实现。

Statement stmt=con.createStatement();

//2.执行动态SQL语句。通常通过PreparedStatement实例实现。

PrepareStatement pstmt=con.preparedStatement(sql);

4. 执行SQL语句

  • 如果发送的SQL语句是SELECT语句则需要执行executeQuery()方法
  • 如果发送的是SQL语句是Insert()语句、Create语句、Delete语句和Update语句则需要执行executeUpdate()方法
  • 执行executeQuery()方法后,返回的是一个结果集(ResultSet)对象
  • 执行executeUpdate()方法后,返回的并不是结果集,而是该操作影响数据库的行数。

​​​​5. 处理结果集

  • 从返回的结果集中获取数据,通过结果集对象调用getXXX()方法进行获取
  • 通过JavaBean的setXXX()方法将获取到的数据设置在其中
  • 再将整个JavaBean放入集合中,以方便以后进行获取数据。

6.  关闭数据库连接

     结果集处理完成之后,释放资源需要在finally语句块中首先关闭语句对象,再关闭数据库连接

stmt.close(); //关闭语句对象。

conn.close(); //关闭数据库连接。

顺便说一下Statement和PrepareStatement的区别

1. PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程


2. 使用 Statement 对象在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。 PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。


3. statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译的, preparedstatement支持批处理

4.prepareStatement可以替换变量  
   在SQL语句中可以包含?

   可以用ps=conn.prepareStatement("select * from Cust where ID=?");  
   int sid=1001;  
   ps.setInt(1, sid);  
   rs = ps.executeQuery();  
   可以把?替换成变量。  
   而Statement只能用  
   int sid=1001;  
   Statement stmt = conn.createStatement();  
   ResultSet rs = stmt.executeQuery("select * from Cust where ID="+sid);  
   来实现。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 20:15
还能挽救吗?找同学帮忙看了一下 字节怎么能如此对我
牛客26396789...:你这是严重红线,被发现你自己永远进不去,你那个同学直接走人,你还敢宣扬
点赞 评论 收藏
分享
06-12 10:50
门头沟学院 Java
你的不定积分没加C:我怎么在学院群看到了同样的话
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
就前几天旅游的时候,打开抖音就经常刷到这类视频:以前是高学历学生、老师、主持人,现在做着团播、擦边主播的工作,以及那些经过精心包装的“职业转型”故事——从铺天盖地的VLOG到所谓的“04年夜场工作日记”,这些内容在初中升学、高考放榜等关键时间节点持续发酵。可以说非常直接且精准地在潜移默化地影响着心智尚未成熟的青少年,使其对特殊行业逐渐脱敏。那我就想问了:某些传播公司、平台运营者甚至某些夜场的老板,你们究竟在传递怎样的价值观?点开那些视频,评论区里也是呈现明显的两极分化:一种是​​经济下行论​​:“现在就业市场已经艰难到这种程度了吗?”​​一种是事实反驳派​​:这些创作者往往拥有名校背景,从事着...
牛客刘北:被环境教育的,为了能拿到足够的钱养活自己,不甘心也得甘心,现在的短视频传播的思想的确很扭曲,但是很明显,互联网玩上一年你就能全款提A6,但你全心全意不吃不喝工作一年未必能提A6,但是在高考中考出现这个的确很扭曲,在向大家传播“不上学,玩互联网也可以轻松年入百万”,不是人变了,是社会在变
预测一下26届秋招形势
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务