jdbc笔记

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

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

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

资源描述

1.课程回顾mysql加强1)数据约束(表约束)默认值:default默认值非空:notnull唯一:unique主键:primarykey(非空+唯一)自增长:auto_increment外键:foreignkey约束两种表2)关联查询(多表查询)2.1交叉连接(产生笛卡尔积:原因:连接条件不足够)表数量-12.2内连接查询:innerjoin只有满足连接条件的数据才会显示!!!2.3左【外】连接查询:left[outer]join左表的数据必须全部显示,用左表去匹配右表的数据,如果右表有符号条件的数据则显示符合条件的数据;如果不符合条件,则显示null。2.4右【外】连接查询:right[outer]join右表的数据必须全部显示,用右表去匹配左表的数据,如果左表有符号条件的数据则显示符合条件的数据;如果不符合条件,则显示null。2.5自连接查询3)存储过程--创建存储过程语法delimeter结束符号createprocedure名称(IN/OUT/INOUT参数名称参数类型)begin带逻辑的sql语句end结束符号--调用存储过程CALL存储过程名称(实际参数);今天的目标:jdbc基础2jdbc入门2.1之前操作数据1)通过mysql的客户端工具,登录数据库服务器(mysql-uroot-p密码)2)编写sql语句3)发送sql语句到数据库服务器执行2.2什么是jdbc?使用java代码(程序)发送sql语句的技术,就是jdbc技术!!!!2.3使用jdbc发送sql前提登录数据库服务器(连接数据库服务器)数据库的IP地址端口数据库用户名密码/***jdbc连接数据库*@authorAPPle**/publicclassDemo1{//连接数据库的URLprivateStringurl=jdbc:mysql://localhost:3306/day17;//jdbc协议:数据库子协议:主机:端口/连接的数据库//privateStringuser=root;//用户名privateStringpassword=root;//密码/***第一种方法*@throwsException*/@Testpublicvoidtest1()throwsException{//1.创建驱动程序类对象Driverdriver=newcom.mysql.jdbc.Driver();//新版本//Driverdriver=neworg.gjt.mm.mysql.Driver();//旧版本//设置用户名和密码Propertiesprops=newProperties();props.setProperty(user,user);props.setProperty(password,password);//2.连接数据库,返回连接对象Connectionconn=driver.connect(url,props);System.out.println(conn);}/***使用驱动管理器类连接数据库(注册了两次,没必要)*@throwsException*/@Testpublicvoidtest2()throwsException{Driverdriver=newcom.mysql.jdbc.Driver();//Driverdriver2=newcom.oracle.jdbc.Driver();//1.注册驱动程序(可以注册多个驱动程序)DriverManager.registerDriver(driver);//DriverManager.registerDriver(driver2);//2.连接到具体的数据库Connectionconn=DriverManager.getConnection(url,user,password);System.out.println(conn);}/***(推荐使用这种方式连接数据库)*推荐使用加载驱动程序类来注册驱动程序*@throwsException*/@Testpublicvoidtest3()throwsException{//Driverdriver=newcom.mysql.jdbc.Driver();//通过得到字节码对象的方式加载静态代码块,从而注册驱动程序Class.forName(com.mysql.jdbc.Driver);//Driverdriver2=newcom.oracle.jdbc.Driver();//1.注册驱动程序(可以注册多个驱动程序)//DriverManager.registerDriver(driver);//DriverManager.registerDriver(driver2);//2.连接到具体的数据库Connectionconn=DriverManager.getConnection(url,user,password);System.out.println(conn);}}2.4JDBC接口核心的APIjava.sql.*和javax.sql.*|-Driver接口:表示java驱动程序接口。所有的具体的数据库厂商要来实现此接口。|-connect(url,properties):连接数据库的方法。url:连接数据库的URLURL语法:jdbc协议:数据库子协议://主机:端口/数据库user:数据库的用户名password:数据库用户密码|-DriverManager类:驱动管理器类,用于管理所有注册的驱动程序|-registerDriver(driver):注册驱动类对象|-ConnectiongetConnection(url,user,password);获取连接对象|-Connection接口:表示java程序和数据库的连接对象。|-StatementcreateStatement():创建Statement对象|-PreparedStatementprepareStatement(Stringsql)创建PreparedStatement对象|-CallableStatementprepareCall(Stringsql)创建CallableStatement对象|-Statement接口:用于执行静态的sql语句|-intexecuteUpdate(Stringsql):执行静态的更新sql语句(DDL,DML)|-ResultSetexecuteQuery(Stringsql):执行的静态的查询sql语句(DQL)|-PreparedStatement接口:用于执行预编译sql语句|-intexecuteUpdate():执行预编译的更新sql语句(DDL,DML)|-ResultSetexecuteQuery():执行预编译的查询sql语句(DQL)|-CallableStatement接口:用于执行存储过程的sql语句(callxxx)|-ResultSetexecuteQuery():调用存储过程的方法|-ResultSet接口:用于封装查询出来的数据|-booleannext():将光标移动到下一行|-getXX():获取列的值3使用Statement执行sql语句3.1执行DDL语句/***执行DDL语句(创建表)*/@Testpublicvoidtest1(){Statementstmt=null;Connectionconn=null;try{//1.驱动注册程序Class.forName(com.mysql.jdbc.Driver);//2.获取连接对象conn=DriverManager.getConnection(url,user,password);//3.创建Statementstmt=conn.createStatement();//4.准备sqlStringsql=CREATETABLEstudent(idINTPRIMARYKEYAUTO_INCREMENT,NAMEVARCHAR(20),genderVARCHAR(2));//5.发送sql语句,执行sql语句,得到返回结果intcount=stmt.executeUpdate(sql);//6.输出System.out.println(影响了+count+行!);}catch(Exceptione){e.printStackTrace();thrownewRuntimeException(e);}finally{//7.关闭连接(顺序:后打开的先关闭)if(stmt!=null)try{stmt.close();}catch(SQLExceptione){e.printStackTrace();thrownewRuntimeException(e);}if(conn!=null)try{conn.close();}catch(SQLExceptione){e.printStackTrace();thrownewRuntimeException(e);}}}3.2执行DML语句/***使用Statement执行DML语句*@authorAPPle**/publicclassDemo2{privateStringurl=jdbc:mysql://localhost:3306/day17;privateStringuser=root;privateStringpassword=root;/***增加*/@TestpublicvoidtestInsert(){Connectionconn=null;Statementstmt=null;try{//通过工具类获取连接对象conn=JdbcUtil.getConnection();//3.创建Statement对象stmt=conn.createStatement();//4.sql语句Stringsql=INSERTINTOstudent(NAME,gender)VALUES('李四','女');//5.执行sqlintcount=stmt.executeUpdate(sql);System.out.println(影响了+count+行);}catch(Exceptione){e.printStackTrace();thrownewRuntimeException(e);}finally{//关闭资源/*if(stmt!=null)try{stmt.close();}catch(SQLExceptione){e.printStackTrace();thrownewRuntimeException(e);}if(conn!=null)try{conn.close();}catch(SQLExceptione){e.printStackTrace();thrownewRuntimeException(e);}*/JdbcUtil.close(conn,stmt);}}/***修改*/@TestpublicvoidtestUpdate(){Connectionconn=null;Statementstmt=null;//模拟用户输入Stringname=陈六;intid=3;try{/*//1.注册驱动Class.forName(com.mysql.jdbc.Driver);//2.获取连接对象conn=DriverManager.getConnection(url,user,password);*///通过工具类获取连接对象conn=JdbcUtil.getConnection();//3.创建Statement对象stmt=conn.createStatement();//4.sql语句Stringsql=UPDATEstudentSETNAME='+name+'WHEREid=+id+;System.out.println(sql);//5.执行sqlintcount=stmt.executeUpdate(sql);System.out.println(影响了+count+行

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

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

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

×
保存成功