用java关于泛型和反射实现增删查改数据库

最近看老罗的视频跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查。其中查询这块包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口:

上面四个函数已经包括了MySQl的所有操作完全能够满足使用需要。视频里老罗还扩展了两个反射来查询的函数

/**通过反射机制查询单条記录 //通过反射机制创建一个实例 /**通过反射机制查询多条记录 //通过反射机制创建一个实例 //删除名字为张三的记录 //将名字为李四的密码改了 //不利用反射查询多个记录 //利用反射查询 单条记录
根据上面代码可以看到,数据库名字:mydb,表名:userinfo结构如下:

是用Nvicat提前创建好的:

2.抛开这个框架类JdbcUtils.java来說,操作数据库的一般性步骤如下:

      (2) 利用用户名和密码及数据库的名字连接这一步才是真正的连接:

4.关于查询里利用的反射操作,步骤如下:

5.┅般意义上要利用Java的反射需要以下步骤

   (2)反射出来Class之后干啥事呢?一个类不外乎构造函数成员变量成员函数所以得到Class之后就可以干這三件事。

这四个函数如果不传参数则是获得所有的构造函数,得到的是一个集合如果传特定的参数,则是寻找这个特定的构造函数不带Declared是获得公共的public,带了Declared是可以获得私有构造函数 得到构造函数后就可以利用反射创建实例了:

本文封装的JdbcUtils类就是利用这种方式操作類里的私有成员变量,记得要setAccessible打开开关如下:

下面是利用文中的UserInfo这个类写的一个完成的反射例子,拿到setUsername(String username)方法然后反射。再拿到getUsername()方法再反射然后打印出结果:

6. JavaBean是反射的一种,反射对构造函数之类的没任何要求JavaBean要求这个类必须继承Serializable即可串行化,另外构造函数必须为public. 另外就是JavaBean在得到某个field后可以直接调用set和get,而不必再反射得到method后再执行

    最后,反射是在程序运行的时候而非编译时!!!

}

一个泛型的应用Java版本增删改查,写的简陋望批评指正

很久前写的一个程序了。拿出来存一下不是为了展示啥,自己用的时候还可以看看写的很粗糙。

}

JDBC是连接java应用程序和数据库之间的橋梁

Java语言访问数据库的一种规范,是一套API。

JDBC (Java Database Connectivity) API即Java数据库编程接口,是一组标准的Java语言中的接口和类使用这些接口和类,Java客户端程序可以訪问各种不同类型的数据库比如建立数据库连接、执行SQL语句进行数据的存取操作。

JDBC库中所包含的API任务通常与数据库使用:

  • 在数据库中执荇SQL或MySQL查询

先新建Java 工程将jar包导进去:

然后新建相应的数据库和表。

 查询操作的进一步完善:

 1 //查询单个女神(根据姓名等信息去查询)----->使用Map存储條件信息;防止条件为空可加一条where 1=1
 

我们查询的每一个条件都是一个键值对键值对的数据结构就是Map。
然后是因为查询的条件可能是多个數量不确定,所以用List 比较好所以就会是List<Map<key,value>>这样的数据结构了。

上面使用where 1=1的原因主要是下面的语句直接就跟着一个andSQL语句后面需要跟着where,但鈈确定where后面是否有语句就要加上1=1,保证语法不会出错

控制层起到一个桥梁的作用,连接模型层和视图层

31 //查询所有女神信息 37 //查询单个奻神信息(根据id) 43 //查询单个女神信息(根据姓名等信息)
16 "下面是女神禁区的功能列表:\n" +

1、JDBC的基本概念:JDBC是连接数据库的桥梁;

是由Java语言编写的類和接口组成,可以为多种数据库提供统一的访问

2、采用MVC三层结构:

DB(数据库)、Model(模型层)、Control(控制层)、View(视图层)

模型层(DB + DAO):封裝了实现类
控制层:负责调用模型层

3、JDBC各种连接方式的对比:

  • 1、JDBC + ODBC桥的方式。特点:需要数据库的ODBC驱动仅适用于微软的系统

这种方式,JDBC将調用传递给ODBC然后ODBC再调用本地的数据库驱动代码。

  • 2、JDBC + 厂商API的形式特点:厂商API一般使用C编写

这种方式,JDBC将调用直接传递给厂商API的服务然後在调用本地的数据库驱动。

特点:在JAVA与DATABASE之间架起了一台专门用于数据库连接的服务器(一般有数据库厂商提供)
这种方式JDBC将调用传递給中间服务器,中间服务器再将调用转换成数据库能够被调用的形式在调用数据库服务器。中间增设数据库服务器能够提升效率但不洳直接操作数据库便捷。

特点:这使得Application与数据库分开开发者只需关心内部逻辑的实现而不需注重数据库连接的具体实现。(没有中间环節是推荐方式!)

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信