数据库查询服务框架

原本是为了验证前面的通信框架,在不知不觉的2个月中,越写越大。

既然写了就简单介绍下

数据库查询,主要是客户端发送sql语句到服务端,服务端查询完成以后将数据返回

        客户端DBClientManager类中封装了一般的sql查询方法,按照c#的方式封装的,只需要调用不同的方法则返回不同的数据;

一般的查询均返回DBResult对象,里面的Result字段对应返回数字,表结构DataTableJson对象;

当然也可以返回sqldatareader对象,其原理是分步返回而已

构造的存储结构是按照列存储的方式,没有按照简单的object方式存储,一个int转成Object(或integer)存储会造成很大空间浪费,具体原因看java的存储,所以优化了存储;

    客户端对外很简单,就是获取数据,也封装了行列结构,像一般的操作,如果是c#程序员就会感觉很熟悉,不再复述。

   重点服务端,服务端除使用了表结构,行结构,列结构,还必须使用列映射;服务端使用封装的DB操作,启用连接池(自己封装的),有一些默认配置;

DBDefaultConfig.json配置连接池(建议不要修改);DBConfig.json配置数据库信息;连接池信息;

DBMapType.json设置数据库列与java的类型;现在的设置基本够了,程序中有一部分写死了,一般映射,如果使用的数据库不够则添加映射;

Server.json 配置服务端IP,端口

 服务端根据客户端的调用方法返回不同具体对象与数据,已经封装

 通信,封装了通信接口,可以自己实现进行替换,程序中使用了udt,为了适应程序,将udt源码进行了一定修改,方便使用。通信是动态调用的。

 这个通信经过充分测试了的,应该直接使用。不清楚该通信的请自己查询

日志使用了log4j

里面也添加了客户端向服务端传送文件,测试脚本文件传送。直接使用了udt中的文件发送

 数据传递,fastjason(阿里巴巴),客户端与服务端交互使用了json结构传递。

   大体上是这样,就不详细写了,没有什么意义。里面有很多。服务端还把数据库操作分割成写连接池与读连接池。

   原本只是想写个测试插件,符合前面的通信框架,没有想到越写越多,越大。感觉在写的过程中还可以有很多开发的;一些想法验证,就不想一一实现了,还是收了,

数据库的二进制等没有验证。所以最后粗暴的添加了一个插件接口DBPluginManager,任意添加。只要有固定的通信与文件传送,客户端与服务端就任意了。

  使用数据库postgresql测试。5个字段,字符串类型,每个字段5个字符。全表查询,15w行,使用时间6秒。客户端与服务端同步。虚拟机测试。

 本程序所有配置使用的是json文件,json结构。

查询以及使用的第三方包都传到csdn,git.

选择postgresql数据库测试原本是想使用数据库的同步功能,一个数据库查询,一个数据库更新数据,同时备份了数据库。具体大家有兴趣就研究。

https://github.com/jinyuttt/DBRemote

 

 

 

 

 

 

 

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/jinyuttt/p/6720554.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring MVC框架中实现数据库查询可以通过以下步骤进行: 1. 配置数据库连接:在Spring的配置文件(如applicationContext.xml)中,配置数据库连接信息,包括数据库驱动、URL、用户名和密码等。 2. 创建数据访问对象(DAO):创建一个DAO接口,并在其实现类中编写数据库查询的相关代码。可以使用Spring提供的JdbcTemplate来简化数据库操作,或者使用其他ORM框架如MyBatis。 3. 配置数据源和事务管理:在配置文件中配置数据源和事务管理器,以确保数据库连接的正确获取和事务的管理。 4. 创建控制器(Controller):创建一个控制器类,用于处理前端请求并调用DAO层的方法来进行数据库查询操作。 5. 定义请求映射:使用Spring MVC的注解或配置文件,将前端请求映射到相应的控制器方法。 6. 编写前端页面:根据需要,编写前端页面来显示查询结果。可以使用JSP、Thymeleaf等模板引擎来渲染页面。 以下是一个简单的示例代码来演示在Spring MVC中实现数据库查询: ```java // DAO接口 public interface UserDao { public List<User> getUsers(); } // DAO实现类 public class UserDaoImpl implements UserDao { private JdbcTemplate jdbcTemplate; // 注入JdbcTemplate对象 public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public List<User> getUsers() { String sql = "SELECT * FROM users"; List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper(User.class)); return users; } } // 控制器类 @Controller public class UserController { @Autowired private UserDao userDao; @RequestMapping("/users") public String getUsers(Model model) { List<User> users = userDao.getUsers(); model.addAttribute("users", users); return "userList"; } } // 前端页面(userList.jsp) <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>User List</title> </head> <body> <h1>User List</h1> <table> <tr> <th>ID</th> <th>Name</th> </tr> <c:forEach items="${users}" var="user"> <tr> <td>${user.id}</td> <td>${user.name}</td> </tr> </c:forEach> </table> </body> </html> ``` 以上是一个简单的例子,根据实际需求,你可以根据Spring MVC的特性进行更加复杂的数据库查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值