韩顺平循序渐进学java从入门到精通课件笔记第六十四讲到六十六讲

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

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

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

资源描述

Java程序操作sqlseverCrud介绍增加查询更新删除的首字母简写JdbcJava访问sqlserver有两种种方法1直接访问(通过的通道时tcp/it协议)2通过odbc访问(通过的通道是SharedMemory).Jdbc驱动分类1.Jdbc-odbc桥连接2.本地协议纯java驱动程序3.网络协议纯java驱动程序4.本地spi主要用1,2两种Jdbc有不足,后来产生了HIbernastc案例1,使用Jdbc-odbc桥连接方式来连接数据库.第一步:配置数据源控制面板管理工具ODBC数据源管理添加SqlServer取名字服务器:local或.(小点)或者列到局域网的服务器选择登陆数据库方式sah123选择连接数据库名称默认下一步测试成功确定第二步:在程序中去连接数据源/***从数据库里读取数据.*/packagecom.test2;importjava.util.Vector;importjavax.swing.*;importjavax.swing.*;importjavax.swing.*;importjava.sql.*;publicclassTest2extendsJFrame{//rowData用来存放行数据//columnNames存放列名VectorrowData,columnNames;JTablejt=null;JScrollPanejsp=null;//定义操作数据库需要的东西PreparedStatementps=null;Connectionct=null;ResultSetrs=null;publicstaticvoidmain(String[]args){Test2t=newTest2();}publicTest2(){columnNames=newVector();//设置列名columnNames.add(学号);columnNames.add(名字);columnNames.add(性别);columnNames.add(年龄);columnNames.add(籍贯);columnNames.add(系别);//rowData可以存放多行rowData=newVector();try{//加载驱动Class.forName(com.mocrosoft.jdbc.sqlserver.SQLServerDriver);//得到连接ct=DriverManager.getConnection(jdbc:microsoft:sqlserver://127.0.0.1:1433:databaseName=spdb1,sa,h123);ps=ct.prepareStatement(select*fromstu);rs=ps.executeQuery();while(rs.next()){Vectorhang=newVector();hang.add(rs.getString(1));hang.add(rs.getString(2));hang.add(rs.getString(3));hang.add(rs.getInt(4));hang.add(rs.getString(5));hang.add(rs.getString(6));//加入到rowDatarowData.add(hang);}}catch(Exceptione){e.printStackTrace();}finally{if(rs!=null)rs.close();if(ps!=null)ps.close();if(ct!=null)ct.close();}//初始化JTablejt=newJTable(rowData,columnNames);//初始化jspjsp=newJScrollPane(jt);//吧jsp放进到JFramethis.add(jsp);this.setSize(500,500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}}第六十五讲:Statement与preparedstatement的区别:{效率高;安全高,现在就不用Statement了}都可以吧sql语句从java程序中送到指定数据库中,并执行sql语句,但是也有区别:1,直接使用statement.驱动程序一般不会对sql语句做处理而是直接交给了数据库,但是preparedstatement形成预编译(形成二进制再传给数据库)过程并对语句做字符串转换.2,两个好处:1对于多次重复的执行语句使用preparedstatement效率更高一些,在这种情况下也适合使用Batch,另外比较好的解决本地化问题.2可以有效地防止危险字符的注入,也是sql注入的问题./***演示PreparedStatement使用crud*1,PreparedStatement可以提高执行效率,因为由于编译*2,PreparedStatement可以防止sql注入,但是要用?赋值的方式才可以*/packagecom.test1;importjava.sql.*;publicclassTest2{publicstaticvoidmain(String[]args){//定义需要的对象PreparedStatementps=null;Connectionct=null;//ResultSetrs=null;try{//1加载驱动Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);//得到连接ct=DriverManager.getConnection(jdbc:odbc:mytest,sa,h123);////3.创建ps,执行的时候可以给?执行//ps=ct.prepareStatement(select*fromstudentwherestuid=?);////给?复制//ps.setString(1,sp001);//rs=ps.executeQuery();//while(rs.next())//{//System.out.print(rs.getString(1)+);//System.out.print(rs.getString(2)+);//System.out.print(rs.getString(3)+);//System.out.print(rs.getInt(4)+);//System.out.print(rs.getString(5)+);//System.out.print(rs.getString(6)+);//System.out.println();//}//使用prepareStatement演示添加的功能ps=ct.prepareStatement(insertintostudentvalues(?,?,?,?,?,?));ps.setString(1,sp008);ps.setString(2,弼马温);ps.setString(3,男);ps.setInt(4,12);ps.setString(5,天上);ps.setString(6,天上);inti=ps.executeUpdate();if(i==1){System.out.print(添加成功);}else{System.out.print(添加失败);}}catch(Exceptione){e.printStackTrace();}finally{try{//rs.close();ps.close();ct.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}}第六十六讲:驱动:就是一堆接口.原本是jdbc-ODBC后来发展为jdbc.再后来发展为orm技术的hibernate本讲主要讲解jdbc技术./***jdbc方式去操作数据库*1,把包引进java.sql.*;*2,需要引入三个jar包*3,如果通过jdbc来连接是通过tcp/ip来连接的.所以要把tcp/ip服务打开,并且端口不能动待分配(默认1433),然后重启服务就可以了.*/packagecom.test2;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;publicclassTest3{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//定义必要的对象Connectionct=null;PreparedStatementps=null;ResultSetrs=null;try{//加载驱动Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);//得到连接ct=DriverManager.getConnection(jdbc:sqlserver://127.0.0.1:1433;databaseName=spdb1,sa,h123);//ps=ct.prepareStatement(select*fromstudent);////如果是查询使用executeQuery,如果是增加删除修改用executeUpdate()//rs=ps.executeQuery();//while(rs.next())//{//System.out.print(rs.getString(1)+);//System.out.print(rs.getString(2)+);//System.out.print(rs.getString(3)+);//System.out.print(rs.getInt(4)+);//System.out.print(rs.getString(5)+);//System.out.print(rs.getString(6)+);//System.out.println();//}//添加删除修改ps=ct.prepareStatement(insertintostudentvalues(?,?,?,?,?,?));ps.setString(1,sp010);ps.setString(2,郝丰澧);ps.setString(3,男);ps.setInt(4,22);ps.setString(5,山东);ps.setString(6,北京);inti=ps.executeUpdate();if(i==1){System.out.print(添加成功ok);}else{System.out.print(添加失败);}}catch(Exceptione){e.printStackTrace();}finally{//关闭资源try{rs.close();ps.close();ct.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}}Java操作sqlsever数据库表在java中来控制数据库(表)的创建,删除备份恢复工作./***在java中如何使用DDL语句(createdropbackup)*/packagecom.test3;importjava.sql.*;publicclassTest2{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//定义操作数据库需要的东西PreparedStateme

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

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

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

×
保存成功