JDBC反向代理框架(Smile)使用说明

Smile~

创建数据库

1 CREATE TABLE student (
2 sid int(11) NOT NULL AUTO_INCREMENT,
3 name varchar(255) DEFAULT NULL,
4 age int(11) DEFAULT NULL,
5 PRIMARY KEY (sid)
6 ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT=‘学生表‘;
7
8
9 INSERT INTO student VALUES (1,‘花千骨‘,1462),(2,‘白子画‘,511);

StuService.java

 1 package com.dc.service;
 2
 3 import java.util.List;
 4 import java.util.Map;
 5
 6 import com.dc.entity.Student;
 7 import com.dc.jdbc.JDBCUtils;
 8
 9 public class StuService {
10     public int updateStuInfo(Map<String, Object> map) throws Exception{
11         int i = JDBCUtils.update("update student set age = age+1 where name=#{name}", map);
12         return i;
13     }
14     public List<Map<String,Object>> getStudentInfo() throws Exception{
15         List<Map<String,Object>> stuList = JDBCUtils.selectList("select * from student");
16         return stuList;
17     }
18     public List<Student> getStudentInfo2(Map<String,Object> map) throws Exception{
19         List<Student> stuList = JDBCUtils.selectList("select * from student where name=#{n}",map,Student.class);
20         return stuList;
21     }
22     public Student getOne(List<Object> condition) throws Exception{
23         Student stu = JDBCUtils.selectOne("select * from student where name=? and sid = ?", condition, Student.class);
24         return stu;
25     }
26 }

单独的main方法使用:

 1 package com.dc.test;
 2
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.List;
 6 import java.util.Map;
 7
 8 import com.dc.entity.Student;
 9 import com.dc.jdbc.JDBCProxy;
10 import com.dc.service.StuService;
11
12 public class MyTest {
13     public static void main(String[] args){
14         StuService $stuService = new StuService();
15         JDBCProxy proxyStuService = JDBCProxy.getInstance();
16         proxyStuService.setTarget($stuService);
17         StuService stuService= (StuService)proxyStuService.getTarget();
18
19         try {
20             List<Map<String,Object>> stuList = stuService.getStudentInfo();
21             for (int i = 0; i < stuList.size(); i++) {
22                 System.out.println(stuList.get(i).get("name")+"的年龄="+stuList.get(i).get("age")+"岁");
23             }
24
25             Map<String,Object> map = new HashMap<String,Object>();
26             map.put("name", "白子画");
27             System.out.println("---------修改白子画的年龄加一岁---------------");
28             stuService.updateStuInfo(map);
29
30
31             List<Object> l = new ArrayList<Object>();
32             l.add("白子画");
33             l.add(2);
34             Student s = stuService.getOne(l);
35             System.out.println("被修改后白子画的年龄"+s.getAge());
36         } catch (Exception e) {
37             e.printStackTrace();
38         }
39     }
40 }

Spring配合使用

applicationContext.xml配置

<bean id="$stuService" class="com.dc.service.StuService"></bean>
<bean id="jdbcProxy" class="com.dc.jdbc.JDBCProxy">
  <property name="target" ref="$stuService"></property>
</bean>
<bean id="stuServiceProxy" factory-bean="jdbcProxy" factory-method="getTarget" />

package com.dc.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dc.entity.Student;
import com.dc.service.StuService;

public class BeanTest {
    public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        StuService stuService = (StuService) ac.getBean("stuServiceProxy");
        try {
            List<Map<String,Object>> stuList = stuService.getStudentInfo();
            for (int i = 0; i < stuList.size(); i++) {
                System.out.println(stuList.get(i).get("name")+"的年龄="+stuList.get(i).get("age")+"岁");
            }

            Map<String,Object> map = new HashMap<String,Object>();
            map.put("name", "白子画");
            System.out.println("---------修改白子画的年龄加一岁---------------");
            stuService.updateStuInfo(map);

            List<Object> l = new ArrayList<Object>();
            l.add("白子画");
            l.add(2);
            Student s = stuService.getOne(l);
            System.out.println("被修改后白子画的年龄"+s.getAge());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
时间: 2024-08-24 00:11:17

JDBC反向代理框架(Smile)使用说明的相关文章

轻量级别的Cache和反向代理软件---Varnish

1.Varnish描述 1.1 Varnish的结构与特点 Varnish是一个轻量级别的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点: 基于内存进行缓存,重启后数据将消失 利用虚拟内存方式,I/O性能好. 支持设置0~60秒的精确缓存时间 VCL配置管理比较灵活 32位机器上缓存文件大小为最大2GB 具有强大的管理功能,例如:top stat admin list等 状态设计巧妙,结构清晰 利用二叉堆管理缓存文件,达到可以积极删除目的. 1.2 Varni

Linux下Squid正向/反向代理配置

Squid是一个支持HTTP, HTTPS, FTP的web缓存代理,它能通过缓存和反复使用频繁访问的网页来减少带宽.提高响应速度.Squid被广泛用于访问控制和做前端加速,它能运行在大部分操作系统平台上,Squid能减少服务器的压力,提高客户端的响应速度,其高级的内容路由配置允许建立集群和负载均衡来处理各种WEB请求,3.2及之后的版本基本都已支持SMP和多CPU 应用场景: 1.正向代理 Squid被数以百计的网络提供商用来为他们的用户提供最好的网页访问,为了提升性能和常用内容来减少带宽sq

关于大型网站技术演进的思考(十八)--网站静态化处理—反向代理(10)

反向代理也是一种可以帮助实现网站静态化的重要技术,今天我就来讲讲反向代理这个主题.那么首先我们要了解下什么是反向代理.和反向代理相对应的是正向代理,正向代理也就是我们常说的代理服务,正向代理是非常常见的,例如在某些公司里我们想使用互联网,那么我们就得在浏览器里设置一个代理服务器,通过代理服务器我们才能正常使用互联网,而这个代理服务器就是一个正向代理服务器.正向代理更加让人熟悉的使用场景估计还是在FQ技术里的使用,我们使用一个放置在国外的代理服务器来访问那些在国内无法正常访问的网站,这其实也是在使

Nginx构建反向代理缓存服务器

防伪码:曾经沧海难为水,除却巫山不是云. 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上,然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端:  反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提

Nginx反向代理缓存服务器搭建

Nginx反向代理 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理.

Nginx反向代理、缓存、负载均衡服务器构建

代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上,然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理. 反向代理服务器接受来

Atitit.实现反向代理(1)----url rewrite 配置and内容改写 and -绝对路径链接改写 java php

Atitit.实现反向代理(1)----url rewrite  配置and内容改写 and -绝对路径链接改写 java php 1. 代理的实现:::普通代理and反向代理?? 1 2. url rewrite 的框架选型 1 3. ---------反向代理rewrite 配置mode_rewrite 1 1. Java的实现 2 4. 排除自身(apache_mode_rewrite) 2 2. Java的实现 排除自身 2 5. 内容改写(php mode_rwt) 3 3. Java

Nginx学习之反向代理WebSocket配置实例

写在开始去年,做过一款竞赛打分的APP.具体需求,同组教师之间可以相互通信,及时通知同组人员,其他组员做了那些操作(当然,这只是针对特定操作) 写在开始 去年,做过一款竞赛打分的APP.具体需求,同组教师之间可以相互通信,及时通知同组人员,其他组员做了那些操作(当然,这只是针对特定操作). 实现方案 采用目前比较成熟的WebSocket技术,WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择.其为HTML5的一部分,WebSocket相较于原来开发这类app

Nginx反向代理Tomcat,以及Session会话

一:Tomcat及JDK简介 1.)Tomcat是一个免费的web应用服务器服务器,国内很多大型站点也是采用Tomcat来构建的.Tomcat是apache基金会的一个核心项目,其运行环境需要JDK的支持,Tomcat都是基于某个版本的JDK平台所研发,版本不对称,会导致Tomcat启动失败. 2.)JDK于1996年开发第一个版本,JDK主要组建JVM,Applet,AWT等.JDK1.1的版本引入了JAR格式,用户打包Java程序代码.还引入了JDBC,Java通过驱动去连接数据库. 3.)