/** * DriverManager 类是驱动程序管理器类 * 1)可以通过重载的getConnection()方法获取数据库的连接,较为方便 * 2)可以同时管理多个驱动程序:若注册了多个数据库连接, 则调用getConnection()方法时传入的参数不同, 则返回不同的数据库的连接: * * @throws Exception * * @throws Exception * / @Test public void testDriverManager() throws Exception…
public class DAO { // INSERT, UPDATE, DELETE 操作都可以包含在其中 public void update(String sql, Object... args) { Connection conn = null; PreparedStatement ps = null; try { conn = JDBCTools.getConnection(); ps = conn.prepareStatement(sql); for (int i = 0; i <…
鉴于之前的查询方法,在这里我们可以写一个通用的方法 /** * 鉴于 student.和customer查询的方法有好多相同之处,在此可以写一个通用的方法 */ public <T> T get(Class<T> clazz, String sql, Object... args) { // 不知道具体类型可以使用泛型!!! T entity = null; // 1.获取连接 Connection conn = null; PreparedStatement ps = null;…
ResultSetMetaData 类 调用ResultSet 的getMetaData()方法得到ResultSetMetaData 类对象: 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象: getColumnName(int column):获取指定列的名称 getColumnTypeName(int column):检索指定列的数据库特定的类型名称. getColumnDisplaySize(int column):指示指定列的最大标准宽度,以字符为单位. isNul…
/** * * 写一个查询Customer对象的方法 * */ public Customer getCustomer(String sql, Object... args) { Customer customer = null; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JDBCTools.getConnection(); ps = conn.prepareSta…
SQL基本操作 基本操作:CRUD,增删改查 将SQL的基本操作根据操作对象进行分类: 1.库操作 2.表操作 3.数据操作 库操作: 对数据库的增删改查 新增数据库: 基本语法: Create database 数据库名字[库选项]: 库选项:用来约束数据库,分为两个选项:1.字符集设定:charset/character set 具体字符集(数据存储的编码格式,中文常用字符集gbk和utf8.).2.校对集设定:collate 具体校对集(数据比较的规则). 例如:…
public class BeanUtilsTest { /** * Java 类的属性: * 1.在JavaEE中,Java类的属性通过getter,setter来定义: get,set方法,去除 * get,set后,后字母小写即为J啊哪类的属性 * 2.而以前的那个属性,即成员变量,称之为字段 * 3.而操作java类的属性有一个工具包:beanutils * 1)setProperty() * 2)getProperty() * 搭建环境:需要同时加入:commons-beanutils…
方式一: 1.创建一个Driver实现类的对象 2.准备连接数据库的基本信息:url,user,password 3.调用Driver接口的connect(url,info)获取数据库连接 * Driver 是一个接口:数据库厂商必须提供实现的接口,能从其中获取数据库的连接. 1.加入mysql驱动 * 1)解压mysql-connector-java-5.1.7.zip * 2)在当前项目下新建lib目录 * 4)右键bulid-path,add to * buildpath 加入到类路径下…
public class testGetKeyValue { /** * 取得数据库自动生成的主键 */ @Test public void testGeneratedKeys() { Connection conn = null; PreparedStatement ps = null; ResultSet rs=null; try { conn = JDBCTools.getConnection(); String sql = "INSERT INTO customers(name,emai…
public class MetaDatatest { /** * DatabaseMetaData 是描述 数据库的元数据对象 可以由Connection得到 */ @Test public void testDatabaseMetaData() { Connection conn = null; ResultSet rs = null; try { conn = JDBCTools.getConnection(); DatabaseMetaData data = conn.getMetaDa…
public Student getStudent(String sql, Object... args) { // 查询Student对象 Student stu = null; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JDBCTools.getConnection(); ps = conn.prepareStatement(sql); // 填充占位符 for…
之前的更新方法 public static void update(String sql) { Connection conn = null; Statement statement = null; try { conn = JDBCTools.getConnection(); statement = conn.createStatement(); statement.executeUpdate(sql);// attention... } catch (Exception e) { e.pri…
reparedStatement 是 Statement 的子接口 * ①需要预编译 SQL 语句:PreparedStatement ps = conn.preparedStatement(sql); * ②填充占位符:setObject(int index);//index 从 1 开始 * ③execute() / executeUpdate() ; executeQuery(); 返回一个 ResultSet * * 1.替换原来的 Statement,实现增删改和查的操作 –>Stat…
/** * ResultSet: 结果集. 封装了使用 JDBC 进行查询的结果. * 1. 调用 Statement 对象的 executeQuery(sql)可以得到结果集. * 2. ResultSet 返回的实际上就是一张数据表. 有一个指针指向数据表的第一行的前面. * 可以调用 next()方法检测下一行是否有效. 若有效该方法返回 true, 且指针下移. * 相当于 Iterator 对象的 hasNext() 和 next()方法的结合体 * 3. 当指针对位到一行时, 可以通…
/** * 写一个通用的更新方法 包括 INSERT. DELETE.UPDATE * 使用工具类 * @param sql */ public void update(String sql){ Connection conn=null; Statement statement=null; try { conn=JDBCTools.getConnection(); statement=conn.createStatement(); statement.executeUpdate(sql); }…
/** * 通过JDBC向之指定的数据表中插入一条记录 1 Statement :用于执行SQL语句的对象 * ==>通过Connection的createStatement()方法来获取 ==>通过executeUpdate(sql)可以执行SQL语句 * ==>传入的SQL可以是INSERT UPDATE DELETE 但不能是SELECT * * 2 Connection Statement 都是应用程序数据库服务器的连接资源,使用后一定要关闭 * */ @Test public…
本笔记整理自<SQL 基础教程>.<MySQL 必知必会>和网上资料.个人笔记不保证正确. 一.复杂查询 视图 将 SELECT 查询包装成一个虚拟表,该虚拟表就被称为视图.(因为只是一个包装,因此视图的数据也会随着原表的更新而更新) 用途: 简化复杂的SQL查询,用它替换子查询,能降低查询的嵌套深度. SELECT 查询的重用,减少重复查询. ... 创建视图: CREATE VIEW <视图名称> (<视图列名1>, <视图列名2>... )…
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 分支:即是if-else和if-elif-else语句 循环:即是while 和 for循环 另外还有while-else和for-else结构 if-else和if-elif-else语句 1.if语句 elif语句和else语句没有括号,且后面要有“:”冒号2.以代码的缩进来表示层次关系(而不像C使用大括号哦)例子:3个数从大到小输出 num3 = 3 num4 =…
1.常规判断一个字符串是以什么开头,是否是数字的判断方式有: a.通过比较每个字符,注意比较是字符值(ASc码值),不是字面值 String s="); //判断每个字符数组的每个字符 char[] charArray = s.toCharArray(); ;i<charArray.length;i++){ //特别注意每个数字字符对应的asc码并不是自生的值,所以必须比较他们字符值,而不是字面值 System.');//ASC码值:48 ')//而不是小于0;大于9,是字符 //不是数字…
Xcode创建C++项目 1.新建一个MAC工程(command line tool) 2.导入头文件 3.修改文件后缀(*.m-->*.mm) 4.修改主函数中的OC代码为C++的代码   动态内存分配 #import <Foundation/Foundation.h>;#import <iostream>;using namespace std;int main(int argc,const char *argv[]){ int *p=new int(4);//分配内存…
Mysql语句优化--索引 一.开始优化前的准备 一)explain语句 当MySql要执行一个查询语句的时候,它首先会对语句进行语法检查,然后生成一个QEP(Query Execution Plan) QEP决定了MySql从底层存储引擎获取信息的方式. 语法:explain [extended | partitions] select ...... 或者:explain tableName (此时相当与desc语句) explain select * from artist where na…
变量.作用域和内存问题 一.基本类型和引用类型的值 基本类型值:简单的数据段 引用类型值:由多个值构成的对象 基本类型是按值访问的,引用类型是按引用访问的. 不能给基本类型的值添加属性,尽管不会报错. 当从一个变量向另一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中.不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象.复制操作结束后,两个变量实际上将引用同一个对象.因此,改变其中一个变量,就会影响另一个变量 ECMAScript…
我们知道,一种数据模型必须包含三个基本的部分: 构造机制(数据结构):主要描述数据的类型.内容.性质以及数据间的联系等. 运算机制(数据操作):主要描述在相应的数据结构上的操作类型和操作方式. 约束机制(数据约束):主要描述数据结构内数据间的语法.词义联系.他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确.有效和相容. 作为数据库的一种数据模型,关系模型提供了一组完整性规则或限制.完整性约束用于确定关系数据库里数据的准确性和一致性. 在关系型数据库里,完整性约束包括域完整性.实…
GET与POST的区别 1.GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间用&连接:POST是把提交的数据放在HTTP的body中. 2.GET提交的数据大小有限制(协议中未明确对url的长度进行限制,在真正实现中,url的长度会受到服务器端以及浏览器端的限制),POST提交的数据没有限制. HTTP状态码 1XX  提示信息 - 表示请求已被成功接收,继续处理 2XX  成功 - 表示请求已被成功接收,理解,接受 3XX  重定向 - 要完成请求必须进行更进一步的处理 4…
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 到此处下载jdk,并安装.(选择合适的版本下载,本例Windows 64位) JDK安装完成后,需要进行环境变量的配置,才能对程序进行编译和运行.   配置环境变量(可以先试验是否配置好) 首先在文本编辑器(如记事本)编写好java代码后,以后缀名为.java保存文件,可以到命令行界面进行执行. 假设hello.java文件在D…
数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 )[表选项]; If not exists:如果表名不存在,那么就创建,否则不执行创建代码,实现检查功能. 表选项:控制表的表现 1.字符集:charset/character 具体字符集:--保证表中数据存储的字符集. 2.校对集:collate 具体校对集: 3.存储引擎:engine 具体的存…
关系型数据库概念: 1.什么是关系型数据库? 关系型数据库:是一种建立在关系模型(数学模型)上的数据库 关系模型:一种所谓建立在关系上的模型. 关系模型包含三个方面: 1.数据结构:数据存储的问题,二维表(有行和列). 2.操作指令集合:所有SQL语句. 3.完整性约束:表内数据约束(字段与字段),表与表间约束(外键). 2.关系型数据库的设计? 关系型数据库:从需要存储的数据需求中分析,如果是一类数据(实体)应该设计成一张二位表 表是由表头(字段名:用来规定数据的名字)和数据比分组成(实际存储…
一.函数返回值1.什么是函数返回值    函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变参(不定参)arguments function sum (a,b) { var result=0; var i=0; for(i=0;i<arguments.length;i++) { result+=arguments(i); } alert(resulet); } sum(12,5,7,5,5…
linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ctrl + c 也可以强行停止. 2. du :显示文件及目录大小 # du 文件 # du -h 文件:人类易读,显示文件大小(带单位) # du -s 目录名   :不展开,只显示目录实际大小.   # ls -lh :查看当前目录下所有文件的大小       # du -sh 3.df :…
[笔记]MySQL的基础学习(二) MySQL 老男孩  一 视图 视图其实就是给表起个别名 1.创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM A WHERE nid > 4 2.删除视图 格式:DROP VIEW 视图名称 DROP VIEW V1 3.修改视图 格式:ALTER VIEW 视图名称 AS SQL语句 ALTER VIEW v1 AS SELET A.nid, B. NAME F…