Java基础(十三)-----JDBC中的增删改查

JDBC中的CRUD与SQL的关系

     JDBC对数据库的增删改查是JDBC技术的基础,是以后学习 事务,批处理,可更新结果等技术的奠基石。使用JDBC与数据库进行连接的根本目的就是操作数据,然而对数据的操作就是增,删,改,查,简称“CRUD”。对数据库的增删改查的基础是SQL技术,利用java程序将sql语句送至数据库,让数据库管理系统对语句进行解析,然后返回相应的结果。

数据库的结构

      则部分毋庸多言,数据库中的数据是以二维表的形式存在的,如图所示:

Java基础(十三)-----JDBC中的增删改查

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();
		}

	}
	//没有使用预编译语句
	public	static 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;
	}

}











Java基础(十三)-----JDBC中的增删改查

上一篇:fiddler 连接手机 抓包


下一篇:android 打包任务在gradle中