Java Data Base Connectivity.ppt
《Java Data Base Connectivity.ppt》由会员分享,可在线阅读,更多相关《Java Data Base Connectivity.ppt(28页珍藏版)》请在三一办公上搜索。
1、北京传智播客教育,JDBC,讲师:李勇,北京传智播客教育,简介,JDBC(Java Data Base Connectivity,java数据库连接),由一些接口和类构成的API。J2SE的一部分,由java.sql,javax.sql包组成。,北京传智播客教育,简介,应用程序、JDBC API、数据库驱动及数据库之间的关系,北京传智播客教育,连接数据的步骤,注册驱动(只做一次)建立连接(Connection)创建执行SQL的语句(Statement)执行语句处理执行结果(ResultSet)释放资源快速起步示例,北京传智播客教育,注册驱动,Class.forName(“com.mysql.j
2、dbc.Driver”);推荐这种方式,不会对具体的驱动类产生依赖。DriverManager.registerDriver(com.mysql.jdbc.Driver);会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。System.setProperty(“jdbc.drivers”,“driver1:driver2”);虽然不会对具体的驱动类产生依赖;但注册不太方便,所以很少使用。驱动类型(四种类型),北京传智播客教育,建立连接(Connection),Connection conn=DriverManager.getConnection(url,user
3、,password);url格式:JDBC:子协议:子名称/主机名:端口/数据库名?属性名=属性值&User,password可以用“属性名=属性值”方式告诉数据库;其他参数如:useUnicode=true&characterEncoding=GBK。,北京传智播客教育,创建执行SQL的语句(Statement),Statement Statement st=conn.createStatement();st.executeQuery(sql);PreparedStatementString sql=“select*from table_name where col_name=?”;Prep
4、aredStatement ps=conn.preparedStatement(sql);ps.setString(1,“col_value”);ps.executeQuery();,北京传智播客教育,处理执行结果(ResultSet),ResultSet rs=statement.executeQuery(sql);While(rs.next()rs.getString(“col_name”);rs.getInt(“col_name”);/,北京传智播客教育,释放资源,释放ResultSet,Statement,Connection.数据库连接(Connection)是非常稀有的资源,用完后
5、必须马上释放,如果Connection不能及时正确的关闭将导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。,北京传智播客教育,基本的CRUD(创建、读取、更新、删除),模板代码 Connection conn=null;Statement st=null;ResultSet rs=null;try/获得Connection/创建Statement/处理查询结果ResultSet finally/释放资源ResultSet,Statement,Connection,北京传智播客教育,创建,增加对应SQL的INSERT,返回增加成功的行(记录)数 conn=getConne
6、ction();Statement st=conn.createStatement();String sql=“insert into user(name,age,regist_date)”+“values(name,10,now()”;int i=st.executeUpdate(sql);/i为插入的记录数,北京传智播客教育,读取,读取(查询)对应SQL的SELECT,返回查询结果conn=getConnection();st=conn.createStatement();String sql=select id,name,age,regist_date from user;rs=st.e
7、xecuteQuery(sql);while(rs.next()System.out.print(rs.getInt(id)+tt);System.out.print(rs.getString(name)+tt);System.out.print(rs.getInt(age)+tt);System.out.print(rs.getTimestamp(regist_date)+tt);System.out.println();,北京传智播客教育,更新,更新(修改)对应SQL的UPDATE,返回被修改的行(记录)数 conn=getConnection();Statement st=conn.cr
8、eateStatement();String sql=“update person set name=new name”;int i=st.executeUpdate(sql);/i为符合条件的记录数,北京传智播客教育,删除,删除对应SQL的DELETE,返回被删除的行(记录)数 conn=getConnection();Statement st=conn.createStatement();String sql=“delete from user where id=1”;int i=st.executeUpdate(sql);/i为删掉的记录数,北京传智播客教育,CRUD总结,增、删、改用S
9、tatement.executeUpdate来完成,返回整数(匹配的记录数),这类操作相对简单。查询用Statement.executeQuery来完成,返回的是ResultSet对象,ResultSet中包含了查询的结果;查询相对与增、删、改要复杂一些,因为有查询结果要处理。,北京传智播客教育,SQL注入,PreparedStatement和Statement,在SQL中包含特殊字符或SQL的关键字(如:or 1 or)时Statement将出现不可预料的结果(出现异常或查询的结果不正确),可用PreparedStatement来解决。PreperedStatement(从Statement
10、扩展而来)相对Statement的优点:1.没有SQL注入的问题。2.Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。3.数据库和驱动可以对PreperedStatement进行优化(只有在相关联的数据库连接没有关闭的情况下有效)。,北京传智播客教育,数据类型,详细信息见java.sql.Types几种特殊且比较常用的类型1.DATA,TIME,TIMESTAMP date,time,datetime存:ps.setDate(i,d);ps.setTime(i,t);ps.setTimestamp(i,ts);取:rs.getDate(i);rs.getTime(i);r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java Data Base Connectivity
链接地址:https://www.31ppt.com/p-2239461.html