欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    JDBC操作 连接MYSQL数据库.docx

    • 资源ID:4885699       资源大小:106.67KB        全文页数:20页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JDBC操作 连接MYSQL数据库.docx

    南京邮电大学软件工程项目实践实验报告题 目: JDBC操作学生姓名班级学号日期二:分析与设计1编程实现连接MySQL数据库代码,并测试。代码如下:1. 2.3.importjava.sql.*;4.importjavax.swing.*;5.importjava.awt.*;6.importjava.awt.event7.importjava.util.*;8.9. public class inensshow extends JFrame 10.11.10. private Connection connection;11. private Statement statement;12. private ResultSet resultSet;13. private ResultSetMetaData rsMetaData;16.14. /GUI变量定义15. private JTable table;16. private JTextArea inputQuery;17. private JButton submitQuery;21.18. public inensshow()19. 20. /Form的标题21. super("输入SQL语句,按查询按钮查看结果。");26.22. Stringurl = "jdbc:mysql:/localhost:3306/web"23. Stringusername="inens"24. Stringpassword="inens"25. /加载驱动程序以连接数据库26. try 27. Class.forName( "org.gjt.mm.mysql.Driver" );28. connection = DriverManager.getConnection(29. url, username, password );30. 31. /捕获加载驱动程序异常32. catch ( ClassNotFoundException cnfex ) 33. System.err.println(34. ”装载JDBC/ODBC驱动程序失败。");35. cnfex.printStackTrace();36. System.exit( 1 ); / terminate program37. 38. /捕获连接数据库异常39. catch ( SQLException sqlex ) 4 5. System.err.println("无法连接数据库");46. sqlex.printStackTrace();47. System.exit( 1 ); / terminate program48. 49. /如果数据库连接成功,则建立GUI50. /SQL 语句51. String test="SELECT * FROM data"52. inputQuery = new JTextArea( test, 4, 30 );53. submitQuery = new JButton("查询");54. /Button 事件55. submitQuery.addActionListener(56. new ActionListener() 57. public void actionPerformed( ActionEvent e )58. 59. getTable();60. 61. 62. );63.63. JPanel topPanel = new JPanel();64. topPanel.setLayout( new BorderLayout();65. /将"输入查询"编辑框布置到"CENTER"66. topPanel.add( new JScrollPane( inputQuery), BorderLayout.CENTER );67. /将"提交查询"按钮布置到"SOUTH"68. topPanel.add( submitQuery, BorderLayout.SOUTH );69. table = new JTable();70. Container c = getContentPane();72.c.setLayout( new BorderLayout();73./将"topPanel"编辑框布置到"NORTH"74.c.add( topPanel, BorderLayout.NORTH );75./将"table"编辑框布置到"CENTER"76.c.add( table, BorderLayout.CENTER );77.getTable();78.setSize( 500, 300 );79./显示Form80.show();81.82.83.private void getTable()84.(85.try 86./执行SQL语句87.String query = inputQuery.getText();88.statement = connection.createStatement();89.resultSet = statement.executeQuery( query );90./在表格中显示查询结果91.displayResultSet( resultSet );92.93.catch ( SQLException sqlex ) 94.sqlex.printStackTrace();95.96.97.98.private void displayResultSet( ResultSet rs )99.throws SQLException100.101./定位到达第一条记录102.boolean moreRecords = rs.next();103./如果没有记录,则提示一条消息104.if ( ! moreRecords ) 105.JOptionPane.showMessageDialog( this,106.”结果集中无记录”);107.setTitle("无记录显示");108.return;109.110.Vector columnHeads = new Vector();111.Vector rows = new Vector();112.try 113./获取字段的名称114.ResultSetMetaData rsrsmd = rs.getMetaData();115.for ( int i = 1; i <= rsmd.getColumnCount(); +i )116.columnHeads.addElement( rsmd.getColumnName( i );117./获取记录集118.do 119.rows.addElement( getNextRow( rs, rsmd );120. while ( rs.next();121./在表格中显示查询结果122.table = new JTable( rows, columnHeads );123.JScrollPane scroller = new JScrollPane( table );124.Container c = getContentPane();125.c.remove(1);126.c.add( scroller, BorderLayout.CENTER );127./刷新 Table128.c.validate();129.130.catch ( SQLException sqlex ) 131.sqlex.printStackTrace();132.133.134.135.136.private Vector getNextRow( ResultSet rs,137.ResultSetMetaData rsmd )138.throws SQLException139.140.Vector currentRow = new Vector();141.for ( int i = 1; i <= rsmd.getColumnCount(); +i )142.currentRow.addElement( rs.getString( i );143./返回一条记录144.return currentRow;145.146.147.public void shutDown()148. 149. try 150. /断开数据库连接151. connection.close();152. 153. catch ( SQLException sqlex ) 154. System.err.println( "Unable to disconnect" );155. sqlex.printStackTrace();156. 157. 158.158. public static void main( String args)159. 160. final inensshow app =161. new inensshow();162. app.addWindowListener(163. new WindowAdapter() 164. public void windowClosing( WindowEvent e )165. 166. app.shutDown();167. System.exit( 0 );168. 169. 170. );171. 172. 174.MySQL连接数据库的实际应用代码以下的文章主要是对MySQL连接数据库的实际应用代码的介绍,我们大家都知道 MySQL连接数据库的应用率以变的越来越广泛,所以关于MySQL连接数据库的相关知识 也越来越受人欢迎,以下就是文章的具体内容介绍。1. <?2. $lnk = mysql_connect('localhost', 'root', '') or die ('Not connected :'.mysql_error();3. mysql_select_db('phpbb205', $lnk) or die ('Can't use foo : ' . mysq l_error();4. $query = "SELECT * FROM phpbb_forums"5. $result = mysql_query($query);6. /$row = mysql_num_rows($result) ;7. while($result_row = mysql_fetch_row($result)8. 9. echo $result_row2.$result_row3;10. 11. ?>使用纯JDBC连接数据库使用纯JDBC连接数据库JDBC提供的API能够通过纯Java数据库驱动程序转换为数据库管理系统所使用的专用协议来实现和特定的数据库系统交互信息,其原理如图16-3所示。图16-3使用纯Java驱动程序连接数据库显然,这种方法使应用程序不受ODBC的限制,但是Java数据库驱动程序升级后,若 访问数据库的应用程序想使用升级版本的驱动程序,就必须重新安装新的驱动程序。使用纯 Java数据库驱动程序连接数据库主要有以下两个步骤。(1)加载纯Java数据库驱动程序目前,很多数据库厂商都提供了自己相应的纯Java数据库驱动程序。当使用纯Java数 据库驱动程序访问数据库时,要保证连接数据库的应用程序所驻留的计算机上安装有相应数 据库的驱动程序。例如,如果需要连接MySQL数据库,就需要下载相应的驱动程序。本书下载的是mysql-connector-java-5.L7.zip。将该 zip 文件解压后,找到 mysql-connector-java-5.1.7- bin.jar, 也就是连接数据库的驱动程序。之后,将该程序复制到Tomcat服务器所使用的JDK的 jrelibext目录下或者Tomcat安装目录的commonlib目录下。应用程序加载MySQL驱动 程序的代码为:1. try2. Class.forName("com.mysql.jdbc.Driver");3. catch(ClassNotFoundException e)4. System.out.println(e);5. (2)连接数据库假设应用程序和MySQL服务器在同一台计算机上,那么应用程序和数据库建立连接的 代码为:1. try2. String url="jdbc:mysql:/ip/databaseName"3. Connection con=DriverManager.getConnection(4. url, "username", "password");5. catch(SQLException e)6. System.out.println(e);7. 通过上述方式与数据库建立连接之后,向数据库系统发送查询命令之前,首先需要创建 一个Statement对象,用于把SQL语句发送到数据库系统。例如,要利用上面创建的连接 con创建一个Statement对象stmt,可以使用以下代码。1. Statement stmt=con.createStatement();之后,可以使用 execute,executeQuery,executeUpdate 或者 executeBatch 方法将 SQL 语句发送到数据库。如果是从数据库中查询数据,则查询操作结束后会返回一个ResultSet, 其中包含一系列的行和列。可以调用next和各种getXxx方法对这些行和列进行处理。在使 用完数据库后,应该关闭连接,释放与数据库相关联的资源。例如,关闭上面创建的数据库 连接con可以使用以下代码。1. con.close();1. package sample;2. import java.sql.*;3.5.* 这是插入记录到U Employee表中的JDBC操作过程6.* <p>Title: databaseMySQL</p>7.* <p>Description: </p>8.* <p>Copyright: Copyright (c) 2005</p>9.* <p>Company: ascent</p>10.* version 1.011.*/12.12. public class Insertinfo 14.public static void main(String args) 15.try 16./1注册数据库JDBC驱动17.Class.forName("org.gjt.mm.mysqlDriver");18.19./2创建与数据库之间的连接20.Connection con = DriverManager.getConnection("jdbc:mysql:/21. localhost:3306/test","root","");22.23./3创建用于转换并发送SQL语句的Statement对象24.cPreparedStatement pstm = con.prepareStatement("insert into25.employee(sex,name, age) values( ?,?,?)");26.27./4执行SQL28.for(int i = 0; i < 10; i+) 29.pstm.setString(1, "female");30.pstm.setString(2, "name"+i);31.pstm.setInt(3, i);32.pstm.executeUpdate(); /step 4 and 533.34./5如果是查询SQL,还要处理查询结果,这里是插入语句,因此没有查询结果35./6释放JDBC对象以及建立的连接36.pstm.close();37.con.close();38.System.out.println("信息已经插入到表中");39.40.catch(SQLException e) 41.System.out.println("插入失败");42.e.printStackTrace(System.out);43.System.out.println("错误代码 is: "+e.getErrorCode();44.System.out.println("SQL 状态 is: "+ e.getSQLState();45. catch(Exception e) 46.e.printStackTrace(System.out);47.48.49.下面我们就来仔细看一看每一个步骤。1. 注册驱动程序驱动程序管理器通过引用sql.drivers系统属性来取得当前系统中可用的JDBC驱动程序 列表。这个系统属性包含一些用冒号隔开的JDBC驱动程序的类名,通过这个类名,驱动程 序管理器可以试图满足一个连接请求。使用驱动程序注册更为常见。这种方法使你可以对你要使用的JDBC驱动程序进行更多 的控制。所有的JDBC驱动程序在实例化的时候都必须在驱动程序管理器中注册自己,注册 可以通过下列两个方法来实现。(1) Class.forName("foo.Driver").newInstance()(2) new foo.Driver()我们推荐使用Class.forName()这个方法,不过这两个方法的效果是相同的。JDBC驱动 程序用驱动程序管理器注册自己,这样,它就可以为连接请求服务了。常用的驱动:JDBC-ODBC: sun.jdbc.odbc.JdbcOdbcDriver。Oracle: oracle.jdbc.driver.OracleDriver。MySQL: org.gjt.mm.mysql.Driver/com.mysql.jdbc.Driver。PointBase: com.pointbase.jdbc.jdbcUniversalDriver。Weblogic MS-SQL driver: weblogic.jdbc.mssqlserver4.Driver。2. 建立到数据库的连接通过JDBC使用数据库的第一步就是建立一个连接。JDBC连接是由URL指定的,它 的格式如下:1. jdbc:<subprotocol>:<subname>其中,subprotocol是被请求的数据库连接的类型(如ODBC, Oracle, Informix,等等), 而subname提供了所要建立的连接的一些附加信息。当JDBC驱动程序管理器接收到一个要 连接的URL时,所有已知的JDBC驱动程序会被询问是否可以为这个URL服务。通过 JDBC-ODBC桥连接到一个叫做MyData的ODBC数据源的连接的例子如下:1. Connection con = DriverManage.getconnection("jdbc:odbc:MyData");看上去一切都很顺利,但是JDBC驱动程序管理器是怎么知道哪些JDBC驱动程序在当 前的系统中可用呢?有两种机制可以通知驱动程序管理器哪些JDBC驱动程序可以使用: sql.drivers属性和JDBC驱动程序注册(前面已做过介绍)。3. 创建SQL语句在数据库连接成功建立之后,我们就可以执行那些用来完成实际工作的SQL语句了。 在执行SQL语句之前,必须先创建一个语句对象,这个对象提供了到特定数据库SQL引擎 的接口。有下列三种不同类型的语句对象。(1) Statement:基本的语句对象,它提供了直接在数据库中执行SQL语句的方法。对 于那些只执行一次的查询以及DDL语句(如CREATE TABLE,DROP TABLE,等等)来 说,Statement对象就足够了。(2) PreparedStatement:这种语句对象用于那些需要执行多次,每次仅仅是数据取值 不同的SQL语句,它还提供了一些方法,以便指出语句所使用的输入参数。(3) CallableStatement:这种语句对象被用来访问数据库中的存储过程。它提供了一些 方法来指定语句所使用的输入输出参数。4. 执行SQL语句下面是一个用语句类来执行SQL SELECT的一个例子。1. Statement stmt = con.createStatement();2. ResultSet rs = stmt.executeQuery("SELECT * FROM Employee");5. 处理结果在执行了一个SQL语句之后,我们必须处理得到的结果。有些语句仅仅返回一个整型 数,指出受到影响的行数(比如UPDATE和DELETE语句)。SQL查询(SELECT语句) 返回一个含有查询结果的结果集。结果集由行和列组成,各列数据可以通过相应数据库类型 的一系列get方法(如getString,getInt,getDate,等等)来取得。在取得了一行数据的所 有数据之后,我们可以通过调用next()方法来移到结果集中的下一条记录。JDBC规范的1.1 版本只允许forward-only (只向前)型的游标,而在JDBC2.0中有了更健壮的游标控制功能,我们可以向后移动游标,还可以将游标移动到指定行。这将在后面展开介绍。6. 从数据库断开连接在结果集、语句和连接对象用完以后,我们必须正确地关闭它们。连接对象、结果集对 象以及所有的语句对象都有close()方法,通过调用这个方法,我们可以确保正确释放与特定 数据库系统相关的所有资源。有些开发者喜欢随意使用引用,然后用一个垃圾收集程序专门负责清除对象。我们建议 大家在使用了 JDBC驱动程序之后调用相关对象的close()方法,这样可以尽可能地减少由于 挂起的对象残留在数据库系统中而造成的内存泄漏。【浅谈JDBC连接数据库步骤JDBC连接数据库步骤一.加载驱动导入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)下标从一开始4. inti=st.executeUpdate(sql);5. PreparedStatement:6. PreparedStatementps=con.PreparedStatement("sql语句")7 ps.setXXX(n,值)对第n个?进行赋值区别用st的好处在动态组装SQL时,指动态产生要执行SQL语句用pst的好处更好维护避免SQL注入效率更高扩展用JDBC的批处理(BATCH)可以提高效率用ResultSetMetadata可以获取列的信息(个数,名称)查询8. resultsetrs=pst.executePuery()9. while ()10. Stringstr=rs.getString(歹。的位置,歹。的名称)JDBC连接数据库步骤四.关闭顺序11. ifrs!=nullrs.close();12. pst.close();13. con.close();具体实例:14. privatefinalStringURL="jdbc:mysql:/localhost:3306/db"15. privatefinalStringFINDALL="select*fromdept"16. privateConnectioncon;17. privatePreparedStatementps;18. privateResultSetrs;19.19. /查询20. publicListfindAll()21. Listlist=newArrayList();22. try23. Class.forName("com.mysql.jdbc.Driver");24. con=DriverManager.getConnection(URL, "root" , "123");25. ps=con.prepareStatement(FINDALL);26. rs=ps.executeQuery();27. while (rs.next()28. DeptDTOdto=newDeptDTO();29. dto.setDeptId(rs.getInt("deptId");30. dto.setName(rs.getString("depName");31. dto.setPhone(rs.getString("phone");32. System.out.println(dto.getDeptId()+""+dto.getName()+""+dto.getPhone( );33. list.add(dto);34. 35. con.close();36. catch(ClassNotFoundExceptione)37. /TODOAuto-generatedcatchblock38. e.printStackTrace();39. catch(SQLExceptione)40. /TODOAuto-generatedcatchblock41. e.printStackTrace();42. 44.43. returnlist;44. 47.48.49.45. /添加,添加中关闭连接的方法相比查询中的关闭方法更好一些46. publicvoidadd(DeptDTOdto)47. try48. Class.forName("com.jdbc.mysql.Driver");49. con=DriverManager.getConnection("jdbc:mysql:/localhost:3306/db","ro ot","123");50. ps=con.prepareStatement("insertintodept(deptId,depName,phone)values( ?,?,?)”);51. ps.setInt(1,dto.getDeptId();52. ps.setString(2,dto.getName();53. ps.setString(3,dto.getPhone();54. ps.execute();55. catch(ClassNotFoundExceptione)56. /TODOAuto-generatedcatchblock57. e.printStackTrace();58. catch(SQLExceptione)59. /TODOAuto-generatedcatchblock60. e.printStackTrace();61. 62. finally63. try64. if(con!=null&&!con.isClosed()65. con.close();66. 67. catch(SQLExceptione)68. /TODOAuto-generatedcatchblock69. e.printStackTrace();70. 76.71. 78.72. 73. le.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.j ava:35)74. atoracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)75. atjava.sql.DriverManager.getConnection(UnknownSource)76. atjava.sql.DriverManager.getConnection(UnknownSource)77. attool.DbConnect.getConnect(DbConnect.java:45)78. attool.DbConnect.main(DbConnect.java:54)二、JDBC连接MySQL方式下面是使用JDBC连接MySQL的一个小的教程1、查找驱动程序MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载, 并找到 MySQL-connector-java-3.0.15-ga-bin.jar 文件,此驱动程序为纯 java 驱动程序,不需做其他配置。2、动态指定classpath如果需要执行时动态指定classpath,就在执行时采用一cp方式。否则将上面 的.jar文件加入到c lasspath环境变量中。3、加载驱动程序1. try(2. Class.forName(com.MySQL.jdbc.Driver);3. System.out.println(Success loading MySQL Driver!);4. catch(Exception e)5. (6.6. System.out.println(Error loading MySQL Driver!);7. e.printStackTrace();8. 4、设置连接的urljdbc: MySQL: /localhost/databasename?pa=va&pa=va在接下来的内容中,将使用MySQL数据库系统进行操作。MySQL的JDBC驱动程序 属于Type 4。您可以在以下的网址获得MySQL的JDBC驱动程序,本章中将使用MySQL Connector/J 5.0。http:/www.mysql.eom/products/connector/j/index.html关于数据库系统的使用与操作是个很大的主题,本书中并不针对这方面加以介绍,请寻找数 据库系统相关书籍自行学习,不过为了让您能顺利练习本章的范例,附录C中包括了一个 MySQL数据库系统的简介,足够您了解这一章中将用到的一些数据库操作命令。6、MySQL数据库1. Class.forName("org.gjt.mm.mysql.Driver" ).newInstance();2. String url ="jdbc:mysql:/localhost/myDB?user=soft&password=soft1234 &useUnicode=true&characterEncoding=8859_1"3. /myDB为数据库名4. Connection conn= DriverManager.getConnection(url);或1. Class.forName( "com.mysql.jdbc.Driver");2. String url="jdbc:mysql:/localhost/myDB?ser=root&password=system"3. conn = DriverManager.getConnection(url);2编程实现数据库的insert、select、update、delete等操作。

    注意事项

    本文(JDBC操作 连接MYSQL数据库.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开