Java数据库操作

一、如何通过JDBC访问数据库

JDBC:Java DataBase Connectivity数据库连接用于在java程序中实现操作数据库。一般步骤如下:

1.加载JDBC驱动器。将数据库的JDBC驱动加载到classPath,web工程的一般放大WEB-INF/lib/下,java工程项目的则用build path将jar包导进去。

2.加载JDBC驱动,并将其注册到DriverManager中,一般使用反射Class.forName(String driveName).

3.简历数据库连接,取得Connection对象。 一般通过Driver.getConnection(url,username,password)方法实现。

4.建立Statement对象或是PreparedStatement对象。

5.执行SQL语句

6.访问结果集ResultSet

7.依次将ResultSet、Statement、PreparedStatement、Connection对象关闭,释放掉所占用的资源。

实例代码如下:

首先创建一张表:

1.createtabelEmployee( 2.idintprimarykey, 3.namevarchar(20), 4.ageint 5.);

示例程序:

1.importjava.sql.*; 2. 3.publicclassTest{ 4. 5.publicstaticvoidmain(Stringargs[]){ 6. 7.Stringuser=”user1″; 8.Stringpassword=”pwd’; 9.Stringurl=”jdbc:mysql://127.0.0.1:3306/Test”; 10.Stringdriver=”com.mysql.jdbc.Driver”; 11.Connectioncon=null; 12.Statementstmt=null; 13.ResultSetrs=null; 14. 15.try{ 16.Class.forName(driver); 17.con=DriverManager.getConnection(url,user,password); 18.stmt=con.createStatement(); 19.stmt.execute(“insertintoEmployeevalues(1,’James1′,36)”); 20.rs=stmt.executeQuery(“select*fromEmployee”); 21.while(rs.next()){ 22.System.out.println(rs.getInt(1)+””+rs.getString(2)+””+rs.getInt(3)); 23.} 24.}catch(SQLExceptione){ 25.System.out.println(e.getMessage()); 26.}finally{ 27.try{ 28.if(rs!=null)rs.close(); 29.if(stmt!=null)stmt.close(); 30.if(con!=null)con.close(); 31. 32.}catch(SQLExceptionfe){ 33.System.out.println(“fe:”fe.getMessage()); 34.} 35. 36.} 37.} 38.}

二、Statement、PreparedStatement和CallableStatement的区别

Statement一般用于执行不带参数的SQL语句,并返回生成的结果,每次执行SQL语句时,数据库都要编译该SQL语句。 PerparedStatement表示 与的SQL语句对象,用于执行带参数的SQL语句。效率高、安全性好、代码可读性和可维护性好。(推荐使用) CallableStatement用来调用数据库中存储过程的接口,如果有输出参数要注册,说明是输出参数。

举例说明PreparedStatement:

1.importjava.sql.*; 2. 3. 4.publicclassTest{ 5. 6. 7.publicstaticvoidmain(Stringargs[]){ 8. 9. 10.Stringuser=”user1″; 11.Stringpassword=”pwd’; 12.Stringurl=”jdbc:mysql://127.0.0.1:3306/Test”; 13.Stringdriver=”com.mysql.jdbc.Driver”; 14.Connectioncon=null; 15.PreparedStatementps=null; 16.ResultSetrs=null; 17. 18. 19.try{ 20.Class.forName(driver); 21.con=DriverManager.getConnection(url,user,password); 22.ps=con.preparedStatement(“select*fromEmloyeewhereid=?”); 23.ps.setInt(1,1); 24.rs=ps.executeQuery(); 25.while(rs.next()){ 26.System.out.println(rs.getInt(1)+””+rs.getString(2)+””+rs.getInt(3)); 27.} 28.}catch(SQLExceptione){ 29.System.out.println(e.getMessage()); 30.}finally{ 31.try{ 32.if(rs!=null)rs.close(); 33.if(ps!=null)ps.close(); 34.if(con!=null)con.close(); 35. 36. 37.}catch(SQLExceptionfe){ 38.System.out.println(“fe:”fe.getMessage()); 38.} 40. 41.} 42.} 43.}

三、getString()方法和getObject()方法有什么区别 在数据量很大的时候直接调用ResultSet方法的getString、getInt、getData方法会抛出异常:OrcalecException。此时应该使用getObject方法。因为其他方法会将查询结果都加载到内存中,如果数据量超过内存上限,则会导致异常。

四、JDBC与Hibernate有什么区别 Hibernate是JDBC的封装。采用配置文件的形式将数据库连接参数写到XML文件中。(下次再研究Hibernate)

原文链接:http://www.kuqin.com/shuoit/20150901/347855.html

本站文章均由 HTML5梦工场 编辑从其他媒体精选HTML5相关文章转载,仅供网友学习和交流,如果我们的工作有侵犯到您的权益,请及时联系小编QQ:123464386,我们会在第一时间进行处理!