简单易行的CRUD(一)

二、CRUD

  crud是指在做统计处理时的加码(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)多少个单词的首字母简写。crud重要被用在讲述软件系统中数据库或者持久层(dao层)的基本操作效率。

2、目录文件的职位:

2.切实可行代码

  1.dao层接口

 1 public interface ILoginUserDao {
 2     /**
 3      * 增加
 4      * @param loginUser
 5      */
 6     void save(LoginUser loginUser);
 7 
 8     /**
 9      * 删除
10      * @param id
11      */
12     void delete(Integer id);
13 
14     /**
15      * 更新
16      * @param loginUser
17      */
18     void update(LoginUser loginUser);
19 
20     /**
21      * 查询
22      * @return
23      */
24     List query();
25 }

  2.dao层实现

  1 public class LoginUserDao implements ILoginUserDao {
  2     @Override
  3     public void save(LoginUser loginUser) {
  4         System.out.println("----save----");
  5         // 首先加载jdbc实现类
  6         try {
  7             // 1.加载驱动
  8             Class.forName("com.mysql.jdbc.Driver");
  9             // 2.创建链接
 10             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
 11             // 3.创建编译语句
 12             Statement statement = connection.createStatement();
 13             // 4.执行sql语句
 14             String sql = "INSERT INTO loginuser(username, password) VALUES ('王五', '6666')";
 15             int i = statement.executeUpdate(sql);
 16             // 5.释放资源
 17             statement.close();
 18             connection.close();
 19 
 20         } catch (Exception e) {
 21             e.printStackTrace();
 22         }
 23     }
 24 
 25     @Override
 26     public void delete(Integer id) {
 27         System.out.println("----delete----");
 28         try {
 29             // 1.加载驱动
 30             Class.forName("com.mysql.jdbc.Driver");
 31             // 2.创建链接
 32             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
 33             // 3.创建编译语句
 34             Statement statement = connection.createStatement();
 35             // 4.执行语句
 36             String sql = "DELETE FROM loginuser WHERE id = 2";
 37             int i = statement.executeUpdate(sql);
 38             // 5.释放资源
 39             statement.close();
 40             connection.close();
 41         } catch (Exception e) {
 42             e.printStackTrace();
 43         }
 44     }
 45 
 46     @Override
 47     public void update(LoginUser loginUser) {
 48         System.out.println("----update----");
 49         try {
 50             // 1.加载驱动
 51             Class.forName("com.mysql.jdbc.Driver");
 52             // 2.创建链接
 53             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
 54             // 3.创建编译语句
 55             Statement statement = connection.createStatement();
 56             // 4.执行sql语句
 57             String sql = "UPDATE loginuser SET username = '王五', password = '55555' WHERE id = 1";
 58             int i = statement.executeUpdate(sql);
 59             // 5.释放资源
 60             statement.close();
 61             connection.close();
 62         } catch (Exception e) {
 63             e.printStackTrace();
 64         }
 65     }
 66 
 67     @Override
 68     public List query() {
 69         System.out.println("----query----");
 70         // new一个list集合对象
 71         List<LoginUser> list = new ArrayList<>();
 72         try {
 73             // 1.加载驱动
 74             Class.forName("com.mysql.jdbc.Driver");
 75             // 2.创建链接
 76             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "admin");
 77             // 3.创建编译语句
 78             Statement statement = connection.createStatement();
 79             // 4.执行sql语句
 80             String sql = "SELECT id, username, password FROM loginuser WHERE id > 4";
 81             ResultSet resultSet = statement.executeQuery(sql);
 82             // 取出查询内容
 83             while (resultSet.next()) {
 84                 String username = resultSet.getString("username");
 85                 String password = resultSet.getString("password");
 86                 // 创建LoginUser对象
 87                 LoginUser loginUser = new LoginUser();
 88                 loginUser.setUsername(username);
 89                 loginUser.setPassword(password);
 90                 // 添加到集合
 91                 list.add(loginUser);
 92             }
 93             // 5.释放资源
 94             resultSet.close();
 95             statement.close();
 96             connection.close();
 97 
 98         } catch (Exception e) {
 99             e.printStackTrace();
100         }
101         return list;
102     }
103 }

上图中,在“在倒入时选拔”面板的“元数据”中,选拔红框部分的“新建”,可以加一些祥和的版权音讯:(这样的话,导入的兼具的图纸都会蕴藏这么些版权消息)

1.兑现规范

  1.jar包, mysql-connector-java-5.1.26-bin.jar

  2.数据库MySQL

图片 1

3.注意事项

  1.接纳DriverManager获取连接.

  Connection conn = DriverManager.getConnection(String url,String
user,String password)

  2.充实、删除、修改执行sql语句 statement.executeUpdate(sql) 使用的是
executeUpdate,而查询利用的是 executeQuery ==》ResultSet resultSet =
statement.executeQuery(sql)

 

图片 2

三、实现简单的CRUD

 

一、JDBC的概述–(来源于百度)

  JDBC(Java DataBase
Connectivity,java数据库连年)是一种用于实施SQL语句的Java
API,可以为多种关周密据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种规格,据此可以构建更尖端的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC对Java程序员而言是API,对贯彻与数据库连接的服务提供商而言是接口模型。

  JDBC 可做三件事:与数据库建立连接、发送操作数据库的说话并处理结果。

  JDBC API提供了以下接口和类:

  • DriverManager:
    这些类管理数据库驱动程序的列表。确定内容是否吻合从Java应用程序使用的通信子协议正确的数据库驱动程序的连续请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。

  • Driver:
    此接口处理与数据库服务器通信。很少直接直接使用驱动程序(Driver)对象,一般拔取DriverManager中的对象,它用来管理此类型的目的。它也抽象与驱动程序对象工作息息相关的详细信息

  • Connection :
    此接口与接触数据库的所有办法。连接对象表示通信上下文,即,与数据库中的所有的通信是由此此唯一的连天对象。

  • Statement :
    可以利用这多少个接口创立的目的的SQL语句提交到数据库。一些派生的接口接受除履行存储过程的参数。

  • ResultSet:
    这么些目标保存从数据库后,执行使用Statement目的的SQL查询中找找数据。它作为一个迭代器,可以由此移动它来寻找下一个多少。

  • SQLException: 那几个类用于拍卖暴发在数据库应用程序中的任何不当。

三、导入照片:

图片 3

 

图库过滤器:

1、单独形式:

  【G】即grid(网格),切换到网格视图

 上图中:

【声明】  

著作来源:http://www.cnblogs.com/smyhvae/p/5101985.html

2、首选项设置:

(3)DNG格式:Adobe的数据底片格式。DNG即digital
negative,数码底片的意思。 

四、对Lightroom目录的接头:

上图中,提出将红框部分打钩(至极重大)

【F7】展现/隐藏左侧面板

  索尼  ARW

(2)采取导入形式:

五、呈现叠加音信:

上图红框部分的叠加音信是足以自定义的。设置如下:

  .lrcat文件:目录文件。存储了具备对你最实用的消息。

切切实实设置如下:

(3)最后,还有操作记录的版本回退功效。 

图片 4

  尼康  .NEF

图片 5

Raw本身不是足以查看的相片,必须要用一定的解码形式将其解码才能变成肉眼可见的肖像。即时在照相机中采取拍摄jpeg文件,事实上也亟需在相机内将Raw数据转换为jpeg照片。

一、lightroom快捷键:

 注:版权符号可以动用部分拼音输入法输入,或者在PC按住Alt键然后在小键盘上输入0169,或者在Mac上接纳Option+G输入符号。

图片 6

上图按照需要进行设置。

 

二、各样设置:

图片 7

对此JPEG、TIFF、PSD、DNG等文件格式,xmp文件将被平放到照片文件之中,因而你在文书夹内看不到xmp文件。对于raw文件,xmp文件无法被嵌入raw文件内部,而是sidebar文件的花样存在于raw文件的外缘(使用同一的文本名,只是后缀不均等)。当您备份或者移动照片的时候,必须同时移动xmp文件,否则你的设置就会失灵。

【正文】 

【F6】突显/隐藏下方面板

 

比方:不精晓您是否干过这样一件事:在岁末的时候把一年中您照相的最好的肖像选取出来,复制这多少个照片,然后新建一个文书夹,命名为“年度最佳照片”。或者把某一主旨的相片(某一项目标相片)选用出来,社团成一个文件夹。此时,你需要不停选拔,在资源管理器中展开复制,于是最后在你的硬盘上会出现大量不等排列的重复照片。而在Lightroom中,你只需要经过“星标”、“旗标”、“色标”等展开标记,然后用收藏夹拓展归类就行了。

缺陷:绝大多数处理器都不会安装Raw解码软件,所以大部分人都心有余而力不足见到Raw照片。同时Raw格式还缺少统一规范,各类厂商都施用自己独具专利的Raw格式,并且使用不同的扩充名。部分照相机品牌的Raw文件增加名如下:

图片 8

在指定位置新建一个目录后,会看到如下文件:

1、Lightroom目录的优势:

【Ctrl+Backspace】删除被标记为排除的照片

上图中,提出采纳红框部分,即将更多的字符作为地下字符,并且利用段画线来取代这个地下字符,以担保文件名的通用性。如若你注意的话会意识,所有网络上传输的文书都是一向不空格的,所以提议选拔相同的标记(短划线)来替换空格。

(1)首先,lightroom目录的最大利益彰显在肖像的团队和保管地方。Lightroom是一套完整的数量解决方案,具有很有力的肖像协会和管理力量,使用目录,Lightroom可以在不移步照片、不复制照片的情事下为你建立各样样式的肖像玄机,无论这一个照片在磁盘上的情理地方距离多少距离。

选料菜单栏“编辑-目录设置”即可:

【F8】显示/隐藏左边面板

4、设置个性化的身份标识:

(1)选拔导入源(需要导入的肖像来自)

假定您只使用 Ligthtroom,那么您一点一滴可以把设置写入Ligthtroom的目录文件而不需要XMP文件。假设您还要还需要使用其他软件(如Photoshop、Bridge等),那么您应当把设置写入xmp文件,那样你就可以在其他软件中来看您在Lightroom中做的具有安装。

 

3、目录设置:此设置只适用于当前目录,更换目录后装置无效

  松下  RW2

切换视图:

  【E】即loupe(放大器),切换到放手视图

在最上方的选项中,假定是从sdCard中导入照片,可以拔取【复制】;假设是从自己的硬盘上导入照片,可以挑选【添加】,此时右边没有“目的地点”面板。“添加”的趣味是说:只是把相片的音信添加到lightroom的目录中,而不需要活动或复制照片。

图片 9

(4)在导入时选择版权等消息:

图片 10

(2)Raw格式:数码底片。

(1)jpeg格式:有损压缩格式。通用性强,体积小。

 

  【\】彰显或隐藏图库过滤器面板。

  【Ctrl+L】启用或者停用图库过滤器效能

生命壹号:http://www.cnblogs.com/smyhvae/ 

注:什么是预览?Lightroom记录了有着照片的职务信息并且为照片创立预览。这多少个预览被储存在预览文件夹中。也就是说,你在Lightroom中观察的不是实际上照片,而是它们的预览。只有当您改改照片的时候,Lightroom才会需要实际照片。

【T】即toolbar,呈现/隐藏工具栏

为何大家终将要把相片导入到lightroom而不可能一直在磁盘上操作?解释如下:

图片 11

上图中,选用菜单栏“编辑-目录设置”,可以看到目录的岗位,单击显示按钮,可以在资源管理器中开拓那一个目录。

图片 12

  Leica  .ORF

上图中,在“文件处理”面板的“构建预览”中,从上往下的五个选项中,文件会尤其大,同时渲染质料更是好。假设是导入大量的相片,这可以采取面前的几个。当然,大多数场合下,
提议选拔“标准”或“1:1预览”

 

【Tab】同时展现/隐藏左边、左边面板

图片 13

 

【Caps】自动进化。即便你在给每一张相片举行标记时,就不需要选取方向键来切换下一张照片了。 

上图所示,大家可以在面板上右键单击,选取“单独形式”来打开面板。注:导航器和直方图面板不受单独形式的震慑。

【Ctrl+G】堆叠一组照片(相似的肖像举行堆叠时,万分卓有效用)

  【C】即compare,切换来比较视图。在可比视图中,按方向键的下键,可以切换相比的两张图片。

 

【Ctrl+Shift+D】只选中当前一张照片

(5)拔取仓储地方

图片 14

图片 15

上图可依据需要开展安装。

Raw是相机记录的原始文件,是的确的数据底片。大家早就清楚数码感光的本质是感光元件感受镜头投射的光辉并将这多少个亮光强弱信号记录下来,而Raw就是感光元件记录的原有感光音信,是未经加工的多少。

【F5】展现/隐藏上方面板

图片 16

  【D】即develop,切换到“修改照片”视图

【Ctrl+D】裁撤选中

XMP即Extansible Metadata
Platform(可扩大元数据平台)。XMP文件可以储存照片的元数据,包括Ligthtroom的修改照片设置。

挑选菜单栏“视图-视图选项-放大视图”:

(2)其次,使用Lightroom可以很好地爱慕原有照片。无论你在Lightroom调整Raw仍然jpeg照片,Lightroom都不会对原始照片举行操作,而是将修改音信写入目录文件(写入一个单独的文件)。由此,通过应用目录,Lightroom可以确保你的本来面目照片不受任何影响,以扶持您保存最原始的数量底片。

【shift+Tab】同时显示/隐藏上方、下方、左边、左侧面板

 

上图中,“标准预览大小”指出采纳与展现器分辨率差不多的值(略大于展现器宽度的像素值);“预览质地”提议采用“高”。

【Ctrl+K】输入关键字

Lightroom对照片的有着操作都是遵照目录的。目录记录的莫过于是相片的音讯,Lightroom将基于你给目录的通令到硬盘上找到实际照片,就仿佛网络商城与仓库的关联一致。

  .lrdata文件夹:预览音讯文件夹。随着时光的延迟,这个文件夹的数目或者会更加大。

 

  

 

欢迎转载,但请保留小说原来出处→_→  

目录新建好掌握后,现在初步导入照片。单击左下角的箭头,可以见到所有的导入时的安装:

拔取菜单栏“编辑–>设置身份标识”:

五、常见数码照片文件格式:

  佳能  .CR2

迅速键:【I】呈现叠加音信。效果如下:

注:在做有所的操作在此之前,
请先新建一个索引,Lightroom的有着操作都是按照目录的。

理解XMP文件:

图片 17

亮点:记录最丰裕的清洗,给予中期处理最大的后路。

(3)文件处理:

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注