Jdbc

来源:互联网 发布:具体营销数据分析 编辑:程序博客网 时间:2024/06/08 05:05

一、JDBC概述
1、Java Data Base Connectivity(java数据库连接)
2、组成包:java.sql.;javax.sql.;这两个包都包含在了JDK中。
3、还需要数据库的驱动,这些驱动就相当于对JDBC规范的实现
二、JDBC的编码步骤
1、把数据库的驱动加入到classpath中 (方法是拷贝mysql-connector-java-5.0.8-bin.jar 到工程下然后buildpath)
2、开发步骤:
1、注册驱动
2、获取与数据库的链接 .properties
3、得到代表SQL语句的对象
4、执行语句
5、如果执行的是查询语句,就会有结果集,处理
6、释放占用的资源

package com.zh.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JdbcDemo1 {    public static void main(String[] args) throws ClassNotFoundException, SQLException     {        Class.forName("com.mysql.jdbc.Driver");  //注册驱动       驱动包名 com.mysql.jdbc   Driver 类        //Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=root");   //注意这种办法url后面添加参数注意不要随意添加空格       Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","root");         //  url中mysql的位置可以是sqlservice  根据是数据库的类型定       Statement stmt = conn.createStatement();        ResultSet  rs = stmt.executeQuery("select * from  stu");  // 执行sql语句       while(rs.next())       {           System.out.println(rs.getInt("id")+":"+rs.getString("name")+":"+ rs.getString("address"));       }       //关闭链接,关闭命令对象,关闭结果集。       rs.close();       stmt.close();       conn.close();    }}

JDBC的增删改查:
创建sql语句示例:
String sql = “insert into stu(id,name,sex) values(12,’东东’,’男’)”;
1、Statement 命令对象 Jdbc程序中的Statement对象用于向数据库发送SQL语句, Statement对象常用方法:
就是执行sql语句的;
executeQuery(String sql) :用于向数据发送查询语句。
executeUpdate(String sql):用于向数据库发送insert、update或delete语句
addBatch(String sql) :把多条sql语句放到一个批处理中。
executeBatch():向数据库发送一批sql语句执行。
2、ResultSet
Jdbc程序中的ResultSet用于代表Sql语句的执行结果。Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。
ResultSet还提供了对结果集进行滚动的方法:
next():移动到下一行
Previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面。

package com.zh.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JdbcDemo4 {    public static void main(String[] args) throws ClassNotFoundException,            SQLException {        Class.forName("com.mysql.jdbc.Driver"); // 注册驱动 包名 com.mysql.jdbc Driver                                                // 类    Connection conn = DriverManager.getConnection(                "jdbc:mysql://localhost:3306/mydb", "root", "root");  //创建的是连接对象        Statement stmt = conn.createStatement();    // 创建执行sql语句的命令对象  Statement        // 创建一个sql语句        //        // String sql        // ="insert into stu(id,name,age,address,sex) values(12,'东方不败',20,'湖南','男')";//      添加        // int n = stmt.executeUpdate(sql); //返回一整型 就是执行结果影响的记录数。        // String sql = "update stu set name='张刘子'where id=12"; //    改 修改 update tablename set 字段名where         String sql = "delete from stu where id =12";   // 删除  delete from tablename where 字段名        int n = stmt.executeUpdate(sql);        System.out.println(n);   // 需要注意的是这如果是增加的sql语句结果第一次是1,对于第二次就会因为主键的原因执行会抛出                                                                                                                                异常报出错误。        // 关闭链接,关闭命令对象,        stmt.close();        conn.close();    }}

结果集 ResultSet 用while循环的原因是 游标在第一条记录的前面。//Before start of result set
url的写法:
URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
jdbc:mysql:[]//localhost:3306/test ?参数名=参数值
协议 子协议 主机端口号 数据库
常用数据库URL地址的写法:
Oracle写法:jdbc:oracle:thin:@localhost:1521:sid
SqlServer—jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid
MySql—jdbc:mysql://localhost:3306/sid
Mysql的url地址的简写形式: jdbc:mysql:///sid 这个省略的只能是本机的 localhost:3306
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

常用数据类型转换:sql类型                          Jdbc对应方法                              返回类型Text(clob)  Blob               getClob getBlob()                         Clob  BlobDATE                             getDate()                               java.sql.DateTIMESTAMP                      getTimestamp()                             java.sql.Timestamp CHAR,VARCHAR,LONGVARCHAR       getString()                                StringBIGINT                         getLong()                                   LongSMALLINT                      getShort()                                  ShortInt                            getInt()                                    Int
0 0
原创粉丝点击