数据库链接JDBC

通过java_JDBC链接数据库

jdbc:

java操作数据库.jdbc是oracle公司指定的一套规范(一套接口)

驱动:jdbc的实现类.由数据库厂商提供.

我们就可以通过一套规范操作不同的数据库了(多态)

jdbc作用:

连接数据库

发送sql语句

处理结果

步骤:

导入jar包:

  1. 注册驱动
  2. 获取链接
  3. 获取执行者
  4. 执行sql语句
  5. 对结果进行操作

jdbc-api详解:

所有的包 都是 java.sql 或者 javax.sql

DriverManager:管理了一组jdbc的操作 类

常用方法:

了解:注册驱动

static void registerDriver(Driver driver) :

通过查看 com.mysql.jdbc.Driver的源码 有如下代码

static {

try {

java.sql.DriverManager.registerDriver(new Driver());//这段代码我们已经写过

} catch (SQLException E) {

throw new RuntimeException("Can‘t register driver!");

}

}

驱动注册了两次.我们只需要将静态代码块执行一次,类被加载到内存中会执行静态代码块,并且只执行一次.

现在只需要将类加载到内存中即可:

方式1:

★Class.forName("全限定名");//包名+类名   com.mysql.jdbc.Driver

方式2:

类名.class;

方式3:

对象.getClass();

掌握:获取连接

static Connection getConnection(String url, String user, String password)

参数1:告诉我们连接什么类型的数据库及连接那个数据库

协议:数据库类型:子协议 参数

mysql:    jdbc:mysql://localhost:3306/数据库名称

oracle:    jdbc:oracle:[email protected]:[email protected]实例

参数2:账户名 root

参数3:密码

(了解)Driver:java.sql 接口 驱动

Connection:连接 接口

常用方法:

获取语句执行者:

(了解)Statement createStatement() :获取普通的语句执行者  会出现sql注入问题

★PreparedStatement prepareStatement(String sql) :获取预编译语句执行者

(了解)CallableStatement prepareCall(String sql):获取调用存储过程的语句执行者

了解:

setAutoCommit(false) :手动开启事务

commit():提交事务

rollback():事务回滚

Statement:语句执行者 接口

PreparedStatement:预编译语句执行者 接口

常用方法:

设置参数:

setXxx(int 第几个问号,Object 实际参数);

常见的方法:

setInt

setString

setObject

执行sql:

ResultSet executeQuery() :执行 r 语句 返回值:结果集

int executeUpdate() :执行cud 语句 返回值:影响的行数

ResultSet:结果集 接口

执行查询语句之后返回的结果

常用方法:

boolean next():判断是否有下一条记录,若有返回true且将光标移到下一行,若没有呢则返回false

光标一开始处于第一条记录的上面

获取具体内容

getXxx(int|string)

若参数为int :第几列

若参数为string:列名(字段名)

例如:

获取cname的内容可以通过

getString(2)

getString("cname")

常用方法:

getInt

getString 也可以获取int值

getObject 可以获取任意

 1 //代码演示:
 2 //我们封装一个工具类来提高代码的扩展性
 3 public class JDBCUtils {
 4           private static final String url="jdbc:mysql://localhost:3306/test";
 5           private static final String username="root";
 6           private static final String password = "root";
 7           /**
 8            * 注册驱动
 9            */
10           static {
11               try {
12                    Class.forName("com.mysql.jdbc.Driver");
13               } catch (ClassNotFoundException e) {
14                    // TODO Auto-generated catch block
15                    e.printStackTrace();
16               }
17           }
18           /**
19            * 获取链接
20            * @return
21            */
22           public static Connection getConnention() {
23               Connection connection=null;
24               try {
25                    connection = DriverManager.getConnection(url,username,password);
26               } catch (SQLException e) {
27                    // TODO Auto-generated catch block
28                    e.printStackTrace();
29               }
30               return connection;
31           }
32           /**
33            * 通过可变参关闭连接
34            * @param objects
35            */
36           public static void colse(Object ...objects) {
37               try {
38                    if (objects!=null && objects.length>0) {
39                         for(int i = 0;i<objects.length;i++) {
40                              if(objects[i] instanceof Statement) {
41                                   ((Statement)objects[i]).close();
42                              }else if(objects[i] instanceof Connection) {
43                                   ((Connection)objects[i]).close();
44                              }
45                         }
46                    }
47               } catch (Exception e) {
48                    e.printStackTrace();
49               }
50           }
51 }
 1 // 对工具类的使用
 2 public class JDBCDemo {
 3      public static void main(String[] args) {
 4           //获取链接
 5           Connection connection = JDBCUtils.getConnention();
 6           //获取执行者
 7           ResultSet resultSet=null;
 8           PreparedStatement pStatement=null;
 9
10           //定义将要执行的sql语句
11           String sql = "select * from products where cno=?";
12           //存放结果集对象
13           List<Product> list = new ArrayList<Product>();
14           try {
15               //获取语句执行者对象
16               pStatement = connection.prepareStatement(sql);
17               //设置参数
18               pStatement.setInt(1, 1);
19               //执行查询操作
20               resultSet = pStatement.executeQuery();
21               //遍历结果集
22               while (resultSet.next()) {
23                    Product product = new Product();
24                    product.setId(resultSet.getInt("pid"));
25                    product.setName(resultSet.getString("pname"));
26                    product.setPrice(resultSet.getInt("price"));
27                    product.setNum(resultSet.getInt("pnum"));
28                    product.setCno(resultSet.getInt("cno"));
29                    product.setTimestamp(resultSet.getTimestamp("pdate"));
30                    list.add(product);
31               }
32           } catch (SQLException e) {
33               // TODO Auto-generated catch block
34               e.printStackTrace();
35           }finally {
36               //关闭连接
37               JDBCUtils.colse(pStatement,connection);
38           }
39           for (Product product : list) {
40               System.out.println(product);
41           }
42      }
43 }
时间: 2024-10-04 21:30:12

数据库链接JDBC的相关文章

沫沫金【实践可用】--web工程ORM数据库链接(JDBC)链接集群库||普通库,两种标准

普通链接配置,应用到集群会启动失败,请修改 集群数据库链接 jdbc.url=jdbc:oracle:thin:@//127.0.0.1:1521/momojin 普通数据库链接 jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521/momojin 区别就在于:"//",如上所示 标红的地方.请务必清楚

java JDBC 数据库链接

1.准备环境搭建: myeclipse,sql2005,jdbc. 2.都下载完之后开始进行安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证) <1> 将JDBC解压缩到任意位置,比如解压到C盘program files下面,并在安装目录里找到sqljdbc.jar文件,得到其路径开始配置环境变量 在环境变量classpath 后面追加 C:\Program Files\Microsoft SQL Server2005 JDBC Driver\sqljdb

【数据库】java链接jdbc 释放资源

/* *   编写快速 入门的jdbc 程序 : *    *    1. 先导入 具体的驱动jar包 *    2. 编写一个类 , 写jdbc 的程序 *  *  具体的编写 java类的 代码的步骤: *    *   第一步: 注册驱动 --- 告诉 具体的要操作的是那个 数据库  *   第二步: 建立与 数据库的链接---Connection *   第三步: 获得可以发送  sql 语句的 statement 对象 *   第四步: 执行sql 语句, 拿到 结果集对象 *   第

Java -- JDBC 学习--获取数据库链接

数据持久化 持久化(persistence): 把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固化",而持久化的实现过程大多通过各种关系数据库来完成. 持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件.XML数据文件中. Java 中的数据存储技术 在Java中,数据库存取技术可分为如下几类: JDBC直接访问数据库 JDO技术 第三方O/R工具,如Hibernate, ibat

androidj常用数据库操作JDBC Utils

package mypackage; import java.lang.reflect.Field; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.u

mybatis源码数据库链接配置

<?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE configuration             PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"            "http://ibatis.apache.org/dtd/ibatis-3-config.dtd"><configurat

原创:mysql5 还原至mysql 8.0.11数据库链接配置提示错误改动备注

原创:mysql5 还原至mysql 8.0.11数据库链接配置提示错误改有三: a) mysql 连接jar包版修改 b)类路径修改 c)配置连接池地址修改 因版本升级,首先要修改 1:mysql-connector-java 架包版本修改 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> !--原版本 5.1.6-->

Oracle 数据库链接

SQL> CREATE DATABASE LINK   mydblink 2    CONNECT TO   test   IDENTIFIED BY   test123 3    USING '(DESCRIPTION = 4      (ADDRESS_LIST = 5        (ADDRESS = (PROTOCOL = TCP)(HOST=192.168.1.210)(PORT = 1521))) 6        (CONNECT_DATA = (SERVICE_NAME = o

EntityFramework 多数据库链接,MySql,SqlServer,Oracel等

环境:EntityFramework5.0,MySql5.6,MSSQL2012 EF是强大的ORM工具,真正意义上的多数据库链接指的是不同类型的数据库,以及同种类型的数据库多个库,EF很好的支持这一点,下面简单演示下: 创建一个MVC4.0,Framework4.5的基本项目,然后重点是WebConfig配置: <?xml version="1.0" encoding="utf-8"?> <!-- For more information on