浅谈JDBC连接数据库步骤

JDBC连接数据库步骤一.加载驱动

我们提供的服务有:成都做网站、网站设计、微信公众号开发、网站优化、网站认证、竹山ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的竹山网站制作公司

导入jar包

Class.forName("driver")

作用:不只是创建一个类的Class对象,它加载了整相关程序的类。

JDBC连接数据库步骤二.获取连接对象

Connectioncon=DriverManager.getConnection(url,user,pwd)

url:告诉数据库的位置

JDBC连接数据库步骤三.创建语句对象,执行SQL

增删改

返回影响所有行

非查询

 
 
 
  1. Statement:
  2. Statementst=con.CreateStatement()
  3. inti=st.executeUpdate(sql)

下标从一开始

 
 
 
  1. inti=st.executeUpdate(sql);
  2. PreparedStatement:
  3. PreparedStatementps=con.PreparedStatement("sql语句")
  4. ps.setXXX(n,值)

对第n个?进行赋值

区别

用st的好处

在动态组装SQL时,指动态产生要执行SQL语句

用pst的好处

更好维护

避免SQL注入

效率更高

扩展

用JDBC的批处理(BATCH)可以提高效率

用ResultSetMetadata可以获取列的信息(个数,名称)

查询

 
 
 
  1. resultsetrs=pst.executePuery()
  2. while(rs.net())
  3. Stringstr=rs.getString(列的位置,列的名称)

JDBC连接数据库步骤四.关闭

顺序

 
 
 
  1. ifrs!=nullrs.close();
  2. pst.close();
  3. con.close();

具体实例:

 
 
 
  1. privatefinalStringURL="jdbc:mysql://localhost:3306/db";
  2. privatefinalStringFINDALL="select*fromdept";
  3. privateConnectioncon;
  4. privatePreparedStatementps;
  5. privateResultSetrs;
  6. //查询
  7. publicListfindAll(){
  8. Listlist=newArrayList();
  9. try{
  10. Class.forName("com.mysql.jdbc.Driver");
  11. con=DriverManager.getConnection(URL,"root","123");
  12. ps=con.prepareStatement(FINDALL);
  13. rs=ps.executeQuery();
  14. while(rs.next()){
  15. DeptDTOdto=newDeptDTO();
  16. dto.setDeptId(rs.getInt("deptId"));
  17. dto.setName(rs.getString("depName"));
  18. dto.setPhone(rs.getString("phone"));
  19. System.out.println(dto.getDeptId()+""+dto.getName()+""+dto.getPhone());
  20. list.add(dto);
  21. }
  22. con.close();
  23. }catch(ClassNotFoundExceptione){
  24. //TODOAuto-generatedcatchblock
  25. e.printStackTrace();
  26. }catch(SQLExceptione){
  27. //TODOAuto-generatedcatchblock
  28. e.printStackTrace();
  29. }
  30. returnlist;
  31. }
  32. //添加,添加中关闭连接的方法相比查询中的关闭方法更好一些
  33. publicvoidadd(DeptDTOdto){
  34. try{
  35. Class.forName("com.jdbc.mysql.Driver");
  36. con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db","root","123");
  37. ps=con.prepareStatement("insertintodept(deptId,depName,phone)values(?,?,?)");
  38. ps.setInt(1,dto.getDeptId());
  39. ps.setString(2,dto.getName());
  40. ps.setString(3,dto.getPhone());
  41. ps.execute();
  42. }catch(ClassNotFoundExceptione){
  43. //TODOAuto-generatedcatchblock
  44. e.printStackTrace();
  45. }catch(SQLExceptione){
  46. //TODOAuto-generatedcatchblock
  47. e.printStackTrace();
  48. }
  49. finally{
  50. try{
  51. if(con!=null&&!con.isClosed()){
  52. con.close();
  53. }
  54. }catch(SQLExceptione){
  55. //TODOAuto-generatedcatchblock
  56. e.printStackTrace();
  57. }
  58. }
  59. }
  60. le.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
  61. atoracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
  62. atjava.sql.DriverManager.getConnection(UnknownSource)
  63. atjava.sql.DriverManager.getConnection(UnknownSource)
  64. attool.DbConnect.getConnect(DbConnect.java:45)
  65. attool.DbConnect.main(DbConnect.java:54)

网页标题:浅谈JDBC连接数据库步骤
文章网址:http://www.csdahua.cn/qtweb/news39/403289.html

成都网站优化推广公司_创新互联,为您提供营销型网站建设ChatGPT自适应网站微信公众号建站公司标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网