课程总结:
本周主要对数据库进行了学习:
1.JDBC:JDBC是Java提供的一套数据库操作标准
JDBC的主要操作类及接口:
Java.sql.CallableStatement:用于执行SQL存储过程
Java.sql.Types:定义了表示SQL类型的常量
java.sql.DriverManager :用于管理jdbc驱动程序
Java.sql.Connection :用于建立与特定数据库的连接
Java.sql.Statement 一个Statement的对象用于执行静态sql语句,并获得语句执行后产生的后果
Java.sql.PreparedStatement 创建一个可以编译的sql语句对象,该对象可以多次被运行,以提高执行效率,是Statement的子接口
Java.sql.ResultSet 用于创建表示sql语句检索结果的结果集,用户通过结果集完成对数据库的访问
Java.sql.CallableStatement:用于执行SQL存储过程
Java.sql.Types:定义了表示SQL类型的常量
在JDBC中基本操作中最常用的类和接口就是DriverManger、Connection、Statement、Result、PrepaerdStatement。
2.MySQL数据库:
MySQL的官方网站是:www.mysql.com
MySQL的安装及配置:端口设置默认值是3360.
MySQL常用命令:
链接mysql数据库
1 | mysql -u 用户名 -p 密码 |
创建数据库
1 2 3 | 创建数据库:CREATE DATABASE 数据库名称 删除数据库:DROP DATABASE 数据库名称 |
使用数据库:
1 | USE 数据库名称 |
创建数据库表:
1 2 3 4 5 6 7 8 9 10 11 | CREATE TABLE 表名称( 字段名称 1 字段类型【DEFAULT 默认值】【约束】 字段名称 1 字段类型【DEFAULT 默认值】【约束】 ......... 字段名称n 【DEFAULT 默认值】【约束】 ) |
删除数据库表:
1 | DROP TABLE 表名称; |
查看表结构
1 | DESC 表名称; |
查看数据库信息
1 2 3 | 查看全部数据库:SHOW DATEBASES; 查看一个数据库的全部表;SHOW TABLES; |
学这个的时候有一点之前在cmd里面写东西的感觉,但是这个知识比之前那个难太多了(个人觉得),上课听得稀里糊涂,没听懂多少,老师讲之后再结合自己看书才搞懂一些。
实验报告:
源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | package demo2; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.KeyStroke; public class TextPad implements ActionListener{ JFrame frame; JMenuBar bar; JMenu fileMenu; JMenu editMenu; ImageIcon newIcon; ImageIcon openIcon; ImageIcon saveIcon; ImageIcon closeIcon; JTextArea area; JScrollPane scroll; JMenuItem newItem; JMenuItem openItem; JMenuItem saveItem; JMenuItem closeItem; JFileChooser chooser; File file; public TextPad(){ frame= new JFrame( "记事本" ); bar= new JMenuBar(); fileMenu= new JMenu( "文件" ); editMenu= new JMenu( "编辑" ); //图标 newIcon= new ImageIcon( "g:" +File.separator+ "test" +File.separator+ "新建.png" ); openIcon= new ImageIcon( "g:" +File.separator+ "test" +File.separator+ "打开.png" ); saveIcon= new ImageIcon( "g:" +File.separator+ "test" +File.separator+ "退出.png" ); closeIcon= new ImageIcon( "g:" +File.separator+ "test" +File.separator+ "关闭.png" ); area= new JTextArea(); scroll= new JScrollPane(area); newItem= new JMenuItem( "新建" ,newIcon); openItem= new JMenuItem( "打开" ,newIcon); saveItem= new JMenuItem( "退出" ,newIcon); closeItem= new JMenuItem( "关闭" ,newIcon); //快捷键 newItem.setMnemonic( 'N' ); openItem.setMnemonic( 'O' ); saveItem.setMnemonic( 'E' ); closeItem.setMnemonic( 'C' ); newItem.setAccelerator(KeyStroke.getKeyStroke( 'N' ,java.awt.Event.CTRL_MASK)); openItem.setAccelerator(KeyStroke.getKeyStroke( 'O' ,java.awt.Event.CTRL_MASK)); saveItem.setAccelerator(KeyStroke.getKeyStroke( 'E' ,java.awt.Event.CTRL_MASK)); closeItem.setAccelerator(KeyStroke.getKeyStroke( 'C' ,java.awt.Event.CTRL_MASK)); //监听器 newItem.addActionListener( this ); newItem.addActionListener( this ); newItem.addActionListener( this ); newItem.addActionListener( this ); fileMenu.add(newItem); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.addSeparator(); fileMenu.add(newItem); newItem.setMnemonic(KeyEvent.VK_N); bar.add(editMenu); bar.add(fileMenu); frame.setJMenuBar(bar); frame.setVisible( true ); frame.setSize( 300 , 180 ); frame.setLocation( 300 , 200 ); } public void actionPerformed(ActionEvent event) { Object obj=event.getSource(); if (obj instanceof JMenuItem){ JMenuItem item=(JMenuItem) obj; if (item==newItem){ new TextPad(); } else if (item==openItem){ chooser= new JFileChooser(); chooser.showOpenDialog( null ); file=chooser.getSelectedFile(); try { FileInputStream fis= new FileInputStream(file); byte [] b= new byte [fis.available()]; fis.read(b); area.append( new String(b)); fis.close(); } catch (FileNotFoundException e){ e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } else if (item==saveItem){ chooser= new JFileChooser(); chooser.showSaveDialog( null ); file=chooser.getSelectedFile(); try { if (!file.exists()){ file.createNewFile(); } FileOutputStream fos= new FileOutputStream(file); byte [] b=area.getText().getBytes(); fos.write(b); fos.close(); } catch (IOException e){ e.printStackTrace(); } } else if (item==closeItem){ System.exit( 1 ); } } } } |
1 2 3 4 5 6 7 8 9 10 | package demo2; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub new TextPad(); } } |
运行结果截图
不知道为什么设置了图标地址,就偏偏全部是一个图案,而且并且实现不了一些功能,参照老师上课讲的写的,之前也按书上的方法写过,都达不到最终的目的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)