JBCD技术

定义

官方定义:JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

  可以理解为:JDBC技术就是用来解决java程序与数据库之间的连接问题。

连接步骤

java 连接数据库的步骤 :

  1、需要获取数据库厂商提供的驱动文件 (不同的数据库厂商会提供各自的数据库驱动包)

  2、数据库是否可以启动

  3、把驱动文件导入到项目中

  4、加载驱动文件中的类到内存中

  5、创建Connection对象(java.sql包中的一个接口),作用:连接数据库,建立管道

    需要提供创建连接项的基本信息,如:数据库的ip地址,端口号,库名,用户名,密码

  6、创建预编译对象 PreparedStatement 包 ;根据连接项对象进行创建的

  7、创建结果集对象 ResultSet 包 ;通过next();命令控制指针指向下一条

  8、对数据库中 表中的数据实现 :增删改查 ;

  9、数据持久化

    将数据库中获取到的数据,存到java的对象中,当多次需要该数据时,不需要重复访问数据库,

    只要访问该对象,就可以获取数据;

  10、通过配置文件获取连接项 ,实现增删改查

    1、什么是配置文件

    2、在项目中怎么创建配置文件

    3、怎么给配置文件添加数据

    4、在java程序中 连接配置文件

    5、创建连接项方法

      1、获取配置文件里的信息

      2、拼接成连接数据库的信息

      3、获取驱动类

      4、判断数据库类型

      5、创建连接项

    6、创建关闭方法(提供要关闭对象的形参)

      1、通过传递进来的对象,根据判断进行关闭

  11、测试 :创建连接项(通过DBUtils.getConnection)

总结

连接步骤:

  1、获取并导入数据库连接的驱动文件

  2、加载驱动类(Class.forName("包名.类名"))

  3、创建connection的对象(驱动类来创建的)

  4、创建数据库的操作对象:A) Statement

                B) PreparedStatement

                C) CallableStatement

          Statement优点:可以建库建表,但是不允许使用Statement对表做增删改查

                缺点:1、有sql注入问题 2、不能够插入特殊类型的数据3、速度比较慢

        数据库中存储二进制文件的格式是:mysql  -- longblob

                        Oracle  -- BLOB

                   大文本      mysql  --  longText

                        Oracle  --  CLOB

          PreparedStatement优点:1、预编译速度快 2、能够插入特殊类型的数据 3、屏蔽了部分的sql注入问题

          CallableStatement 存储过程相当于数据库中的方法,而大多的金融类公司都会把主要的算法和业务逻辑封装到数据库中,安全并且易修改。

 1 public class DBUtils {
 2 
 3     private static Properties p = new Properties();
 4     static{
 5         try {
 6             p.load(DBUtils.class.getResourceAsStream("init.properties"));
 7         } catch (IOException e) {
 8             System.out.println("获取配置文件失败");
 9         }
10     }
11     public static Connection getConnection(){
12         Connection conn = null;
13         String ip = p.getProperty("ip").toLowerCase().trim();
14         String port = p.getProperty("port").toLowerCase().trim();
15         String dbname = p.getProperty("dbname").toLowerCase().trim();
16         String dbtype = p.getProperty("dbtype").toLowerCase().trim();
17         String username = p.getProperty("username").toLowerCase().trim();
18         String password = p.getProperty("password").toLowerCase().trim();
19         if(dbtype.equals("oracle")){
20             try {
21                 Class.forName("oracle.jdbc.driver.OracleDriver");
22             } catch (ClassNotFoundException e) {
23                 System.out.println("加载驱动包失败");
24             }
25             String str = "jdbc:oracle:thin:@"+ip+":"+port+":"+dbname;
26             try {
27                 conn = DriverManager.getConnection(str,username,password);
28             } catch (SQLException e) {
29                 System.out.println("连接数据库失败");
30             }
31         }
32         return conn;
33     }
34     public static void close(Connection conn,PreparedStatement pst,ResultSet rs){
35         if(conn != null){
36             try {
37                 conn.close();
38             } catch (SQLException e) {
39                 e.printStackTrace();
40             }
41         }
42         if(pst != null){
43             try {
44                 pst.close();
45             } catch (SQLException e) {
46                 e.printStackTrace();
47             }
48         }
49         if(rs != null){
50             try {
51                 rs.close();
52             } catch (SQLException e) {
53                 e.printStackTrace();
54             }
55         }
56     }
57 }
View Code

 

posted @ 2016-08-25 14:35  奔跑的咖啡豆  阅读(601)  评论(1编辑  收藏  举报