JDBC-数据库数据类型、批处理-12-30-2014=

一、基本知识

1、数据库数据类型:

A、DTAE、TIME、TIMESTAMP:date(日期),time(时间),timestamp(年月日时分秒)

date 表示年月日,如YY-MM-DD
datetime 表示年月日和时间信息,如YY-MM-DD HH:MM:SS
datestamp 和datetime表示的信息相同,但时间范围不同
时间范围
date -- > '1000-01-01' to '9999-12-31'.
datetime --> '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.
datestamp -- > '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC

B、CLOB->text clob 数据库类型:数字类型、字符类型、日期类型

clob:大数据。数据库规范中定义的(字符类型大数据)。 对文章(全是字符)进行保存

mysql中用text表示clob。

存:ps.SetString(Index.String)

ps.SetCharacterStream(i)

取:

C、BLOB类型:blob 数据库规范的(字节型大数据:如图片、视屏等)
对于图片的操作:数据流(6666)


2、数据库批处理:

a、excuteBatch:两个步骤:

先增加批处理到”容器“中:addbatch,然后在执行执行批处理

b、当批处理有很多条时(不同的数据库有不同的区别),以下两种可能的错误:内存泄露,数据库连接被用光。

3、dao层设计:直接操作数据库。代码优化会对数据库性能有影响

4、底层的知识:对后面的学习影响很大

明年开年就出去找工作的了,今年好好努力吧。不要再拖延了


二、作业

员工管理系统:控制台图形没有优化

1、数据库操作:

package StuffInformationManageSystem_2;

import java.sql.*;
import java.util.Scanner;

public class JdbcOperation {
//	jdbc—连接数据库:注册驱动->链接数据库
	static String url = "jdbc:mysql://localhost:3306/StuffInformation";
	static String user = "root";
	static String password = "root";
	
	static{
	//只有在方法中才能“点”出方法,java虚拟机是最高调用。其余只能方法调用方法
		try {
			Class.forName("com.mysql.jdbc.Driver");//注册驱动
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
//	利用静态代码块的特性使得注册驱动只执行一次,在具体操作是在连接数据库。
	}
	
	public static void add() throws SQLException {
		Scanner sc_1 = new Scanner(System.in);
		int Num = sc_1.nextInt();
		Scanner sc_2 = new Scanner(System.in);
		String sName = sc_2.nextLine();
		Scanner sc_3 = new Scanner(System.in);
		String sGender = sc_3.nextLine();
		Scanner sc_4 = new Scanner(System.in);
		int Age = sc_4.nextInt();
		Scanner sc_5 = new Scanner(System.in);
		int Salary = sc_5.nextInt();
		
		Connection conn = DriverManager.getConnection(url, user, password);//连接数据库
		Statement st = conn.createStatement();//定义一个statement对象
		st.executeUpdate("insert into Stuff(Num,sName,sGender,Age,Salary) values("+Num+",'"+sName+"','"+sGender+"',"+Age+","+Salary+")");
//		关于java中如何向数据库中插入变量:两种方法 上面一种:字符串变量要加数据库中的格式单引号 还有一种利用预编译

	}
	
	public static void delete() throws SQLException {
		Scanner sc_1 = new Scanner(System.in);
		int Num = sc_1.nextInt();
		
		Connection conn = DriverManager.getConnection(url, user, password);
		Statement st = conn.createStatement();
		st.executeUpdate("delete from Stuff where Num=Num");
	}
	
	public static void modify() throws SQLException {
		Scanner sc_1 = new Scanner(System.in);
		int num = sc_1.nextInt();
		Scanner sc_2 = new Scanner(System.in);
		int Num = sc_2.nextInt();
		Scanner sc_3 = new Scanner(System.in);
		String sName = sc_3.nextLine();
		Scanner sc_4 = new Scanner(System.in);
		String sGender = sc_4.nextLine();
		Scanner sc_5 = new Scanner(System.in);
		int Age = sc_5.nextInt();
		Scanner sc_6 = new Scanner(System.in);
		int Salary = sc_6.nextInt();
		
		
		Connection conn = DriverManager.getConnection(url, user, password);
		Statement st = conn.createStatement();
		st.executeUpdate("update Stuff set Num="+Num+",sName='"+sName+"',sGender='"+sGender+"',Age="+Age+",Salary="+Salary+" where Num="+num+"");
		
	}
	
	public static void select() throws SQLException {
		ResultSet rs=null;//定义结果集变量
		
		Connection conn = DriverManager.getConnection(url, user, password);
		Statement st = conn.createStatement();
		rs =st.executeQuery("select * from Stuff");
		//注意每一个如同上面语句的区别:数据只有两个操作,查询、更新
		
		while(rs.next()){//遍历结果集
			System.out.println(rs.getObject(1)+"-"+rs.getString(2)+"-"+rs.getString(3)+"-"+rs.getString(4)+"-"+rs.getString(5));
			//上面是对与字符串变量进行连接
		}
	}
}
2、控制台基本界面:

package StuffInformationManageSystem_2;

import java.sql.SQLException;
import java.util.Scanner;

public class Interface {
	public static void show() throws SQLException{
		System.out.println("员工信息管理系统");
		System.out.println("请输入1增加员工信息");
		System.out.println("请输入2删除员工信息");
		System.out.println("请输入3修改员工信息");
		System.out.println("请输入4显示所有员工信息");
		System.out.println("请输入5退出系统");
		System.out.println("请输入你所需要操作的数字(1-5):");
		
		Scanner sc = new Scanner(System.in);//创建一个Scanner对象(实例)用于保存系统输入的内容
		int num;

		do{
			num = sc.nextInt();
			
			switch(num){
			case 1:
				JdbcOperation.add();
				break;
			case 2:
				JdbcOperation.delete();
				break;
			case 3:
				JdbcOperation.modify();
				break;
			case 4:
				JdbcOperation.select();
				break;
			case 5:
				System.exit(0);
				break;
			default:
				System.out.println("输入错误,请重新输入");
			}
			
			System.out.println("员工信息管理系统");
			System.out.println("请输入1增加员工信息");
			System.out.println("请输入2删除员工信息");
			System.out.println("请输入3修改员工信息");
			System.out.println("请输入4显示所有员工信息");
			System.out.println("请输入5退出系统");
			System.out.println("请输入你所需要操作的数字(1-5):");
		}while(num <= 5 || num >= 1);
	}
}
3、测试类:
package StuffInformationManageSystem_2;

import java.sql.SQLException;

public class Main {

	public static void main(String[] args) throws SQLException {
		Interface.show();
	}
}

你可能感兴趣的:(JDBC-数据库数据类型、批处理-12-30-2014=)