博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计科1501韩猛实验8
阅读量:5890 次
发布时间:2019-06-19

本文共 5041 字,大约阅读时间需要 16 分钟。

(一)学习总结

1.用思维导图对本周的学习内容进行总结。

1080029-20170518162515619-522998003.png

2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。 JDBC中Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。 Statement(接口) | PreparedStatement(接口) | CallableStatement(接口) Statement:(用于执行不带参数的简单 SQL 语句) 每次执行sql语句,数据库都要执行sql语句的编译,最好用于仅执行一次查询并返回结果的情形,效率高于PreparedStatement. 例: String sql = "select seq_orderdetid.nextval as orderidfrom dual"; Statement stat1=conn.createStatement(); ResultSet rs1 = stat1.executeQuery(sql); if ( rs1.next() ) { id = rs1.getLong(1);}PreparedStatement:(用于执行带或不带 IN 参数的预编译SQL 语句)执行的SQL语句中是可以带参数的,并支持批量执行SQL。由于采用Cache机制,则预先编译的语句,就会放在Cache中,下次执行相同SQL语句时,则可以直接从Cache中取出来。例:  PreparedStatement pstmt  = con.prepareStatement("UPDATE EMPLOYEES  SET SALARY = ? WHERE ID =?");for(int i =0;i
data = new ArrayList
();//初始数据 static{data.add(new (3)当然要添加管理员访问类,从而对初 始化后的程序进行获取,添加,删除等操作import java.util.ArrayList;import data.DataBase; import keke.Pet;/** * 管理员数据访问类 */ public class AdminDao {//获取所有数据public ArrayList
queryAllData(){return DataBase.data;}//添加数据public void addPet(Pet pet){DataBase.data.add(pet);}//删除数据 public void delPet(String delNo){for(int i = 0; i < DataBase.data.size();i++){ Pet thisPet = DataBase.data.get(i); if(thisPet.getNo().equalsIgnoreCase(delNo)){ DataBase.data.remove(i); }}} } (4)定义初始化的数据 package keke; public class Pet { private String No; private String Name; private String Number; private String Age; private Double Cost; public Pet() { } public String toString(){ return "宠物的编号为:"+this.No+"宠物的名称为:"+this.Name+"宠物的年龄为:"+this.Age+"宠物的数量为:"+this.Number+"宠物的价格为:"+this.Cost;}} (5)定义服务类,对界面中添加 删除 修改等应用进行写算法定义public class AdminService {private AdminDao adminDao = new AdminDao();//查询服务public ArrayList
queryPet(){//调用Dao层的方法获取所有数据ArrayList
data = adminDao.queryAllData();return data; } //添加服务 public boolean addPet(String no,String name,String age,String number,String cost){ ArrayList
data = queryPet(); Iterator
iterator = data.iterator(); while(iterator.hasNext()){ Pet pet = iterator.next(); //如果存在重复编号则添加不成功 if(pet.getNo().equals(no)){ return false; } }Pet thisPet = new Pet(no,name,age,number,Double.parseDouble(cost));adminDao.addPet(thisPet); //添加成功return true; } //修改服务 public boolean updatePet(String no,String name,String age,String number,String cost){ ArrayList
data = queryPet();for(int i = 0; i < data.size();i++){ Pet pet = data.get(i); if(pet.getNo().equals(no)){ adminDao.delPet(no); Pet thisPet = new Pet(no,name,age,number,Double.parseDouble(cost)); adminDao.addPet(thisPet); return true; } }return false;} //删除服务 public boolean delPet(String no){ ArrayList
data = queryPet(); for(int i = 0; i < data.size();i++){ Pet pet = data.get(i); if(pet.getNo().equals(no)){ adminDao.delPet(no); return true; } }return false;}}(6)书写test类 ,构造所需方法 public AdminDialog(Frame owner,boolean modal){super(owner,modal);this.init(); //初始化this.addComponent(); //添加组件this.addListener(); //添加监听器queryPet(); //创建对象时显示数据 }添加监听器,当需要调用应用包的时候会自动调用运行声明 import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import service.AdminService; import tools.GUITools; import keke.Pet; (7)数据库连接应用 * 获取连接对象 */public static Connection getConnection(int connection_type)throws Exception{ switch (connection_type) { case CONNECTION_SQL: return getConnectionSQL(); case CONNECTION_MYSQL: return getConnectionMYSQL(); } return null;}/* * 连接SQLSERVER数据库 */ private static Connection getConnectionSQL() throws Exception{ Connection conn=null; final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; final String DBURL = "jdbc:sqlserver://localhost:1433;databaseName=宠物商店"; final String DBUSER = "wangyikai"; final String DBPASS = "wwwyyykkk"; try { Class.forName(DBDRIVER); conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS); } catch(Exception e) { e.printStackTrace(); throw e; } return conn;}/* * 连接MYSQL数据库 */private static Connection getConnectionMYSQL() throws Exception{ final String DBDRIVER = "com.mysql.jdbc.Driver"; final String DBURL = "jdbc:mysql://localhost:3306/宠物商店"; final String DBUSER = "wangyikai"; final String DBPASS = "wwwyyykkk"; Connection conn=null; try { Class.forName(DBDRIVER); conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS); } catch(Exception e) { e.printStackTrace(); throw e; } return conn;}/** * 关闭连接对象 */public static void close(Connection conn) throws Exception{ if(conn!=null) { try { conn.close(); } catch(SQLException e) { e.printStackTrace(); throw e; } 3.码云托管

1080029-20170518162603447-24790609.png

地址:git@git.oschina.net:qq2546914025/jike1501hanmengshiyan8.git

转载于:https://www.cnblogs.com/hm2546914025-/p/6874059.html

你可能感兴趣的文章
Power Designer 备忘
查看>>
招商银行年度科技投入65亿元占总营收2.78%,各大银行科技投入争先全速跑
查看>>
专访卢政:TSF如何助力企业微服务开发
查看>>
元数据驱动设计——连接设计与开发的敏捷桥梁
查看>>
从蚂蚁金服实践入手,带你深入了解 Service Mesh
查看>>
MongoDB数据库泄露8亿电邮地址;微软开源Windows计算器;Linux 5.0 Kernel发布丨Q新闻...
查看>>
Gitter:高颜值GitHub小程序客户端诞生记
查看>>
Payara基金会发布全面支持MicroProfile 2.0的5.183版Payara Server和Payara Micro
查看>>
AWS开源Firecracker,一种运行多租户容器服务的新虚拟化技术
查看>>
搞容器,必须考虑这五大安全要素
查看>>
深入JVM彻底剖析ygc越来越慢的原因(上)
查看>>
More than React(二)组件对复用性有害?
查看>>
Fetch API
查看>>
严肃科普:12306能扛得住明星并发出轨级的流量吗?
查看>>
iOS程序员学习android之一
查看>>
vue.js 高德地图
查看>>
live555编译
查看>>
【译】测试驱动开发:使用 Node.js 和 MongoDB 构建 Todo API
查看>>
【腾讯Bugly干货分享】移动App入侵与逆向破解技术-iOS篇
查看>>
Node_Express
查看>>