数据库工具类

DataBaseUtil.properties ##choose which database datatype=mysql ##oracle oracleDriver=oracle.jdbc.driver.OracleDriver oracleUrl=jdbc:oracle:thin:@127.0.0.1:1521:xe oracleUser=scott oraclePassword=tiger ##mysql mysqlDriver=com.mysql.jdbc.Driver mysqlUrl=jdbc:mysql://127.0.0.1:3306/bjsxt20151014 mysqlUser=root mysqlPassword=123456 DBUtils.java import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Method; 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; import java.util.Properties; public class DBUtils { //获取数据库配置信息 private static Properties properties = new Properties(); //定义JDBC需要的参数 private static String datatype = null; private static String driver = null; private static String url = null; private static String user = null; private static String password = null; static { //可以保证只加载一次,而且调用的时候肯定已经加载完成 try { //加载配置文件 properties....

June 2, 2018 · 3 min · sunbufu

Collection(容器)

0、容器 特点: 存储各种各样的数据,以对象为单位; 大小容量没有限制; 存储元素最后变成object类型(统称为object类型)。 1、容器接口 Collection :集合 Set :元素无序不重复。 SortedSet :有序set,可按大小自动排序,但仍然不重复。 List :元素有序可重复。 Map :(key-value)键值对,统称为元素。key是唯一的,值可以重复。且所有元素是无序的。 SortedMap :有序Map,所有元素按照key的大小排序,元素不重复。 2、常用实现类 数据结构 :逻辑关系,物理关系 3、接口及其实现类特点 1)Set接口 1、Set接口的特性与其实现类是什么? 元素无序; 元素不重复;当添加重复的元素时,它会采用屏蔽技术屏蔽掉。 它的常用实现类: HashSet. 2、HashSet实现类的特性? 元素无序; 元素不重复;当添加重复的元素时,它会采用屏蔽技术屏蔽掉。 个性: 判断元素相等依赖 equals()方法, 但,同时,它还依赖 hashCode()方法。 注意: 在Java语言中,规定 任何一个对象均有一个哈希编码,该编码是一个int型的整数,由系统自动生成。规则 相等的对象拥有相同的哈希编码值。 自定义类如果使用HashSet必须重写equals()和HashCode()方法。 2)SortedSet 接口 1、SortedSet接口的特性及其实现类: 元素自动排序(按大小); 元素不重复; 当添加重复的元素时会采用屏蔽技术屏蔽掉。 它的常用实现类: TreeSet . 2、TreeSet实现类的特性: 元素自动排序(按大小); 元素不重复; 当添加重复的元素时会采用屏蔽技术屏蔽掉。 个性: 判断元素相等依赖equals(),但它实质上依赖 compareTo()方法。...

June 1, 2018 · 2 min · sunbufu

Java IO流

一、流(Stream) 1、流(Stream)的定义 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。 流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。 可以将流想象成一个“水流管道”,水流就在这管道中形成了,自然就出现了方向的概念。 2、流的特点 1) 方向性 2) 连续性 3) 单位性 3、IO流的分类 从方向性分:输入流(Input Stream)和输出流(Output Stream) 从单位性分:字节流(8为二进制(bit))和字符流 从功能分(从是否有数据源):节点流和处理流 4、在Java中,所有的流均来自于java.io包四个抽象类 1)抽象的字节输入流类:InputStream 2)抽象的字节输出流类:OutputStream 3)抽象的字符输入流类:Reader 4)抽象的字符输出流类:Writer 二、四个基本抽象类 使用步骤: 1)声明对象 2)创建对象 3)使用(输入输出) 4)刷新(flush()输出的时候) 5)关闭 1、抽象的字节输入流类(InputStream)及其文件操作实现类(FileInputStream) 1)以字节方式来读取数据 2)提供的常用方法: int read();//用来读取一个字节,反馈这个字节对应的整数[0, 255]。当返回-1是,表示读取结束 void close();//关闭字节输入流,释放所占资源,确保数据安全 2、抽象的字节输出流类(OutputStream)及其文件操作实现类(FileOutputStream) 1) 将给定的数据以字节方式输出到文件中; 2) 它提供的常用方法: void write( int x );// 将给定的整数以字节方式输出。因此,当给定的整数超出了[ 0, 255 ]时,则会失真。 void flush();// 将缓冲区中的数据一次性输出到目的地。确保数据输出成功。 void close();// 关闭字节输出流,释放所占资源,确保数据安全。 注意:必须使用flush()方法。 Windows文件中输出换行使用/r/n,即回车换行。(回车指:将光标回到该行的首部。换行指:将光标移到下一行。) 3、字符输入流类(Reader)及其文件操作实现类(FileReader) 1)它以字符的方式来读取数据。 2)他提供的方法: int read();// 它以字符方式来读取数据,并反馈这个数据的int型值。因此,其范围是[ 0, 65535 ];当反馈一个-1时,则结束。 void close();// 关闭字符输入流。 4、字符输出流类(Writer)及其文件操作实现类(FileWriter) 1) 将给定的数据以字符方式输出。 2) 它提供的常用方法: void write( int x );// 将给定的整数以字符方式输出,数据在[ 0, 65535 ]范围中。 void flush();// 将缓冲区中的数据一次性输出,确保输出成功。 void close();// 关闭输出流,释放所在占资源,确保安全。 5、字节流和字符流的区别: 1) 字节流可以处理任意类型的文件。 2) 字符流只能用来处理文本文件。 三、四个缓冲流类(属于处理流) 作用:用来提高输入和输出的效率...

June 1, 2018 · 2 min · sunbufu

JDBC

一、什么是JDBC Java提出的一套用来连接数据库的标准(接口)。起到一种桥梁的作用。 1、JDBC的常用类 Java使用jdbc编程,必须使用:来自java.sql.*;的类和接口 java.sql.Driver;//所有数据库的驱动均实现该接口 java.sql.DriverManage;//驱动管理类 java.sql.Connection;//连接的接口 java.sql.statment;//会话的接口 java.sql.,Result;//结果集的接口 二、JDBC的使用步骤 1、加载驱动 Class.forName("包名", "类名"); 2、获得链接 **url(同一资源定位器):**协议名://主机名:端口号:资源名 DriverManager.getConnection("url", username, password); 3、创建会话 1)Statement Statement stm = con.createStatement(); 2)PreparedStatement(预编译的Statement) 可以预防SQL注入。 PreparedStatement pstmt = con.prepareStatement(sql);//需要预先编译的sql语句 4、执行SQL,获取结果集 1)executeQuery(String sql) 执行SELECT语句,它返回的是查询后得到记录集(resultset)。 2)executeUpdate(String sql) 执行UPDATE,INSERT,DELETE语句,它返回的是语句执行后说影响到的记录条数(int)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的DDL语句,executeUpdate 的返回值总为零。 ResultSet rs = stm.executeQuery(sql); 3)execute(String sql) 执行任何sql语句,也就是前两者之一。返回值是第一个结果的表现形式。当第一个执行结果是查询语句时,返回true,可以通过getResultSet方法获取结果;当第一个执行结果是更新语句或DDL语句时,返回false,可以通过getUpdateCount方法获取更新的记录数量。 4)executeBatch 批处理操作,在处理大量相同操作时可以明显提高效率。 con.setAutoCommit(false); // 关闭自动执行 stmt.addBatch("INSERT INTO employees VALUES (1000, 'Joe Jones')"); stmt.addBatch("INSERT INTO departments VALUES (260, 'Shoe')"); stmt....

June 1, 2018 · 2 min · sunbufu