JDBC简介+增删改查

1、概念
Java DataBase Connectivity:java数据库连接技术,简称JDBC.
它是使用java语言编写的一套API.为多种关系型数据库提供了统一接口。
同时,也是一个“低级”接口,在其之上可以使用“高级”接口,更方便的连接 数据库。
2、目的
为了给程序员提供同一种方式连接不同的数据库
(提供一个与任何数据库的java连接界面)
3、原理
JDBC负责提供接口
数据库厂商使用自己数据库的特点来实现接口。
程序员调用接口,实际上底层调用数据库厂商实现的部门实际工作过程
mysql数据库:
(1)加载驱动,建立连接
Class.forName(“com.mysql.jdbc.Driver”);
(2)获取连接
Connection conn = DriverManager.getConnection(url,user,password);
url:jdbc:mysql://localhost:3306/crx655? useUnicode=true&characterEncoding=utf8
user:root
password:root
oracle数据库:
(1)加载驱动,建立连接
Class.forName(“oracle.jdbc.driver.OracleDriver”);
(2)获取连接
Connection conn = DriverManager.getConnection(url,user,password);
url:“jdbc:oracle:thin:@localhost:1521:orcl”;
user:“scott”;
password:“tiger”;
(3)获取Sql语句执行对象
Statement st = conn.createStatement();
(4)执行SQl语句
st.execute(sql); //执行DDL语句
st.executeUpdate(sql); //执行DML语句
st.executeQuery(sql); //执行DQL语句
(5)处理结果集
(6)关闭连接
4、接口与类型
(1)驱动管理类型:DriverManager
常用方法: static Connection getConnection(url,user,password)
作用: 通过地址,数据库用户名,用户密码 获取连接对象
(2)连接接口:Connection
常用方法:Statement createStatement()
作用:获取一个SQL语句编译对象
(3)SQL语句对象接口:
Statement: 用于编译静态SQL语句(编译多次)。
boolean execute(String sql):
执行DDL语句,返回false
执行DML语句,返回false
执行DQL语句,返回true
ResultSet executeQuery(String sql):
用于执行DQL语言
int executeUpdate(String sql):
用于执行DML语言,返回值表示该条sql影响的行数
通过JDBC向数据库中创建一张表User
注:因为在jdbc连接数据库时,需要用到第三方jar包中的类和接口,所以我们要引入第三方jar包

  • 1)将mysql驱动包加入到工程中
  •  a)在工程src上右键新建一个folder,命名随意(lib)
    
  •  b)将mysql-connector-java-5.1.7-bin.jar文件拷贝到lib文件夹中
    
  •  c)在mysql驱动包上右键选择
    
  •    build-path --> Add to build path
    
  • (在本文最后会附上jar包链接)
  • 2)使用该驱动中给我们提供的类和接口完成JDBC对数据库的操作
    在这里插入图片描述
    向User表中插入一条数据
    在这里插入图片描述
    注:向数据库中插入中文时,会出现乱码的问题
  • 如何解决?
  • 1)让数据库支持中文
  • 2)在使用JDBC连接数据库时,url部分要加上字符集的设置
  •  Connection conn = DriverManager.getConnection(
    
  •  	"jdbc:mysql://localhost:3306/test","",""
    
  •  )
    
  • jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
  • @author WIN
    通过JDBC向数据库中查找数据
    在这里插入图片描述
    通过JDBC向数据库中删除数据
    改sql语句
    String sql = “delete from user where uid=1”;
    int rows = st.executeUpdate(sql);
    综合练习:
    编写一个程序,控制台输入用户名密码,如果在数据库中存在则显示登录成功,否则登录失败!
    在这里插入图片描述
    注:Statement这个接口有漏洞,容易被攻击
    使用它进行执行sql语句时,sql语句的结构可以被修改
    reg:select * from emp where ename=‘smith’
    可能被修改成
    select * from emp where ename=‘smith’ or ‘a’=‘a’
    由原来的where子句中有一个条件变成了两个条件,结构发生变化。
    修改上面的控制台输入的内容:
    请输入用户名:
    aaa
    请输入密码:
    bbb’ or ‘a’='a
    登录成功

猜你喜欢

转载自blog.csdn.net/weixin_40645193/article/details/107709462