day12_赵倍勇

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JDBC(java数据库连接)初步了解JDBC他就是用java语言来操作数据库使用java向数据库发送SQL语句并得到返回结果的语句JDBC的原理由sun公司提供一个各大数据库公司都遵守的接口,各个数据库中是怎么进行操作的,各个数据库他们自身最清楚,(面向对象的思想),由各个数据来实现他们对自身的操作(产生对应的jar包),不同的数据库他们的实现不同,产生的jar包不同,对不同的数据库操作,我们就要导入不同的jar包任何数据库驱动类都实现了Driver接口Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);他等效于我们调用DriverManager类中的publicstaticvoidregisterDriver(Driverdriver)方法他是用于注册驱动程序forName方法的作用就是加载一个类,加载一个类的时候就会执行他的静态代码块。。。他会在静态代码块中注册驱动这样我就不用自己注册了,直接加载驱动类就行了jdbc4.0之后,每个驱动jar包中,在META-INF/services目录下提供了一个名为java.sql.Driver的文件。不过为了通用性,我们依然还是书写加载驱动代码怎么实现让java与数据库连接1.导入jar包驱动!2.Class.forName(“类名”);(高版本的jdbc不需要,他已经帮我们自动生成,但是为了健壮性我们还是要写起)3.给出url、username、password,其中url背下来4.使用DriverManager类来得到Connection对象1.导入jar包有两种方法导入jar包:第一种:是先把jar包放在项目的目录下,通过添加jar包,是使用相对地址的,这样把项目复制到其它电脑也可以用(建议使用第一种方法)1.右击你的JavaProject工程-----新建一个lib文件夹----将下载好的包粘贴2.右键lib文件(配置路径)---构建路径---配置构建路径---选择里面的lib--addjar--应用(将他图标变成类似奶瓶的那种)(也可以直接右键---构建路径-----添加至构建路径)第二种:方法是导入外部的jar包,是绝对地址,如果项目要复制到其它电脑又要重新导入连接代码测试packagemyjdbc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjavax.management.RuntimeErrorException;/***jdbc的四大配置参数(以我的sqlserver为例)*加载驱动*driverClassName:com.microsoft.sqlserver.jdbc.SQLServerDriver**(这里不同的数据库不同)*url:jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mydb;*(这里的mydb是我们需要连接的数据库)**username:sa**password:123456**/publicclassMyJdbc{publicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{//1.加载驱动try{Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);}catch(Exceptione){//TODO:handleexceptionthrownewRuntimeException(没有成功加载类);}//System.out.println(aClass);Stringurl=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student;Stringusername=sa;Stringpassword=123456;Connectioncon=DriverManager.getConnection(url,username,password);//将他们整合为一句System.out.println(con);con.close();}/***出现java.lang.ClassNotFoundException异常**驱动包没有正确的导入**sqljdbc4.jar不需要我们自己手动导入驱动程序**sqljdbc4.jarClass.forName导入驱动反而报错???*锁定结果,导入语句写错了*/}常用的java连接数据库的参数#mysql#url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&useServerPrepStmts=true&cachePrepStmts=true&prepStmtCacheSize=50&prepStmtCacheSqlLimit=300#driverClassName=com.mysql.jdbc.Driver#mssql(可以适用于sqlserver2008)#driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver#url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=mydb#mssqljtds#driverClassName=net.sourceforge.jtds.jdbc.Driver#url=jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=mydb#orcale#driverClassName=oracle.jdbc.driver.OracleDriver#url=jdbc:oracle:thin:@localhost:1521:mydb#access#driverClassName=sun.jdbc.odbc.JdbcOdbcDriver#url=jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=mdb\\mydb.mdb操作数据库的基本操作/***对于数据库的基本操作**1.准备四大参数连接数据库**2.对数据库进行增、删、改操作**3.对数据库进行执行查询操作**/packagemyjdbc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassSqlBase{publicstaticvoidmain(String[]args)throwsSQLException,ClassNotFoundException{//1.连接数据库-----四大参数StringdriverName=com.microsoft.sqlserver.jdbc.SQLServerDriver;Class.forName(driverName);/***这个链接(类似于网站)*jdbc协议的格式!(类似于http)jdbc:厂商的名称(数据库的类型):子协议(由工商自己来规定)*127.0.0.1:1433;DatabaseName=student主机:端口号/数据库名称**/Stringurl=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student;Stringusername=sa;Stringpassword=123456;Connectioncon=DriverManager.getConnection(url,username,password);//对数据库进行基本操作/***步骤:*1.通过Connection对象创建Statement:(方法:StatementcreateStatement())*(他是语句发送器,用来向数据库发送sql语句)**2.调用它的intexecuteUpdate(Stringsql)来发送操作数据库的语句*注意:*a.他不能向数据库发送查询语句*b.他的返回值是int型,这是因为这个语句通常只能操作记录,所以他返回的是受影响的记录数**/java.sql.Statementstat=con.createStatement();//增Stringsql=insertintostudent_Messagevalues('2014051607030','赵打');//改//Stringsql=updatestudent_Messagesetstudent_Name='zhaoda'whereId='2014051607030';//删//Stringsql=deletefromstudent_MessagewhereId='2014051607030';//亲测上面的各种已经成功inta=stat.executeUpdate(sql);System.out.println(a);//对数据表进行查询/***步骤:*一、得到Connection对象*二、得到Statement,发送select语句*通过ResultSetexecuteQuery(Stringsql)方法返回一个结果集*(ResultSet:结果集就是一个表格)*三、对查询返回的“表格”进行解析*/Statementquery=con.createStatement();StringqueryStr=select*fromstudent_Message;ResultSetresultSet=query.executeQuery(queryStr);//解析ResultSet表格/***1.通过ResultSet对象的next()方法来控制行光标*2.用ResultSet对象的get类型方法来控制列光标**getString()和getObject()是通用的!*/while(resultSet.next()){StringId=resultSet.getString(1);//通过列编号来获取该列的值!Stringstudent_Name=resultSet.getString(student_Name);//通过列名称来获取该列的值System.out.println(Id+,+student_Name);//这才是常用格式//System.out.println(rs.getObject(1)+,+rs.getString(ename)+,+rs.getDouble(sal));}//关闭资源stat.close();resultSet.close();query.close();con.close();}}代码的规划化形式publicvoidquery(){Connectioncon=null;Statementstmt=null;ResultSetrs=null;try{con=DriverManager.getConnection(url,username,password);stmt=con.createStatement();Stringsql=select*fromuser;rs=stmt.executeQuery(sql);while(rs.next()){Stringusername=rs.getString(1);Stringpassword=rs.getString(2);System.out.println(username+,+password);}}catch(Exceptione){thrownewRuntimeExcept

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功