您的位置:首页 > 其它

Jdbc

2016-07-17 18:10 162 查看
一、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  Blob
DATE                             getDate()                               java.sql.Date
TIMESTAMP                      getTimestamp()                             java.sql.Timestamp
CHAR,VARCHAR,LONGVARCHAR       getString()                                String
BIGINT                         getLong()                                   Long
SMALLINT                      getShort()                                  Short
Int                            getInt()                                    Int
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: