数据库

spring AOP的基本概念

早过忘川 提交于 2020-04-02 21:49:59
AOP的概念和使用原因   现实中有一些内容并不是面向对象(OOP)可以解决的,比如数据库事务,它对于企业级的Java EE应用而言是十分重要的,又如在电商网站购物需要经过交易系统、财务系统,对于交易系统存在一个交易记录的对象,而财务系统则存在账户的信息对象。从这个角度而言,我们需要对交易记录和账户操作形成一个统一的事务管理。交易和账户的事务,要么全部成功,要么全部失败。   交易记录和账户记录都是对象,这两个对象需要在同一个事务中控制,这就不是面向对象可以解决的问题,而需要用到面向切面的编程,这里的切面环境就是数据库事务。   AOP编程有着重要的意义,首先它可以拦截一些方法,然后把各个对象组织成一个整体,比如网站的交易记录需要记录日志,如果我们约定好了动态的流程,那么就可以在交易前后、交易正常完成后或者交易异常发生时,通过这些约定记录相关的日志了。   回到JDBC的代码中,令人最讨厌和最折腾的问题永远是无穷无尽的try...catch...finally...语句和数据库资源的关闭问题,而且这些代码会存在大量重复,加上开发者水平参差不齐。Spring出现前,在Java EE的开发中,try...catch...finally语句常常被严重滥用,使得Java EE的开发存在着许多问题,虽然MyBatis对JDBC做了良好的封装,但是还是不足的。  

ADO.NET 的使用(二)

北城以北 提交于 2020-04-02 20:17:21
一、本篇主要讲ADO.NET的核心DataSet DataSet里面有个DataTable,DataTable还有个对应的DataView 首先呢,假设数据库的数据 id name mob 100 张三 15412486 102 李四 12789556 103 王五 45876133 缓解眼疲劳图片1 二、DataTable 根据sql语句获取数据复制一份到内存中,从内存中获取DataTable,然后我们可以对其进行修改,最终将DataTable里面的数据json序列化 DataSet DS=bll.GetData();//后端获取数据 DataTable dt=DS.Tables[0];//得到DataTable //接下来就是如何处理DataTable里面的数据 ////Table操作 DataTable newDt=dt.Clone();//克隆表的结构(不包含数据) DataTable copyDt=dt.Copy();//克隆表的结构和数据 DataRow[] rows=dt.Select("条件");//选取符合条件的行 ////列操作 //新增一列 dt.Columns.Add("sex", typeof(string));//列名-sex,类型是string型 //dt.Columns.Add("sex", typeof(string)).SetOrdinal(1)

Mybatis(一):Mybatis是什么

本秂侑毒 提交于 2020-04-02 19:59:26
一、概述 Mybatis是一个优秀的持久层框架,它对JDBC操作数据库的过程进行封装,使开发者只需要关注sql本身。 我们原来使用JDBC操作数据库,需要手动的写代码去注册驱动、获取connection、获取statement等等,现在Mybaits帮助我们把这些事情做了,我们只需要关注我们的业务sql即可,这样可以提高我们的开发效率。 MyBatis属于半自动的ORM框架 二、Mybatis架构 SqlMapConfig.xml SqlMapConfig.xml文件是Mybatis的全局配置文件,配置了Mybatis的运行环境等信息 Mapper.xml Mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml文件中配置加载 SqlSessionFacory 通过SqlMapConfig.xml文件里面的环境配置信息构造SqlSessionFactory会话工厂,用来生产和管理SqlSession SqlSsession 由SqlSessionFactory工厂创建SqlSession会话对象,SqlSession用来操作数据库 Executor MyBatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个基本执行器,一个缓存执行器 我们前期学习MyBatis暂时不用关注这个

ORM基础概念

跟風遠走 提交于 2020-04-02 14:03:22
GPS平台、网站建设、软件开发、系统运维,找森大网络科技! http://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=481 ORM(O/R Mappping对象关系映射)的基础概念 在我们的系统中,存在大量的需要进行持久化存储的对象,这些对象可能是各种各样的业务单据,也可能是我们的系统配置信息等。另外一些属于内存中使用而不需要进行持久化存储的对象,不属于我们的讨论范围。而在支持对象序列化的语言比如C#,Java中,我们可以将这些对象序列化到磁盘文件或者直接保存到关系数据库中。其中关系数据库是我们最主要也是最安全的选择。 在对数据库中的业务数据进行各种操作的时候我们发现,我们进行的大量的Insert、Update、Delete操作,除了其SQL语句根据不同的对象有不同的变换之外,其主要流程存在很多相似之处。于是人们就想通过一个东西来实现这些相同部分的操作的自动化,而那些不同的流程,操作再做特殊处理。这样我们就可以把主要的精力都集中在那些个性化的,特殊的流程操作上。这就是ORM产生的根本原因。 在Java的世界里,ORM框架的应用比较早,也比较成熟,比如Hibernate等,而在.NET世界里,起步就相对晚的多。但是由于担心使用开源的ORM框架导致项目更为复杂(因为这些开源工具虽然很好

mysql5.7.26初始化数据库 暗点介绍

六眼飞鱼酱① 提交于 2020-04-02 11:05:49
我们在下载软件,解压到指定目录后 需要先初始化数据库 才能启动进而使用她. 在初始化时 我们需要指定 --initialize 参数 . 初始化以前需要创建 --datadir 参数或者配置 文件 my.cnf 执行如下命令: mysqld --initialize --defaults-file=/opt/mysql/config/my.cnf 会有如下错误 ![](https://s4.51cto.com/images/blog/202004/02/160d2a5e1889abcaaa89ec774e7f2cc3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 原因是因为:参数位置不对导致的错误 mysqld --defaults-file=/opt/mysql/config/my.cnf --initialize 如上命令 可正常初始化数据库. mysql_install_db命令已经舍弃 使用mysqld --initialize 替代 来源: 51CTO 作者: 张marlie 链接: https://blog.51cto.com/8026776

观CSDN站点小Bug有感

让人想犯罪 __ 提交于 2020-04-02 09:40:43
今天早上在浏览博客的时候偶然发现CSDN博客的数据出现了异常,我也是头一次看到这么明显的Bug。详细什么表现呢?先来看个截图。例如以下: 常常看CSDN博客的人一眼就行看出来哪里出了问题,那就是博文的阅读次数停止了更新,换句话说就是那个数据失效了,我判断数据异常大概出如今昨天中午的时候。到如今为止没有解决掉,事实上这也没什么,仅仅是看着有点别扭而已,世界上没有不存在完美的程序,我也是头一次看到大型站点出现小bug,或许是曾经见过可是没有看出来或者意识到。 当然我对异常的原因和解决的方法更感兴趣,我试着自己推理一下,权当思维练习。 对于阅读次数这个数据。我认为应该是每篇博文作为一个记录存储在数据库中。博文记录表的字段,大致有博文ID、博文标题、博文内容、用户ID、阅读次数等,至于评论数据则另行存储。仅仅需将博文ID作为评论表的外键就可以。 而这个阅读次数是每过一段时间就向数据库里更新的,因此显示的阅读次数应该是从数据库总查询出来的,与此同一时候就应该有向数据库更新次数的方法。 由于之前的记录可以被查询出来,因此查询方法没有问题,同一时候也证明数据库的数据也没有问题。那么我推測仅仅有写入更新这块的问题了。这些都是我个人自己的推測,我不是CSDN站点的开发者,也不是维护人员,因此不可能清楚究竟是什么原因造成的。 因此对于我的推理和推測。大家当个笑话看吧,反正我是菜鸟,不怕笑话…… 来源:

在Ubuntu 16.04上安装Joomla系统

我是研究僧i 提交于 2020-04-02 08:22:24
Joomla !是一个流行的内容管理系统(CMS),它是仅次于Wordpress的第二大流行的CMS。到2017年,约有3.3%的网站使用Joomla !作为他们的CMS。本文介绍了如何在Ubuntu 16.04上一键安装Joomla ! 步骤1:安装Apache 更新存储库列表。 apt-get update 安装Apache web服务器。 apt-get install apache2 使用 LAMP stack 一键安装包安装Joomla!,我们需要安装MySQL并将其链接到PHP。 apt-get install mysql-server php7.0-mysql 您将被提示输入一个MySQL密码。输入安全的根密码。 执行MySQL安装, /usr/bin/mysql_secure_installation 当被要求输入密码时,输入刚刚创建的MySQL密码。继续安装过程。 Would you like to setup VALIDATE PASSWORD plugin? [Y/N] N Change the root password? [Y/N] N Remove anonymous users? [Y/N] Y Disallow root login remotely? [Y/N] Y Remove test database and access to it? [Y

在Ubuntu 16.04上使用Apache安装phpBB

假如想象 提交于 2020-04-02 08:06:14
PhpBB是一个开源的公告板程序。本文将向您展示如何在Ubuntu 16.04上在Apache webserver上安装phpBB。它是使用phpBB 3.2.1编写的,但是这里提供的说明可能也适用于新版本的phpBB。 先决条件 本文假设您已经使用Ubuntu 16.04创建了一个Vultr云计算实例,并以root身份登录。 步骤1:安装Apache 更新存储库列表。 apt-get update 安装Apache web服务器。 apt-get install apache2 步骤2:安装MySQL phpBB在一个LAMP上运行。在安装phpBB之前,您需要安装MySQL和PHP。 apt-get install mysql-server php7.0-mysql 输入上述命令后,将提示输入MySQL密码。输入您选择的任何密码。 完成安装。 /usr/bin/mysql_secure installation 你会被要求输入密码。输入您刚刚创建的密码并继续安装。 Would you like to setup VALIDATE PASSWORD plugin? [Y/N] N Change the root password? [Y/N] N Remove anonymous users? [Y/N] Y Disallow root login remotely? [Y/N]

JavaWeb数据库应用开发基础

扶醉桌前 提交于 2020-04-02 06:13:50
JavaWeb数据库应用 JavaWeb数据库应用开发的几种方式 一、JSP+JDBC 二、JSP+Servlet(+JDBC) 三、JSP+Servlet+DAO(+JDBC) 四、JSP+Servlet+DAO(+JDBC)+JavaBean JavaWeb数据库应用开发的几种方式 以下总结了课程中学习的四种JavaWeb数据库应用开发方式,其中第前两种适合业务逻辑和功能简单的系统;后两种则是经典的MVC开发模式,推荐大家主要采用这种方式。此外,在有一定基础后可以学习使用主流开发框架,如Spring等,开发企业级应用。 一、JSP+JDBC 1.新建前端JSP页面,通过表单或超链接方式提交请求及参数到后端JSP页面。 2.新建后端JSP页面,导入JDBC相关包和类,连接数据库并接收前端请求参数,执行sql语句,最后输出结果并进行响应。 实验:参见实验db_ex1.jsp至db_ex5.jsp 二、JSP+Servlet(+JDBC) 1.新建前端JSP页面,通过表单或超链接方式提交请求及参数到servlet的URL(注意,servlet的URL地址可以进行配置)。 2.新建Servlet类,并配置URL映射。导入JDBC相关包和类,连接数据库并接收前端请求参数,执行sql语句,最后输出结果并进行响应。(注意

oracle 常用调优方法

你。 提交于 2020-04-02 05:57:25
Oracle 数据库应用系统的调优主要包括十个方面: (1)、优化 数据库 内存; (2)、在Oracle共享池中固定应用程序代码; (3)、优化数据存储; (4)、优化数据排序的技术; (5)、优化 SQL 语句; (6)、优化回退段; (7)、优化索引; (8)、优化磁盘I/O; (9)、定期生成数据库对象的状态统计信息; (10)、优化操作系统环境。 其实质就是降低CPU负载、改善I/O性能。 1、化磁盘I/O 数据库的作用就是实现对数据的 管理 和查询,所以必然存在对数据的大量读写操作,其I/O问题也往往是导致Oracle数据库性能问题的重要原因。 1.1、Oracle中I/O的产生 1.2、优化OS存储 一、在UNIT环境下,采用裸设备(Raw Device)作为Oracle数据文件的存储设备比采文件系统(File System)存储Oracle数据文件具有较高的读写效率。 二、采用异步IO(Asynchronous IO)方式。在异步IO模式下,进程发出IO请求后无需等待IO完成,可以去处理其它事情;IO请求被放入一个队列中,一旦IO完成,系统会发出信号通知进程。异步IO可以使需要大量写的Oracle进程(如DBWn进程)将IO请求队列化,以充分利用硬件的IO带宽,从而使它们能最大程度实现并行处理。确认操作系统已经设置支持AIO后,还需要设置Oracle初始化参数