教案昨天我们学习了下最常用基本的SQL语句但是实际开发中_第1页
教案昨天我们学习了下最常用基本的SQL语句但是实际开发中_第2页
教案昨天我们学习了下最常用基本的SQL语句但是实际开发中_第3页
教案昨天我们学习了下最常用基本的SQL语句但是实际开发中_第4页
教案昨天我们学习了下最常用基本的SQL语句但是实际开发中_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java基础之jar包:DBUtils。一个一个来学,接下来我们先来看第一块的内容(PPT)时长:50分钟处理昨天的作业(15分钟02JDBC&DBUtils(Java操作数据库需求分析).avi03JDBC&DBUtils(JDBC概念).avi时长:02开场:AA:aJAVAb:DBUtils讲师:长度:0155秒录制时间:2016年总结与补无课堂提问与练无习题答无Java时长:03开场AJavaAJavaa:b:MySQL数据库将数据进行了管理,但是在MySQL数据库的学习过程当中Java代码。名称:02JDBC&DBUtils(Java操作数据库需求分析).avi讲师:长度:0207秒录制时间:2016年总结与补无课堂提问与练无习题答无JDBC概时长:04开场AAJDBC:JDBCJDBC03JDBC&DBUtils(JDBC概念).avi讲师:长度:0326秒录制时间:2016年总结与补无课堂提问与练无习题答无MYSQL时长:19开场A JDBCA JDBCaJDBCJavamysql的驱动程序(我们提供的版本为mysql-connector-java-通过 驱DriverManager获取连接对象Statementsql语句(select)b:mysql的驱动程序(我们提供的版本为mysql-connector-java-5.1.28-mysql-connector-java-5.1.28-bin.jar文件->BuildPath->Addto包的三步”是哪三步?(学员回答JDBC的实现步骤。手04JDBC&DBUtils(MYSQL数据库驱动程序).avi讲师:长度:1704秒录制时间:2016年总结与补JDBC的实现步骤,初学者第一次接触这么大的信息量,一时间不好吸收,课堂提问与练无习题答无时长:11开场 a:jarb:使用类java.sql.DriverManagerstaticvoidregisterDriver(Driverd)throws*Driver类的对象了,就是数据库驱动程序中的Driver*c:publicclassDemo_01JDBCpublicstaticvoidmain(String[]args)throwsSQLException//DriverManager//}}:JDBC7步,我们刚才实现了第一步,接下来,我们该做什么了?(学员回答JDBC的第二步操作:名称:05JDBC&DBUtils(数据库驱动).avi讲师:长度:0915秒录制时间:2016年总结与补课堂提问与练无习题答无时长:50分钟07JDBC&DBUtils(SQLStatement).avi08JDBC&DBUtils(ResultSet).avi时长:10开场*A:*A:*a:获取连接对象ConnectionDriverManagergetConnectionstaticConnectiongetConnection(Stringurl,Stringusername,Stringurl:,IPConnectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/gjp","root","123");}}*getConnection返回Connection*b:publicclassDemo_01JDBCpublicstaticvoidmain(String[]args)throwsSQLException//使用DriverManager类 //讲师:长度:0822秒录制时间:2016年总结与补JDBC课堂提问与练无习题答无SQL时长:11开场:**ASQL:ResultSetexecuteQuery(Stringsql)*intexecuteUpdate(Stringsql)*b:publicclassDemo_01JDBCpublicstaticvoidmain(String[]args)throwsSQLException Connectionconn//StatementSQLStringsql="SELECT*FROMgjp_ledgerResultSetresult=stat.executeQuery(sql);}}Statementstat=SQL语句的对象啊,如何来实现呢,接下来,我们一起来学习下。讲师:长度:1044秒录制时间:2016年总结与补课堂提问与练无习题答无时长:19开场*A:*A:获取数据库结果集对象*a:获取数据库结果集对象ResultSet*ResultSet接口的实现类对象,ResultSet接口表示的查询数据*booleannext()getgetXXX()XXX获取的数据库字段的数据类型getXXX(int)int参数,就是第几列getXXX(String)String参数,写列名*b:publicclassDemo_01JDBCpublicstaticvoidmain(String[]args)throwsSQLException Connectionconn//StatementSQLStatementstat=Stringsql="SELECT*FROMgjp_ledger}}}ResultSetresult=//ResultSet接口方法nextintlid=Stringparent=doublemoney=Datecreatetime=result.getDate("createtime");System.out.println(lid+""+parent+""+money+""+crea讲师:长度:1522秒录制时间:2016年总结与补JDBC课堂提问与练无习题答无JDBC时长:13开场*A*AJDBC*a:publicpublicclassDemo_02JDBCpublicstaticvoidmain(String[]args)throwsSQLException Connectionconn=//Statement对象,执行SQLStatementst=Stringupdate=new//Stringsql="UPDATEgjp_ledgersetwherelid=intresult=st.executeUpdate(sql);}}}名称:09JDBC&DBUtils(JDBC执行数据更新操作).avi讲师:长度:1141秒录制时间:2016年总结与补JDBC课堂提问与练无习题答无时长:60分钟11JDBC&DBUtils(SQL注入问题JDBC时长:09开场*A*AJDBC*aJDBC*JDBC(JavaDataBaseConnectivity,java数据库连接)SQLJava ,它由一组用Java语言编写的类和JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格今天我们使用的是mysql的驱动mysql-connector-java-5.1.28-*bJDBCc:JDBCsqldJDBCAPIjava体系结构中,jdbc *在java.sql.*包下有以 能JDBC如何来操作数据库,接下来,我们JDBC的一些相关知识点!名称:10JDBC&DBUtils(JDBC相关知识介绍).avi讲师:长度:0618录制时间:2016总结与补JDBC课堂提问与练无习题答无SQL注入问时长:12开场**A:SQL片问题(详见day22_source文件夹中的"SQL*a:*SQL语句如下*SELECT*FROMWHERENAME=:PASSWORD=用户输 *但是当用户输入的账号为XXX 为:XXX’OR1=1时SELECT*FROMWHERENAMEXXXANDPASSWORDXXX’OR1=1’; 登录成功了,显然我们不希望看到这样的结果,这便是SQL注入问题。b:*PreparedStatementc:sql*CREATETABLEusersidINT(11)PRIMARYKEYusernameVARCHAR(100),PASSWORDVARCHAR(100))INSERTINTOusers(username,PASSWORD)INSERTINTOusers(username,PASSWORD)SELECT*FROM SELECT*FROMusersWHEREusername='abc'ANDSELECT*FROMusersWHEREusername='abcabc'ANDPASSWORD=123123OR1=1;名称:11JDBC&DBUtils(SQL注入问题).avi讲师:长度:1138录制时间:2016总结与补再带着学员回顾下如何SQL注入问题课堂提问与练无习题答无SQL注入时长:12开场::**A:SQL*a:publicclassDemo_03JDBCpublicstaticvoidmain(String[]args)throwsSQLException //ConnectionConnectionconn=//Statement对象,执行SQLStatementst= Scannersc=newStringusername=sc.nextLine().trim();Stringpassword=sc.nextLine().trim();Stringsql="SELECT*FROMusersWHERE"ResultSetresultSet=}//SELECT*FROMusersWHEREusername='abc'andpassword='123'or'1=1'}}名称:12JDBC&DBUtils(登录问题引出SQL注入).avi讲师:长度:1100秒录制时间:2016年总结与补课堂提问与练无习题答无PreparedStatementSQL时长:15开场::aPreparedStatement(1):PreparedStatementPreparedStatementprepareStatement(Stringsql)throws注意“?”

voidsetInt(intparameterIndex,intx)throws 设置*voidsetString(intparameterIndex,Stringx)throwsSQLException设置字符串voidsetObject(intparameterIndex,Objectx)throws

第几个?1 *3)statementb:*解决SQL注 Connection连接对象,方法prepareStatement(StringsetXXX(int,XXX)XXXintpublicclassDemo_03JDBCpublicstaticvoidmain(String[]args)throwsSQLException //Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/gjp","root","123");连接对象方法//SQLStringsql="SELECT*FROMuserswhere//SELECT//SELECT*FROMusersWHEREusername='abc'andpassword='123'or'1=1'}}}System.out.println(resultSet.getString("username")+""ResultSetresultSet=pst.setString(1,Scannersc=newScanner(System.in);Stringusername=Stringpassword=PreparedStatementpstand要来解决它,哪,究竟如何解决SQL注入问题呢,需要用到Statement接口的子接口3.4.2名称:13JDBC&DBUtils(PreparedStatement接口SQL预编译).avi讲师:长度:1416秒录制时间:2016年.3总结与补3.4.4课堂提问与练无3.4.5习题答无时长:50分钟16JDBC&DBUtils(MyJDBCUtils工具类).avi17JDBC&DBUtils(DBUtils使用需求).avi反射方式数据库驱时长:14.1开场*A:反射方*A:反射方 *a:方**b:*采用反射的方式,数据库的驱动程**mysql驱动类中,Driver{new*class**使用类*forName(类名publicclassDemo_04JDBCpublicstaticvoidmain(String[]args)throwsException{Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/gjp","root","123");}}*c:getConnectionurlURLURLJDBC程序连接dURL例如: *如果我们连接的是本机并且 * *jdbcurl很重要的一个目的是为了让DriverManager知道我们要Oracle写法:jdbc:oracle:thin:@localhost:1521:sid引言示例:之前我们说了,我们用DriverManager.registerDriver()这种方法来驱动课讲师:课程长度:1258秒录制时间:2016年总结与补整理下反射驱动的思路课堂提问与练无习题答无时长:05开场课 AConnectiona:表示已经与数据库连接成功.DriverManagergetConnection方法b:StatementcreateStatement()throwsStatementSQLPreparedStatementprepareStatement(Stringsql)throwsPreparedStatementSQLCallableStatementprepareCall(Stringsql)throws创建一个CallableStatement对象来调用数据 BStatementa:StatementSQLb:ResultSetexecuteQuery(Stringsql)throwsResultSetintexecuteUpdate(Stringsql)throwssql语句,该语句可能为update,delete,insert,

booleanexecute(Stringsql)throwsC:*a:ResultSet对象表示数据库结果集的数据表,通常通过执行查询数据库的语b:*booleannext()throws将光标从当前位置向前移一行。ResultSet指针最初位于第一行之前;第一次调用next方法使第一行成为当前行;*ObjectgetObject(StringcolumnLabel)throwscolumnLabelObjectgetObject(intcolumnIndex)throws

intgetInt(intcolumnIndex)throwsintgetInt(StringcolumnLabel)throwsSQLExceptionDategetDate(intcolumnIndex)throwsSQLExceptionDategetDate(StringcolumnLabel)throwsSQLExceptionStringgetString(intcolumnIndex)throwsSQLExceptionStringgetString(StringcolumnLabel)throws课讲师:课程长度:0330秒录制时间:2016年总结与补课堂提问与练无习题答无MyJDBCUtils时长:10开场课 A:A:MyJDBCUtilsa:b:*staticpublicstaticConnectiongetConnection()throwsException{publicstaticConnectiongetConnection()throwsException{Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/gjp","root","123");return}} *c:publicclassMyJDBCUtilsMyJDBCUtils工具类。课课程名称:16JDBC&DBUtils(MyJDBCUtils工具类).avi讲师:课程长度:0842秒录制时间:2016年总结与补课堂提问与练无习题答无DBUtils时长:03开场课 **ADBUtils*a:**JavaJDBC对数据库开发,代码量很大,而且操作非常的繁琐,许多代码都是重复性的,为了简化JDBC的应用程序开发,使用*b:,DBUtilsJDBCDBUtils呢?接下来,我们一起来揭晓课课程名称:17JDBC&DBUtils(DBUtils使用需求).avi讲师:课程长度:0223秒录制时间:2016年总结与补课堂提问与练无习题答无QueryRunner时长:23开场课 **A:*a:DBUitlsApacheJDBC进行简单封装的开源工具类,DBUItils工具类对数据库进行开发,JDBC应用程序DBUtils操作的是数据库表数据,不会使用其进行表结构字段的设置,因为*b:基本使用(*导入DBUtilsJar(commons-*通过 驱*DriverManager获取连接对象*通过DBUtilsQueryRunnerConnectionSQL作*c:*DBUtils 2..QueryRunner()4QueryRunner类方法updateINSERTUPDATE*lid=3money998ldesc=}}}publicclassDemo_01DBUtilspublicstaticvoidmain(String[]args)throwsConnectionconn=MyJDBCUtils.getConnection();QueryRunnerqr=newStringsql="UPDATEgjp_ledgersetmoney=?,whereObjectparams998,"买钻石intresult=qr.update(conn,sql,params); update(Connectionconn,Stringsql,Object...句SQL**DBUtils了,接下来我们就来用用它,而我们之前SQLDBUtils来操作下更新语课课程名称:18JDBC&DBUtils(QueryRunner类实现增删改).avi讲师:课程长度:2051秒录制时间:2016年总结与补带学员整理下思路,别和上午讲的JDBC了课堂提问与练无习题答无时长:50分钟19JDBC&DBUtils(QueryRunnerArrayHandler).avi20JDBC&DBUtils(QueryRunnerArrayListHandler).avi21JDBC&DBUtils(QueryRunnerBeanHandler).avi22JDBC&DBUtils(QueryRunnerBeanListHandler).avi23JDBC&DBUtils(QueryRunnerMapHandler).avi时长:13开场*A:*A:*a:针对执行查询语句时,通过不同的ResultSetHandler子类可以在查询*b:* 将转成的多个对象数组存放到List中 List里。 Map中,key是列名,value是对应的值。 Map里,然后再将多个Map存放到List 进行单值查询,如:selectcount(*) Map(List<Map>)Map再存到一个MapkeyKeyedHandler指*BQueryRunner*a:*DBUtils******ResultSetHandlerResultSetHandlerQueryRunner数据库连接对 SQL句***query(Connectionconn,Stringsql,ResultSetHandler<T>,SQLSQLquery(Connectionconn,Stringsql,ResultSetHandler<T>rsh,ArrayHandlerResultSetHandlerpublicclassDemo_02DBUtilspublicstaticvoidmain(String[]args)throwsException{Connectionconn=MyJDBCUtils.getConnection();Stringsql="SELECT*FROMgjp_ledgerwherelid=?";//结果集处理方式,ArrayHandlerQueryRunnerqr=newObject[]objects=qr.query(conn,sql,for(Objectobj:objects){}}}课讲师:课程长度:1043秒录制时间:2015年总结与补课堂提问与练无习题答无时长:09开场课 *a:*将结果集中的每一行数据都转成一个对象数组,再将转成的多个对象数组存放到List中*b:*ArrayListHandler*数据每一行,封装成对象数组,多个数组封装到ListpublicclassDemo_03DBUtilspublicstaticvoidmain(String[]args)throwsException{Connectionconn=MyJDBCUtils.getConnection();Stringsql="SELECT*FROMgjp_ledger";QueryRunnerqr=newQueryRunner();方式for(Object[]for(Object[]objects:for(Objectobj:objects){System.out.print(obj+"");}}}}课20JDBC&DBUtils(QueryRunner讲师:课程长度:0614秒录制时间:2016年总结与补课堂提问与练无习题答无时长:11开场课 *a:**b:*(1):定义业务数据类Ledger(实体类,javaBean)publicclassLedger{privateintprivateStringparent;privatedoublemoney;privateintsid;privateStringaccount;privateStringcreatetime;privateStringldesc;}*BeanHandlerBeanHandler数据结果,封装成LedgerpublicclassDemo_04DBUtilspublicstaticvoidmain(String[]args)throwsException{Connectionconn=MyJDBCUtils.getConnection();Stringsql="SELECT*FROMgjp_ledger";QueryRunnerqr=newQueryRunner();LedgerLedgerlegder=qr.query(conn,sql,new}}Java中创建的对Java中的对象呢,接下来,我们一块儿来实现下。课21JDBC&DBUtils(QueryRunner讲师:课程长度:0925秒录制时间:2016年总结与补课堂提问与练无习题答无时长:05开场课 *a:*将结果集中的每一行数据都封装到一个对应的业务类实例中,再将多个业务类实例对象存放到List里。*b:*所哟的业务数据 到List集合publicclassDemo_05DBUtilspublicstaticvoidmain(String[]args)throwsException{Connectionconn=MyJDBCUtils.getConnection();Stringsql="SELECT*FROMgjp_ledger";//结果集处理方式,BeanListHandlerQueryRunnerqr=newList<Ledger>list=qr.query(conn,sql,newfor(Ledgerledger:list){}}}据封装成JavaBeanListHandler。来,一块儿来学习下。课22JDBC&DBUtils(QueryRunner讲师:课程长度:0327秒录制时间:2016年总结与补无课堂提问与练无习题答无时长:06开场课 a:*将结果集中的第一行数据封装到一个Map中,keyb:将数据结果集第一行,封装到一个Map集合中 publicclassDemo_06DBUtilspublicstaticvoidmain(String[]args)throwsException{Connectionconn=MyJDBCUtils.getConnection();Stringsql="SELECT*FROMgjp_ledger";QueryRunnerqr=new

Map<String,Object>map=qr.query(conn,for(Stringkey:map.keySet()){System.out.println(key+""+map.get(key));}}}课23JDBC&DBUtils(QueryRunner类获取查询结果集讲师:课程长度:0404秒录制时间:2016年总结与补课堂提问与练无习题答无时长:60分钟24JDBC&DBUtils(QueryRunnerMapListHandler).avi25JDBC&DBUtils(QueryRunnerColumnListHandler).avi26JDBC&DBUtils(QueryRunnerScalarHandler).avi时长:06开场AQueryRunnerAQueryRunnera:*Map里,然后再将多个存放到b:数据中的每一行封装成Map集合,多个Map集 到List集publicclassDemo_07DBUtilspublicstaticvoidmain(String[]args)throwsException{Connectionconn=Stringsql="SELECT*FROMMap集合,多个Map集 到List集QueryRunnerqr=new

List<Map<String,Object>>list=qr.query(conn,for(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论