1.每一个实体BEAN具有属性,数据库的每一行就是一个对象。jdbc就是完成bean和数据库对象的转化,磁盘和内存的转换。



2.JDBC,全称是 java database connection 。是java连接数据库的一套标准。该标准提供了大量接口,这些接口由厂商根据自身数据库的特点各自做实现,由用户进行接口方法调用。用户根据接口调用厂商做的实现类,可以品比不同数据库的差异,无论连接什么数据库,都是一套api.



3.DAO = data access object  一种架构模式,建立实体类和数据库表的映射。也就是哪个类对应哪个表。哪个属性对应哪个列,所以完成数据库操作的本质就是完成对象数据和关系数据的转换。




1.新建工程JDBC,导入jar包,然后建立一个实体bean的包,专门放所有的实体bean。实体bean的属性产生的对象可以接收所有的表格内容


2.给bean加入属性,来映射数据库里的所有列,get,set tostring  ,有参构造方法(构造方法要去掉数据库中的id,因为不是属性,只是一个自动增长列),再重载一个无参构造方法。


3.新建接口,I开始 Dao结束,给接口定义几个方法,增删改查


4.新建一个实现类,实现 接口,并添加未实现方法,重写方法。




  异常类型: you have an error 就是sql语句有问题


5.实现类添加了接口的方法之后,就要开始对每个方法进行重写,重写的内容就是,建立连接,内容读写,关闭连接。


5.1 比如add方法里面:


     1.加载驱动    Class.forname(复制限定名),并捕捉异常,记得修改异常为爸爸类exception


     2.在方法里,try外定义   connection cn=null  的cn来接收drivermanager。getconnection返回的连接,preparedstatement ps来接收con。preparedstatement  返回的预存对数据库里面固定添加语句,(insert into 表名+(列名) +values(?,?,?,?));



  • ,Statement 和PreparedStament的区别
  •  Statement是PreparedStament的父类,采用Stament执行sql语句,由于sql语句的值一般由用户提供,所以只能采用拼接字符串的方式设置,这样随着值的不同,系统会多做几次sql语句的编译操作,所以效率低,而且容易引起sql注入(既输入的值可能有特殊符号,sql关键字等,造成错误执行)。
  •   preparedstatement 提供占位符机制,将要设置值的地方都用占位符表示,这样无论什么值都是一个sql语句。不会进行多次编译操作,效率高。而且无论值是什么,都会做字符串处理,不会引起sql注入。
  • sql注入,采用拼接字符串方式,拼sql语句是,如果值中有sql的关键字或特殊符号,可能导致运行结果不正确,或sql语法错误。,这就称为sql注入,解决sql注入的方法,采用preparedstatement代替statement


     3.预存的数据库的加入方法确定后,就可以对 ?  进行 java的关联,就使用   ps.setint ,setString ,setDATE来实现  Bean 和数据库列的转化


     4.列内容写入之后,就可以保存数据   ps.executeupdate.


     5.关闭连接。