,顺便添加购买的超链接 购买 设计购物车实体 如果不清楚为什么这样设计,可参考我之前的博文:http://blog.csdn.net/hon_3y...查找用户的订单,可能不止一个 public List findUserOrder(String user_id) { QueryRunner queryRunner...list.contains(p)) { //这里抛出的异常是代理对象抛出的,sun公司会自动转换成运行期异常抛出,于是在Servlet上我们根据getCause...但是我们是通过代理对象调用方法的,于是sun公司的策略就是把它们转换成运行期异常抛出去。 因此,我们就在Servlet上得到异常,再给出友好的提示。。 ---- 效果: 没有登陆的时候: ?...在invoke()方法抛出的编译时期异常,java会自动转换成运行期异常进行抛出... 使用contains()方法时,就要重写该对象的hashCode()和equals()
,顺便添加购买的超链接 购买 设计购物车实体 如果不清楚为什么这样设计,可参考我之前的博文:http://blog.csdn.net/hon_3y/article...查找用户的订单,可能不止一个 public List findUserOrder(String user_id) { QueryRunner queryRunner...再看看用户有没有相对应的权限 //查找用户的所有权限 public List findUserPrivilege(String user_id) { QueryRunner queryRunner...但是我们是通过代理对象调用方法的,于是sun公司的策略就是把它们转换成运行期异常抛出去。 因此,我们就在Servlet上得到异常,再给出友好的提示。。 ---- 效果: 没有登陆的时候: ?...在invoke()方法抛出的编译时期异常,java会自动转换成运行期异常进行抛出… 使用contains()方法时,就要重写该对象的hashCode()和equals()
用于指定bean的id,当不写时,默认值为当前方法的名称; * 细节:当我们使用注解配置方法时,如果方法有参数,spring框架去容器中查找有没有可用的bean对象; * 查找的方式和...当不写时,默认值为当前方法的名称; * 细节:当我们使用注解配置方法时,如果方法有参数,spring框架去容器中查找有没有可用的bean对象; * 查找的方式和Autowired注解的作用是一致的...; */ @Configuration @ComponentScan(basePackages = "com.zibo")//可省略为@ComponentScan("com.zibo") public...当不写时,默认值为当前方法的名称; * 细节:当我们使用注解配置方法时,如果方法有参数,spring框架去容器中查找有没有可用的bean对象; * 查找的方式和Autowired注解的作用是一致的...(坐标); * 2、使用junit提供的注解,把原有的main方法替换成spring提供的@Runwith; * 3、告知spring的运行器,spring的ioc创建是基于xml还是注解,并说明其位置
做自己的类加载器 虚拟机的核心是通过类加载器来加载.class文件,然后进行相应的解析执行。那么我们可以自己做类加载器,手动加载需要的.class以进行解析执行,从而扩展虚拟机的功能。...进一步地, //如果我们自己熟悉字节码的生成格式,那么也可自己用程序生成。...因为不是一个类加载器的。 作自己的测试工具MyJUnit (注解与反射共同使用的案例 ) 相关说明: 1)JUnit用的是@Test注解,我们用@MyTest注解。...2)JUnit已经嵌入到MyEclipse当中,我们自己的MyJUnit只要能独立运行就可以(不嵌入),同时这样我们也不方便在MyJUnit中以参数方式接收到被测试类的类名与方法名,只能以键盘输入的方式接收...下面实现了运行任意目录下的实现了@MyTest注解的方法: 需要输入绝对路径名和类的完整名字。
---- 开发DAO PrivilegeDao /** * 权限的管理应该有以下的功能: * 1.添加权限 * 2.查看所有权限 * 3.查找某个权限 * * */ public class PrivilegeDao...这里写图片描述 ---- 提供显示权利页面的Servlet //得到浏览器想要查看的角色id String role_id = request.getParameter("role_id"); RoleService...这里写图片描述 ---- 处理表单数据并添加角色权利的Servlet //得到浏览器想要添加权利的id String[] ids = request.getParameterValues("privilege_id...这里写图片描述 ---- 处理表单数据,并添加权限的Servlet //得到浏览器带过来的数据 String name = request.getParameter("name"); String description...【得到角色的所有权限是同理】 ⑧:修改用户的角色:我们先把用户的角色全部删除了,再通过外界勾选的角色进行添加(这是一个折中的办法)【修改角色的权限是同理】 ⑨:在添加用户角色的时候,要把用户的id通过隐藏域传递进去给服务器端
---- 开发DAO PrivilegeDao /** * 权限的管理应该有以下的功能: * 1.添加权限 * 2.查看所有权限 * 3.查找某个权限 * * */ public class PrivilegeDao...---- 提供显示权利页面的Servlet //得到浏览器想要查看的角色id String role_id = request.getParameter("role_id...---- 处理表单数据并添加角色权利的Servlet //得到浏览器想要添加权利的id String[] ids = request.getParameterValues...---- 处理表单数据,并添加权限的Servlet //得到浏览器带过来的数据 String name = request.getParameter("name");...【得到角色的所有权限是同理】 ⑧:修改用户的角色:我们先把用户的角色全部删除了,再通过外界勾选的角色进行添加(这是一个折中的办法)【修改角色的权限是同理】 ⑨:在添加用户角色的时候,要把用户的id通过隐藏域传递进去给服务器端
Facebook最近公布的腕带式的AR传感器,让你在虚拟世界get绯红女巫同款技能。...不仅如此,FRL研究科学主管Hrvoje Benko表示: “我们相信,可穿戴的腕带设备可以为AR眼镜,提供超低摩擦、随时可用的输入,但它们本身并不是一个完整的解决方案。...目前,Facebook团队正在构建研究原型,包括拥有8个气动波纹管的Bellowband,以及使用了6个震动触动器和新颖的手腕挤压机制的Tasbi,以进一步探索的触觉反馈的类型。...利用EMG技术实现控制 这些功能,都是依赖EMG(肌电图)技术实现的。 EMG技术,就是使用传感器,将通过手腕传到手部的电运动神经信号,转化为数字指令。...; 置于手腕的可穿戴设备还可以轻松地作为计算、电池和天线的平台,同时支持多种传感器。
DataSource ds = null; private static Properties pt = null; static { // 1.获得当前类的加载器...ClassLoader cl = JdbcUtil.class.getClassLoader(); // 通过该加载器得到一个输入流 InputStream...,获取数据库的连接对象 Connection conn = MyJDBCUtils.getConnection(); //创建QueryRunner类对象 QueryRunner qr = new ...(1): 定义业务数据类Ledger(实体类,javaBean) public class Ledger { //要生成空参、有参构造、set和get方法、toString方法 private... qr = new QueryRunner(); //BeanHandler泛型,构造方法(和反射有关系的对象) Ledger legder = qr.query(conn, sql, new BeanHandler
VARCHAR(10) NOT NULL UNIQUE , description VARCHAR(255) ); 编写CategoryDAO /** * 分类模块 * 1:添加分类 * 2:查找分类...if (method.equals("add")) { try { //把浏览器带过来的数据封装到bean中...category_id_FK FOREIGN KEY (category_id) REFERENCES category (id) ); 编写DAO /** * 图书模块 * 1:添加图书 * 2:查看图书 * 3:查找图书的分页数据...= new QueryRunner(Utils2DB.getDataSource()); //WHERE字句在limit字句的前边,注意Object[]的参数位置!...*/ public Book findBook(String id) { return bookDao.findBook(id); } /*查找图书*/
VARCHAR(10) NOT NULL UNIQUE , description VARCHAR(255) ); 编写CategoryDAO /** * 分类模块 * 1:添加分类 * 2:查找分类...if (method.equals("add")) { try { //把浏览器带过来的数据封装到bean中 Category category = WebUtils.request2Bean...category_id_FK FOREIGN KEY (category_id) REFERENCES category (id) ); 编写DAO /** * 图书模块 * 1:添加图书 * 2:查看图书 * 3:查找图书的分页数据...= new QueryRunner(Utils2DB.getDataSource()); //WHERE字句在limit字句的前边,注意Object[]的参数位置!...*/ public Book findBook(String id) { return bookDao.findBook(id); } /*查找图书*/ public Book findBook(
1 查找账户信息 public Account findAccountByAccountName(String accountName) { return queryRunner.query("select...Dao层关键代码 private QueryRunner queryRunner = new QueryRunner(DruidUtil.getDataSource()); //1 查找账户信息 public...userService = applicationContext1.getBean("userService", UserServiceImpl.class); 我们可以借助spring提供的运行器来读取配置文件或注解来创建容器...artifactId> 5.0.2.RELEASE test 第二步:使用@RunWith注解替换原有运行器...@Test 使用@RunWith注解替换原有运行器,测试类中的测试方法即使不添加@Test注解也可以运行(有运行按钮)。
; //启动学员信息管理的视图层代码 }else { System.out.println("登录失败!可能的原因:用户名和密码错误!")...隐式可重入函数:可重入函数中的一些参数是引用传递(使用了指针),也就是说,在调用线程小心地传递指向非共享数据的指针时,它才是可重入的。例如rand_r就是隐式可重入的。...我们使用可重入(reentrant)来包括显式可重入函数和隐式可重入函数。然而,可重入性有时是调用者和被调用者共有的属性,并不只是被调用者单独的属性。...qr = new QueryRunner(JDBCUtils.getDataSource()); //1.使用用户名查找一个用户 public AccountBean findByUserName...qr = new QueryRunner(JDBCUtils.getDataSource()); //1.使用用户名查找一个用户 public AccountBean findByUserName
2).连接池的作用:先期缓存一些Connection对象,并对这些Connection进行反复的使用,回收,而不需要为每个用户单独创建Connection 对象,从而可以提高程序的运行效率。..."));//运行时会默认从bin目录下查找资源文件 2).创建连接池对象 BasicDataSource dataSource = (BasicDataSource)BasicDataSourceFactory.createDataSource...如果没有查询结果,返回的是:空数组(0长度数组),不是空指针 String sql = “select * from products where category_id = 20”; Object...() throws Exception{ //1.创建QueryRunner对象 QueryRunner qr = new QueryRunner(new ComboPooledDataSource...可以对这些Connection对象进行反复的重用,达到提高程序运行效率的目的。 目标:能够使用DBCP连接池 1.复制2个jar包; 2.复制配置文件到src目录下。
hand"> 第2章 案例:添加商品 2.1 案例介绍 日常生活中,我们浏览电商(京东、淘宝等)网站时,浏览器的商品会被后台管理员提前录入到系统中...pid=1”并将需要查询的商品的id传递给服务器,servlet获得商品id,通过id查询商品详情,然后将查询结果存放到request作用域,使用请求转发,将数据显示在“product_edit.jsp...public class PageBean { private int pageNumber; //当前页(浏览器传递) private int pageSize; //每页显示个数(固定值,也可以是浏览器传递...7.2 案例分析 “条件查询”和“查询所有”,两个功能非常相似,不同出就在条件的筛选上,通过页面将分类和商品名称传递给服务器,服务器获得查询条件,然后通知service拼凑sql语句进行具体查询。...实际参数可重复、参数需要顺序,所以选择List集合 List paramsList = new ArrayList(); //2.1 分类不为空 ,添加分类条件 if(product.getCategory_id
springboot&jpa JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中...public QueryRunner queryRunner(@Qualifier("dataSource") DataSource dataSource) { QueryRunner...queryRunner = new QueryRunner(dataSource); return queryRunner; } } 3.编写dao @Repository public...springboot&jooq JOOQ被称为"ORM"大杀器, 是基于Java访问关系型数据库的工具包,轻量,简单,并且足够灵活,可以轻松的使用Java面向对象语法来实现各种复杂的sql。...mybatis也可归为此类,但是有时候需要引入更多配置。
对于用户而言,好像进入了一个浏览器就可以浏览器搞定一切的时代。 现在有很多的各种数据库SQL在线运行网站,但是提供一个包含安装了数据库的在线的Linux环境的好像并不多。...Linux的测试环境。...34个脚本的内容。...sql_id要用v$session视图的sql_id,而不要用v$sort_usage视图的sql_id,v$sort_usage视图里面的sql_id是不准确的*/ 查询历史的temp表空间的使用的...如果能够稍微调整一下手机的适应排版就完美了。 3.部分乱码 查看表空间大小的脚本(tablespace_use.dsql)中的中文是乱码。
#这时就要等待有工人回来,如果等待5000毫秒还没回来,那就抛出异常 #没有工人的原因:最多工人数为50,已经有50个工人了,不能再招了,但50人都出去工作了。...创建QueryRunner 构造器:QueryRunner(); 2. update()方法 int update(Connection con, String sql, Object… params)...创建QueryRunner 构造器:QueryRunner(DataSource) 2. update()方法 int update(String sql, Object… params) 这种方式在创建...把结果集转换成Bean,该处理器需要Class参数,即Bean的类型; l BeanListHandler:多行处理器!...Map处理器 Bean处理器 Column处理器 Scalar处理器 5 QueryRunner之查询 QueryRunner的查询方法是: public T query(String sql,
浏览器每发送一次请求,服务器端都会查询一次数据库,从而对数据库服务器造成不必要的访问。实际开发中,我们采用缓存技术来解决此类问题。...1.5.2 相关技术 缓存(Cache):通常指的就是内存中的一块空间,介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能..."); //2.1 若不为空,直接返回数据 if(value!...=null){ System.out.println("缓存中有数据库"); return value; } //2.2 若为空,从mysql数据库中获取 并放入redis中 List器访问商城,就相当于去超市购买商品,我们需要使用“购物车”对准备购买商品的增删操作。 4.2 分析 ?
在Query窗口中,输入SQL代码,选中要执行的SQL代码,按F8键运行,或按执行按钮运行。...它的特点是非空,唯一。 在开发中一般情况下主键是不具备任何含义,只是用于标识当前记录。...(在获取连接后,关闭连接是将连接返还给连接池) 而在DBUtils的学习过程中,我们使用QueryRunner的空参构造完成,每次请求调用query方法时传入连接对象。...是否自动回收超时连接removeAbandonedTimeout超时时间(以秒数为单位)maxWait超时等待时间以毫秒为单位 1000等于60秒timeBetweenEvictionRunsMillis在空闲连接回收器线程运行期间休眠的时间值...,以毫秒为单位numTestsPerEvictionRun在每次空闲连接回收器线程(如果有)运行时检查的连接数量minEvictableIdleTimeMillis连接在池中保持空闲而不被空闲连接回收器线程
1、注解开发-上 1.1、创建一个新的项目 通过maven创建一个新的项目spring004 1.2、导入jar包 在原有的jar包的基础上加入spring-aop的jar包 5.2.2.RELEASE test 2.2.2、编写测试类 @Runwith 注解替换原来的运行期...可以通过value指定 @Component("managerDaoImpl") 3.2、@Controller、@Service、@Repository @Controller 在展现层使用,控制器的声明...@Autowired private IManagerDao managerDaoImpl; 如果这里不用@Autowired会报空指针异常。...属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。