第十四周java课程学习总结
Posted lpf666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十四周java课程学习总结相关的知识,希望对你有一定的参考价值。
package NAME; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.WindowEvent; import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.JMenu; import javax.swing.JLabel; import javax.swing.JFrame; import javax.swing.JFileChooser; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; public class java { JFrame subgroup; MenuBar mb; Menu menu; JTextArea jta; MenuItem openItem, saveItem, closeItem; FileDialog openItem,saveItem; File file; public java() { init(); } public void init() { subgroup=new JFrame("lpf的记事本"); mb=new MenuBar(); mu=new Menu("文件"); openItem=new MenuItem("打开(o)"); saveItem=new MenuItem("保存(s)"); closeItem=new MenuItem("退出(u)"); jta=new JTextArea(); subgroup.add(jta); menu.add(openItem); menu.add(saveItem); menu.add(closeItem); mb.add(mu); subgroup.setMenuBar(mb); openDia=new FileDialog(subgroup, "打开", FileDialog.LOAD); saveDia=new FileDialog(subgroup, "保存", FileDialog.SAVE); subgroup.setBounds(200, 300, 500, 400); subgroup.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); subgroup.setVisible(true); event(); } public void event() { openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { openFile(); } }); saveItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { saveFile(); } }); jta.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e){ if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S) { saveFile(); } } }); closeItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); } public void openFile() { openDia.setVisible(true); if(dirPath==null || fileName==null) return ; jta.setText(""); file=new File(dirPath,fileName); try { BufferedReader br = new BufferedReader(new FileReader(file)); String line = null; while((line=br.readLine())!=null) { jta.append(line+" r"); } br.close(); } public void saveFile() { if(file==null) { saveDia.setVisible(true); String dirPath = saveDia.getDirectory(); String fileName = saveDia.getFile(); if(dirPath==null || fileName==null) return ; try { BufferedWriter bw=new BufferedWriter(new FileWriter(file)); String info=jta.getText(); bw.write(info); bw.flush(); bw.close(); } catch (IOException e1) { throw new RuntimeException(); } } public static void main(String[] args) { new java(); } }
JDBC
JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。
执行流程
1 连接数据源,如:数据库。
2 为数据库传递查询和更新指令。
3 处理数据库响应并返回的结果。
常见的类与接口
DriverManager类:用于注册驱动(创建连接对象)。 java.sql.DriverManager;
Connection接口:表示与数据库创建的连接 。java.sql.Connection;
Statement接口:操作数据库sql语句的对象,并返回相应结果的对象。 java.sql.Statement;
ResultSet接口:结果集或一张虚拟表(客户端存表数据的对象)。 java.sql.ResultSet;
开发步骤
1 . 加载驱动(搭建环境):
I. 将Oracle驱动Jar包复制到项目中的自建lib文件夹下。
II. ojdbc6.jar 右键 –> build path –> add to build path。
I. 将Oracle驱动Jar包复制到项目中的自建lib文件夹下。
II. ojdbc6.jar 右键 –> build path –> add to build path。
2 . 连接数据库(OracleXE):
I. 通过DriverManager.getConnection(url,user,password)获取数据库连接对象(Connection),提供三个实参:
1). URL:jdbc:oracle:thin:@localhost:1521:xe //Uniform Resource Locator 统一资源定位符 协议、IP、端口号、实例名(SID)
2). UserName:hr
3). Password
I. 通过DriverManager.getConnection(url,user,password)获取数据库连接对象(Connection),提供三个实参:
1). URL:jdbc:oracle:thin:@localhost:1521:xe //Uniform Resource Locator 统一资源定位符 协议、IP、端口号、实例名(SID)
2). UserName:hr
3). Password
3 . 获得发送SQL的工具:
I. 通过Connection对象获取Statement工具。
II. 通过Connection对象获取PreparedStatement工具,并且传入预编译SQL
I. 通过Connection对象获取Statement工具。
II. 通过Connection对象获取PreparedStatement工具,并且传入预编译SQL
4 . 发送SQL语句到数据库执行:
I. DML语句:statement.executeUpdate(sql); //受影响行数 int
II. DQL语句:statement.executeQuery(sql); //结果集 ResultSet
III PreparedStatement发送SQL,无需传入SQL
I. DML语句:statement.executeUpdate(sql); //受影响行数 int
II. DQL语句:statement.executeQuery(sql); //结果集 ResultSet
III PreparedStatement发送SQL,无需传入SQL
5 . 处理结果:
I. DML语句:逻辑判断
I. DML语句:逻辑判断
II. DQL语句:展示、封装。
6 . 释放资源:
I. 遵循先开后关。
II. 关闭顺序ResultSet、Statement、Connection。
I. 遵循先开后关。
II. 关闭顺序ResultSet、Statement、Connection。
加载驱动程序:
Class.forName(driverClass) //加载mysql驱动 Class.forName("com.mysql.jdbc.Driver") //加载Oracle驱动 Class.forName("oracle.jdbc.driver.OracleDriver")
获得数据库连接:
DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc", "root", "root");
创建StatementPreparedStatement对象:
conn.createStatement();
conn.prepareStatement(sql);
以上是关于第十四周java课程学习总结的主要内容,如果未能解决你的问题,请参考以下文章
201621123016 《Java程序设计》第十四周学习总结