一:数据库概述,SQLite数据库。
  数据库(database)是按照数据结构来组织,存储、和管理数据的仓库,随着信息技术和市场的发展,数据库不再仅仅用来存储和管理数据,而是提供用户所需的各种数据管理方式。
  数据库的特点:
  数据结构化、数据的共享性高、冗余度低,易于扩展,数据的独立性高、数据由DBMS同意管理和控制。
  常见的关系型数据库管理系统:Oracle,DB2,SQLServer,MySQL等
  DBMS必须提供的数据控制功能:
  数据的安全性(保护)、数据的完整性(检查),并发性(多个用户同时访问)、数据库的回复功能。
  结构化查询语言,SQL:用于存取数据、查询、更新和管理关系型数据库
  SQLite数据库。轻型的关系型数据管理系统,设计目标是嵌入式环境,
  占用资源非常低,
  二:基本SQL语句。
  数据类型和约束:
  SQLite采用动态数据类型,可以对字段不指定任何数据类型,SQLite会根据存入值自动判断。
  数据类型:NULL空值、INTEGER带符号的整形,相当于Java中的Int型、REAL:浮点数字,相当于Java中的float/double型  TEXT/VARCHAR字符串文本,相当于Java中的String类,BLOB:二进制对象,相当于Java中的byte数组。
  约束:数据表存储数据,有一些数据由明显的约束条件,如老师年龄>20;
  CREATE TEBLE 创建时,应该将每个字段的约束条件进行说明,以后往表里天剑数据,系统会自动检查是否满足条件,不满足报错。
  约束语句,NOT NULL  非空
  UNIQUE            PRIMARY KEY  主键
  FORFIGN KEY 外键。   CHECK   条件检查    DEFAULT默认
  创建表:
  create table tablename(col1 type1[not null][primarykey],col2 type2…)
  create table tablename(表名)(col1(行名) type1(行数据的类型)[not null](限制语句)[primarykey],col2 type2…)
  Insert语句:
  insert into student (name,cid,gender,age,score)value(‘tom’,1,1,20,80.2);
  Update语句:
  update student set name=’jack’ where name=’tom’;
  Select语句:
  查询语句:select * from 表名;
  查询ID为1的信息,select * from student where id=1;
  *号代表要查询的信息,eg:
  select id,name,score from student;查询id,name ,score 的所有信息
  Delete语句:
  有条件的删除:
  delete from student where score<60;
  drop table 表名;删除表。
  两个表联查,不用外键。
  select * from student1 a,employee b where(a.[id]=b.[id]) and( a.name=’song’)
  三:JDBC API,Java程序访问数据库
  JDBC 概念:是用于执行SQL语句的API,可以为多种关系型数据库提供统一访问,由一组Java语言编写的类和接口。
  JDBC驱动的分4中类型:
  1、JDBC——ODBC桥
  把所有的JDBC的调用传递给ODBC,再让后者调用数据库文本驱动代码
  2、本地API驱动:
  通过客户端加载数据库厂商提供的本地代码库来访为数据库,而在驱动程序中包含了Java代码。
  3、网络协议驱动:
  给客户端提供一个网络API,客户端上的JDBC驱动程序使用套接字Socket来调用服务器上的中间件程序,后者将其请求转化为所需的具体API调用。
  4、本地协议:
  使用Socket,直接在客户端和数据库间通信。
  JDBC的三件事: 与数据库连接、发送操作数据库的SQL语句,返回结果,
  创建数据库的连接:
  Java程序中完成以下两个操作获得与数据库的connection连接对象:
  第一步:加载数据库驱动程序;
  Class.forName(“org.sqlite.JDBC”);
  第二部:建立连接:
  Connection conn = DriverManager.getConnection(“jdbc:sqlite:d:/stu.db”,”“,”“);
  参数说明;第一个为协议url,假定连接到D盘下的stu数据库;第二个为用户名,第三个为密码,
  发送操作数据库的SQL语句,
  JDBC提供了三个类用于向数据库发送SQL语句,
  connection接口中的三个方法可用于常见这些类的实例
  Statement:由Connection对象的createStatement方法创建Statement对象用于简单的SQL语句
  PreparedStatement:由prepareStatement方法创建PreparedStatement对象,用来发送带有输入参数的SQL语句。
  CallableStatement: 由prepareCall方法创建CallableStatement对象用于执行SQL存储过程。
  处理结果:
  完成向数据库发送操作语句后,数据库引擎执行完后返回一个结果,结果主要有两种形式:
  对于更新语句:完成后返回一个受操作影响的行数。
  对于查询语句: 返回查询结果集ResultSet
  1、ResultSet的next()方法下移结果集中记录指针并判断当前记录指针是否为空。、
  2、ResultSet中的getxxx()方法读取结果集中当前记录的字段信息。
  eg:
  package com.tian.sqlite;
  import java.sql.Connection;
  import java.sql.DriverManager;
  import java.sql.PreparedStatement;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.sql.Statement;
  import java.util.ArrayList;
  import java.util.List;
  public class SqliteDemo {
  public static void main(String[] args) {
  List list = fetchData();
  for(Employee e:list){
  System.out.println(e);
  }
  Employee employee = login("tian","1234");
  if(employee!=null){
  System.out.println("登录成功"+" 欢迎:"+employee.getName());
  }else{
  System.out.println("登录失败"+"   请重新登录。");
  }
  Employee employee1 = login("song","5678");
  if(employee1!=null){
  System.out.println("登录成功"+" 欢迎:"+employee1.getName());
  }else{
  System.out.println("登录失败"+"   请重新登录。");
  }
  }