Fork me on GitHub

JDBC

Java DataBase Connectivity Java数据库连接,访问数据库的一种技术

JDBC编程步骤

  1. 加载注册驱动类Driver
  2. 建立连接
  3. 操作数据
  4. 释放资源
  1. Connection:连接对象,负责应用程序和数据库建立连接,连接成功之后才能向数据库发送命令,但是在创建连接之前,需要知道指定数据的地址,用户名和密码
  2. Statement:执行对象,负责发送sql语句,用它执行需要拼接sql,比较繁琐,容易出错,容易引起sql注入
  3. DriverManager: 创建连接对象
  4. PreparedStatement预编译执行对象,是statement的一个子接口,把sql语句预编译并存储到PreparedStatement对象中,允许sql语句使用占位符,占位符坐标从一开始
  5. ReultSet结果集对象,执行查询后,数据库返回的结果就是结果集,通常会把结果集中的数据保存到list中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.hpe.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class TestDel {

public static void main(String[] args) {
//创建连接对象
Connection conn=null;
//执行对象
Statement st =null;
//创建一个变量,接收数据库返回的结果、
int result=0;
try{
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.建立连接
//数据库连接地址,用户名,密码
String url="jdbc:mysql://localhost:3306/test";
String user="root";
String pwd="root";
conn=DriverManager.getConnection(url, user, pwd);
//System.out.println(conn);
//创建执行对象
//根据id删除
String id = "121";
String sql="delete from stu where stuid ="+id;
st=conn.createStatement();
//4.执行
result=st.executeUpdate(sql);
}catch(Exception e){//增删改
e.printStackTrace();
}finally{
//5.关闭资源
try{
st.close();
}catch(SQLException e){
e.printStackTrace();
}
if(result>0){
System.out.println("删除成功");
}
}
}
}

实体类:对应数据库中的表,表中有什么属性,实体类就定义什么属性,属性名和类型必须和表的字段和类型保持一致,一个无参构造方法,一个没有主键 的有参构造方法,主键没有自增,有一个有参构造方法,三个构造方法

执行语句

增删改:executeUpdate()

查:executeQuery()

三层架构

表示层view:为用户提供交互操作页面

业务逻辑层services:关键业务处理和数据处理

(持久层)数据访问层 dao:从数据库获取数据

分包

entity:实体类

dao:

services:

impl:接口,implements

view:

util:公用类,很多要用

数据库连接池

连接对象都放在这里,要用就从这里拿,用完放回

c3p0-config.xml必须放在src下,而且名字不能变

一个事务要么全成功要么全失败

0%