【Java】-基础-数据库操作

SQL语言

SQL(Structure Query Language,结构化查询语言)被广泛地应用于大多数数据库中,使用SQL语言可以方便地查询、操作、定义和控制数据库中的数据。SQL语言主要由以下几部分组成:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)、事务控制语言(TCL)。在应用程序中使用最多的就是数据操纵语言,它也是最常用的核心SQL语言。下面对数据操纵语言进行简单的介绍。


1、select语句

select语句用于从数据表中检索数据

语法如下:

Select [所选字段列表] from [数据表名]
Where [条件表达式] group by [字段名]
Order by [字段名]
假设数据表名称是tb_emp,要检索出tb_emp表中所有女员工的姓名、年龄,并按年龄升序排序,代码如下:

select name,age from tb_emp where sex='女' order by age;


2、insert语句
insert 语句用于向表中插入新数据

语法如下:

insert into 表名[字段名1,字段名2...] values(属性1,属性2,...);

假设要向数据表tb_emp(包含字段id、name、sex、department)中插入数据,代码如图:

insert into tb_emp values(2,'lili','女','销售部');

3、update语句

update语句用于更新数据表中的某些记录

语法如下:

update [数据表名] set 字段名 = 新的字段值  where 条件表达式
假设要将数据表 tb_emp 中2号员工的年龄修改为24,代码如下:

update tb_emp set age=24 where id=2;

4、delete语句

delete 语句用于删除数据

语法如下:

delete from [数据表名] where 条件表达式
假设要删除数据表 tb_emp 中编号为1024的员工,代码如下:

delete from tb_emp where id=1024;

JDBC概述

JDBC是一种可用于执行SQL语句的Java API(Application Programming Interface,应用程序设计接口),是连接数据库和Java应用程序的纽带。

使用JDBC-ODBC桥连接数据库的步骤如下:

(1)首先加载JDBC-ODBC桥的驱动程序。代码如下:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

(2)使用java.sql包中的Connection 接口,并通过DriverManager类的静态方法 getConnection()创建连接对象。代码如下:

Connection conn = DriverManager.getConnection("jdbc:odbc:数据源名字","user name","password");

(3)向数据库发送SQL语句。使用Statement 接口声明一个SQL语句对象,并通过刚才创建的连接数据库对象conn的createStatement()方法创建这个SQL对象,代码如下:

Statement sql=conn.createStatement();

下面引入两个实例,从MyEclipse对数据库进行操作

1.查询数据库的信息,显示在控制台

/*
 * 第65讲 JDBC方式去操作数据库
 * 1.引入java.sql.*
 * 2.需要引入三个jar包
 * 3.特别说明,如果取值是按编号,则需要一一对应;如果是按照列名取的,则可以顺序灵活
 * */

package com.test2;

import java.sql.*;
public class Test3 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//PreparedStatement [火箭车]
		
		//定义需要的对象
		PreparedStatement ps=null;
		Connection ct=null;
		ResultSet rs=null;
		
		try{
			//初始化我们的各个对象
			//1.加载驱动
			Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
			//2.得到链接
			ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=LiangShanheros","sa","sa");
			//3。创建火箭车
			ps=ct.prepareStatement("select cusname,address,email from customer");
			//4.执行[如果是增加,删除,修改 executeUpdate(),如果是查询 executeQuery()]
			rs=ps.executeQuery();
			
			//循环的取出
			while(rs.next())
			{
				String name=rs.getString(1);
				String address=rs.getString(2);
				String email=rs.getString(3);
				System.out.println(name+" "+address+" "+email );
			}
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			
		}
		
	}

}

2.对数据库进行添加操作

/*
 * PreparedStatement 使用 CURD
 * 1.PreparedStatement 可以提高执行效率(因为它有预编译的功能)
 * 2.PreparedStatement 可以防止sql注入,但是要求用?赋值的方式才可以
 * */

package com.test1;
import java.sql.*;

public class Test2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//定义需要的对象
		PreparedStatement ps=null;
		ResultSet rs=null;
		Connection ct=null;
		
		try{
			//1.加载驱动
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			//2.得到链接
			ct=DriverManager.getConnection("jdbc:odbc:mytest","sa","sa");
			
			//3.创建ps
			ps=ct.prepareStatement("Select * from customer where customerId=? and address=?");
			
//			//给?赋值
//			ps.setInt(1, 1);
//			ps.setString(2, "深圳");
//			rs=ps.executeQuery();
			
			//使用PreparedStatement添加一条记录
			ps=ct.prepareStatement("insert into customer values(?,?,?,?,?,?)");
			ps.setInt(1, 8);
			ps.setString(2, "yjl");
			ps.setString(3, "广东");
			ps.setString(4, "[email protected]");
			ps.setString(5, "男");
			ps.setString(6, "1012270231");
			
			//执行
			int i=ps.executeUpdate();
			if(i==1)
			{
				System.out.println("添加OK");
			}else{
				System.out.println("添加不OK");
			}
			
			
//			while(rs.next())
//			{
//				System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
//			}
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			//关闭资源
			try {
				//关闭资源
				//关闭顺序是,谁后创建,则先关闭
				//为了程序健壮
				if(rs!=null)
				{
					rs.close();
				}
				
				if(ps!=null)
				{
					ps.close();
				}
				if(ct!=null)
				{
				ct.close();
				}
			} catch (Exception e2) {
				// TODO: handle exception
			}
		}
	}

}






你可能感兴趣的:(Java)