一、基本知识
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(); } }