Java基础(十三)-----JDBC(二)
来源:互联网 发布:切图软件下载 编辑:程序博客网 时间:2024/05/04 14:05
JDBC中的CRUD与SQL的关系
JDBC对数据库的增删改查是JDBC技术的基础,是以后学习 事务,批处理,可更新结果等技术的奠基石。使用JDBC与数据库进行连接的根本目的就是操作数据,然而对数据的操作就是增,删,改,查,简称“CRUD”。对数据库的增删改查的基础是SQL技术,利用java程序将sql语句送至数据库,让数据库管理系统对语句进行解析,然后返回相应的结果。
数据库的结构
则部分毋庸多言,数据库中的数据是以二维表的形式存在的,如图所示:
SQL简介
SQL(结构化查询语言)分为DML(数据库操作语言)和DDL(数据库定义语言)。
DML包括以下四部分:
SELECT -----查询语句
INSERT INTO -----插入语句
DELETE -----删除语句
UPDATE -----更新语句
DDL包括以下部分:
CREATE DATABASE - 创建新数据库
ALTER DATABASE- 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
数据库的增删改查
INSERT INTO语句
安装mysql数据库,使用数据库客户端创建一个Persons的数据库,在该数据库中创建一个Person的数据表。用来存放数据。在Person中插如几行数据。代码示例:
package com.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Statement;import com.mysql.jdbc.Driver;public class Test2 {/** * 用两种方法插入数据 */public static void main(String[] args) {try{insertTest_2();}catch(SQLException e){e.printStackTrace();}}//没有使用预编译语句publicstatic void insertTest_1() throws SQLException{//1,注册驱动DriverManager.registerDriver(new com.mysql.jdbc.Driver());//2,获得链接Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/Persons", "root", "root");//3,创建语句Statement stmt=conn.createStatement();String sql="insert into Person values (1,'Adams','John','Oxford Street','London')";//4,执行语句int n=stmt.executeUpdate(sql);if(n>0){System.out.println("插入成功");}else{System.out.println("插入失败");}conn.close();stmt.close();}//使用预编译语句:可以有效的提高效率,放置sql注入。public static void insertTest_2() throws SQLException{Connection conn =getConnection();String sql ="insert into Person values (?,?,?,?,?)";PreparedStatement stmt=conn.prepareStatement(sql);stmt.setInt(1, 4);stmt.setString(2, "Wang"); stmt.setString(3, "Wu"); stmt.setString(4, "Yushang Road"); stmt.setString(5, "Shanghai"); int n=stmt.executeUpdate();if(n>0){System.out.println("插入成功");}else{System.out.println("插入失败");}}//在做第二个方法的时候,将获取Connection的代码提取出来public static Connection getConnection() {Connection conn=null;try{DriverManager.registerDriver(new com.mysql.jdbc.Driver());conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/Persons","root","root");}catch(SQLException e){e.printStackTrace();}return conn;}}
在开发中一般使用预编译语句,以提高效率。
SELECT语句
首先创建一个Persons的数据库。代码示例
package com.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;/* * 获取数据库中的名字 * */public class Test1 {public static void main(String[] args) {test();}static void test(){ //1,注册驱动try {DriverManager.registerDriver(new com.mysql.jdbc.Driver());//2,建立连接Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/Persons","root","root");//3,创建语句Statement stmt = conn.createStatement();//4,执行查询ResultSet rs = stmt.executeQuery("select LastName from Person");//5,处理结果while(rs.next()){System.out.println(rs.getString("LastName"));}} catch (Exception e) {e.printStackTrace();}}}
DELETE 语句
代码示例:
package com.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Test4 {/** * 删除掉所有城市是上海的记录 */public static void main(String[] args) throws SQLException {Connection conn=getConn();Statement stmt=conn.createStatement();int n=stmt.executeUpdate("delete from Person where City='Shanghai' ");if(n>0){System.out.println("共有"+n+"条数据被删除");}}public static Connection getConn(){Connection conn=null;try{DriverManager.registerDriver(new com.mysql.jdbc.Driver());conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/Persons", "root", "root");}catch(SQLException e){e.printStackTrace();}return conn;}}
UPDATE语句:
package com.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Test5 {/** * 更改某一列的值 */public static void main(String[] args) throws SQLException{//1,注册驱动DriverManager.registerDriver(new com.mysql.jdbc.Driver());//2,获得链接Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/Persons","root","root");//获得语句Statement stmt=conn.createStatement();//String sql="update Person set FirstName='David' where FirstName='John'";//执行语句int n=stmt.executeUpdate(sql);if(n>0){System.out.println("修改成功");}else{System.out.println("修改失败");}conn.close();stmt.close();}}
DELETE语句:
package com.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class Test4 {/** * 删除掉所有城市是上海的记录 */public static void main(String[] args) throws SQLException {Connection conn=getConn();Statement stmt=conn.createStatement();int n=stmt.executeUpdate("delete from Person where City='London' ");if(n>0){System.out.println("共有"+n+"条数据被删除");}conn.close();stmt.close();}public static Connection getConn(){Connection conn=null;try{DriverManager.registerDriver(new com.mysql.jdbc.Driver());conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/Persons", "root", "root");}catch(SQLException e){e.printStackTrace();}return conn;}}
1 0
- Java基础(十三)-----JDBC(二)
- JAVA基础必备(十三)——反射(二)
- java基础整理二十三(网络编程)
- JDBC基础(二)
- JDBC基础(二)
- swipe的基础使用(二十三)
- Swift基础(二十三)UIImageView
- JSP基础(十三)——编写JDBC程序
- JAVA基础学习(二十三)--GUI基础
- java学习笔记(二十三)数据结构
- java基础整理十三(String)
- 黑马程序员---JAVA基础---IO(十三)
- JAVA基础笔记(十三)IO
- 黑马程序员-----java基础二十三(交通灯管理方案代码实现)
- Java基础之(二十三)闭包与回调
- JAVA基础复习二十三-多线程
- 东软实训(二十三)
- 日拱一卒(二十三)
- POJ1470 Closest Common Ancestors LCA
- 九度OJ 1082: 代理服务器
- A+B for Input-Output Practice (VI)
- LeetCode 题解(8):Pasical's Triangle
- Linux网络编程必看书籍
- Java基础(十三)-----JDBC(二)
- wet34tw3trqww3444wefqwfwe
- 关于A + B Problem II的总结
- Android Graphic : apk and Skia/OpenGL|ES
- 编程入门教程
- python中fork()函数生成子进程分析
- IOCTL助手 V1.1
- VC/C/C++ 代码1
- 玩Linux,Or被Linux玩?