纯java数据库_JAVA:数据库

1、JDBC

1.1 简介

c7bdcc9f67ff

JDBC工作原理

(1)JDBC:Java数据库连接技术的简称,提供连接各种常用数据库的能力

(2)主要功能:与数据库建立连接、执行SQL 语句、处理结果。

(3)核心接口:

DriverManager

依据数据库的不同管理JDBC驱动

Connection

负责连接数据库和传送数据

Statement

由Connection产生,负责执行SQL语句

ResultSet

负责保存Statement执行后所产生的查询结果

c7bdcc9f67ff

4个核心接口

(4)连接数据库的两种方法

纯JAVA方式连接:由JDBC驱动直接访问数据库

优点:完全Java代码,快速、跨平台

缺点:访问不同的数据库需要下载专用的JDBC驱动

使用JDBC-ODBC桥方式连接数据库

优点:可以访问所有ODBC可以访问的数据库

缺点:执行效率低、功能不够强大

1.2 JDBC访问数据库

步骤:

(1)加载JDBC驱动

(2)与数据库建立连接

(3)发送SQL语句,并得到返回结果

(4)处理返回结果

(5)释放资源

// 纯JAVA方式

public class DBConnection {

private static final String DBDRIVER = "com.mysql.jdbc.Driver";

private static final String DBURL = "jdbc:mysql://106.52.165.12:3306/Soso?useUnicode=true&characterEncoding=utf-8&useSSL=false";

private static final String DBUSER = "root";

private static final String DBPASSWORD = "";

public int linkMysql(String sql) {

Connection conn = null;

Statement stmt = null;

try {

Class.forName(DBDRIVER); // (1)加载JDBC驱动

} catch (Exception e) {

e.printStackTrace();

return -1;

}

try{

//(2)与数据库建立连接

conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);

//(3)发送SQL语句,并得到返回结果

stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(sql); // 查询操作

// int executeUpdate(String sql) 插入删除更新操作

//(4)处理返回结果

while (rs.next()) {

int a = rs.getInt("a");

String b = rs.getString("b");

float c = rs.getFloat("c");

}

return 0;

} catch (Exception e) {

e.printStackTrace();

return -1;

} finally {

if(conn != null) {

try { //(5)释放资源

rs.close();

stmt.close();

conn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

}

不使用Statement而使用PreparedStatement

Connection conn = null;

PreparedStatement pstmt = null;

//…

// 建立连接

//… …

// 更新狗狗信息到数据库

String sql="update dog set health=?,love=?";

pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, 80);

pstmt.setInt(2, 15);

pstmt.setInt(3, 1);

pstmt.executeUpdate();

//… …

pstmt.close();

conn.close();

2、DAO

(1)数据持久化:将程序中的数据在瞬时状态和持久状态间转换的机制

(2)Data Access Object(数据存取对象):位于业务逻辑和持久化数据之间,实现对持久化数据的访问

(3)组成部分

DAO接口

DAO实现类

实体类

属性一般使用private修饰,提供public修饰的getter/setter方法

实体类提供无参构造方法,根据业务提供有参构造

实现java.io.Serializable接口,支持序列化机制

数据库连接和关闭工具类

c7bdcc9f67ff

DAO组成部分

c7bdcc9f67ff

DAO各部分关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值