首页 \ 问答 \ 求java经典入门教程,要从零基础开始的

求java经典入门教程,要从零基础开始的

求JAVA经典入门教程,我一点基础没有,想从零基础开始学,要能听得懂的!能学会的
更新时间:2023-04-06 09:04

最满意答案

创建一个以JDBC连接数据库的程序,包含7个步骤:   
 1、加载JDBC驱动程序:   
    在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),   
    这通过java.lang.Class类的静态方法forName(String  className)实现。   
    例如:   
    try{   
    //加载MySql的驱动类   
    Class.forName("com.mysql.jdbc.Driver") ;   
    }catch(ClassNotFoundException e){   
    System.out.println("找不到驱动程序类 ,加载驱动失败!");   
    e.printStackTrace() ;   
    }   
   成功加载后,会将Driver类的实例注册到DriverManager类中。   
 2、提供JDBC连接的URL   
   •连接URL定义了连接数据库时的协议、子协议、数据源标识。   
    •书写形式:协议:子协议:数据源标识   
    协议:在JDBC中总是以jdbc开始   
    子协议:是桥连接的驱动程序或是数据库管理系统名称。   
    数据源标识:标记找到数据库来源的地址与连接端口。   
    例如:(MySql的连接URL)   
    jdbc:mysql:   
        //localhost:3306/test?useUnicode=true&characterEncoding=gbk ;   
   useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为   
   gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。   
 3、创建数据库的连接   
    •要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,   
     该对象就代表一个数据库的连接。   
    •使用DriverManager的getConnectin(String url , String username ,    
    String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和   
     密码来获得。   
     例如:   
     //连接MySql数据库,用户名和密码都是root   
     String url = "jdbc:mysql://localhost:3306/test" ;    
     String username = "root" ;   
     String password = "root" ;   
     try{   
    Connection con =    
             DriverManager.getConnection(url , username , password ) ;   
     }catch(SQLException se){   
    System.out.println("数据库连接失败!");   
    se.printStackTrace() ;   
     }   
 4、创建一个Statement   
    •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3  
     种类型:   
      1、执行静态SQL语句。通常通过Statement实例实现。   
      2、执行动态SQL语句。通常通过PreparedStatement实例实现。   
      3、执行数据库存储过程。通常通过CallableStatement实例实现。   
    具体的实现方式:   
        Statement stmt = con.createStatement() ;   
       PreparedStatement pstmt = con.prepareStatement(sql) ;   
       CallableStatement cstmt =    
                            con.prepareCall("{CALL demoSp(? , ?)}") ;   
 5、执行SQL语句   
    Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate   
   和execute   
    1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句   
        ,返回一个结果集(ResultSet)对象。   
     2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或   
        DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等   
     3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的   
        语句。   
   具体实现的代码:   
          ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;   
    int rows = stmt.executeUpdate("INSERT INTO ...") ;   
    boolean flag = stmt.execute(String sql) ;   
 6、处理结果   
    两种情况:   
     1、执行更新返回的是本次操作影响到的记录数。   
     2、执行查询返回的结果是一个ResultSet对象。   
    • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些   
      行中数据的访问。   
    • 使用结果集(ResultSet)对象的访问方法获取数据:   
     while(rs.next()){   
         String name = rs.getString("name") ;   
    String pass = rs.getString(1) ; // 此方法比较高效   
     }   
    (列是从左到右编号的,并且从列1开始)   
 7、关闭JDBC对象    
     操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声   
     明顺序相反:   
     1、关闭记录集   
     2、关闭声明   
     3、关闭连接对象   
          if(rs != null){   // 关闭记录集   
        try{   
            rs.close() ;   
        }catch(SQLException e){   
            e.printStackTrace() ;   
        }   
          }   
          if(stmt != null){   // 关闭声明   
        try{   
            stmt.close() ;   
        }catch(SQLException e){   
            e.printStackTrace() ;   
        }   
          }   
          if(conn != null){  // 关闭连接对象   
         try{   
            conn.close() ;   
         }catch(SQLException e){   
            e.printStackTrace() ;   
         }   
          }

其他回答

b    statement

1、创建 statement 对象

  建立了到特定数据库的连接之后,就可用该连接发送 sql 语句。statement 对象用 connection 的方法 createstatement 创建,如下列代码段中所示:

connection con = drivermanager.getconnection(url, "sunny", "");
statement stmt = con.createstatement();

  为了执行 statement 对象,被发送到数据库的 sql 语句将被作为参数提供给 statement 的方法:

resultset rs = stmt.executequery("select a, b, c from table2");

  2、使用 statement 对象执行语句

  statement 接口提供了三种执行 sql 语句的方法:executequery、executeupdate 和 execute。使用哪一个方法由 sql 语句所产生的内容决定。

  方法 executequery 用于产生单个结果集的语句,例如 select 语句。

  方法 executeupdate 用于执行 insert、update 或 delete 语句以及 sql ddl(数据定义语言)语句,例如 create table 和 drop table。insert、update 或 delete 语句的效果是修改表中零行或多行中的一列或多列。executeupdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 create table 或 drop table 等不操作行的语句,executeupdate 的返回值总为零。

  方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能,所以本概述后面将在单独一节中对其进行介绍。

  执行语句的所有方法都将关闭所调用的 statement 对象的当前打开结果集(如果存在)。这意味着在重新执行 statement 对象之前,需要完成对当前 resultset 对象的处理。

  应注意,继承了 statement 接口中所有方法的 preparedstatement 接口都有自己的 executequery、executeupdate 和 execute 方法。statement 对象本身不包含 sql 语句,因而必须给 statement.execute 方法提供 sql 语句作为参数。preparedstatement 对象并不将 sql 语句作为参数提供给这些方法,因为它们已经包含预编译 sql 语句。callablestatement 对象继承这些方法的 preparedstatement 形式。对于这些方法的 preparedstatement 或 callablestatement 版本,使用查询参数将抛出 sqlexception。

  3、语句完成

  当连接处于自动提交模式时,其中所执行的语句在完成时将自动提交或还原。语句在已执行且所有结果返回时,即认为已完成。对于返回一个结果集的 executequery 方法,在检索完 resultset 对象的所有行时该语句完成。对于方法 executeupdate,当它执行时语句即完成。但在少数调用方法 execute 的情况中,在检索所有结果集或它生成的更新计数之后语句才完成。

   概述

  statement 对象用于将 sql 语句发送到数据库中。实际上有三种 statement 对象,它们都作为在给定连接上执行 sql 语句的包容器:statement、preparedstatement(它从 statement 继承而来)和 callablestatement(它从 preparedstatement 继承而来)。它们都专用于发送特定类型的 sql 语句: statement 对象用于执行不带参数的简单 sql 语句;preparedstatement 对象用于执行带或不带 in 参数的预编译 sql 语句;callablestatement 对象用于执行对数据库已存储过程的调用。

  statement 接口提供了执行语句和获取结果的基本方法。preparedstatement 接口添加了处理 in 参数的方法;而 callablestatement 添加了处理 out 参数的方法。

有些 dbms 将已存储过程中的每条语句视为独立的语句;而另外一些则将整个过程视为一个复合语句。在启用自动提交时,这种差别就变得非常重要,因为它影响什么时候调用 commit 方法。在前一种情况中,每条语句单独提交;在后一种情况中,所有语句同时提交。

  4、关闭 statement 对象

  statement 对象将由 java 垃圾收集程序自动关闭。而作为一种好的编程风格,应在不需要 statement 对象时显式地关闭它们。这将立即释放 dbms 资源,有助于避免潜在的内存问题。

相关问答

更多
  • 1.注册驱动 Class.forname("com.mysql.jdbc.Driver");//这是连接mysql数据库的驱动 2.获取数据库连接 java.sql.Connection conn=java.sql.DriverManager.getConnection(); 3.获 取表达式 java.sql.Statement stmt=conn.createStatement ("jdbc:mysql://localhost/test? useUnicode=true&characterEncodin ...
  • 1.注册驱动 Class.forname("com.mysql.jdbc.Driver");//这是连接mysql数据库的驱动 2.获取数据库连接 java.sql.Connection conn=java.sql.DriverManager.getConnection(); 3.获取表达式 java.sql.Statement stmt=conn.createStatement("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=G ...
  • 1.加载驱动程序 Class.forName("oracle.jdbc.driver.OracleDriver"); 2. 建立连接 Connection conn = DriverMananger.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","用户名","密码"); 3 执行查询 4 关闭数据库连接
  • 1.注册驱动 Class.forname("com.mysql.jdbc.Driver");//这是连接mysql数据库的驱动 2.获取数据库连接 java.sql.Connection conn=java.sql.DriverManager.getConnection(); 3.获取表达式 java.sql.Statement stmt=conn.createStatement("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=G ...
  • 1.加载驱动程序 Class.forName("oracle.jdbc.driver.OracleDriver"); 2. 建立连接 Connection conn = DriverMananger.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","用户名","密码"); 3 执行查询 4 关闭数据库连接
  • 创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ System.out.println("找不到驱动 ...
  • 1.建立数据库database,建立数据表student。 字段: sid 学号 文本 sname 姓名 文本 ssex 性别 文本(2字节) saddress 地址 文本 stel 电话 文本 2.类代码 /****************************************************** 使用: 设置数据库路径、sql语句、最大返回行数,使用getHTMLTable()返回html表格形式的字符串 executeSQL(String,String)执行SQL语句返回一个对象,请 ...
  • 数据写在java端的list缓存里面,可以在java端写一个清除list的方法,如果前端请求数据是直接向数据库请求的话,可以清除一些request缓存啊啥的
  • import java.sql.*; public class MysqlTest { public static void main(String[] args){ // 驱动程序名 String driver = "com.mysql.jdbc.Driver"; // URL指向要访问的数据库名world String url = "jdbc:mysql://127.0.0.1:3306/world"; // MySQL配置时的用户名 String user = "root"; // MySQL配置时的 ...
  • 那就使用windows to go功能,这个是从Windows8开始内置的功能用于在移动设备上安装Windows, 具体可以参考这个http://bbs.feng.com/read-htm-tid-8187335.html 安装win10与之类似

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。