![](https://img-blog.csdnimg.cn/20190923111329750.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
一起学习持久层
西方契约
科技改变生活,学无止境,加油(博客只是为了记录学习笔记,方便复习,不一定完全正确,仅供参考,一起学习,加油)
展开
-
MYSQL创建数据库,切换数据库,创建表,给表添加属性,
先创建一个数据库create database demo1;使用数据库use demo1;在数据库中创建一个表create table user2(添加表的每一列的 属性id int primary key auto_increment,username varchar(20) unique,password varchar(20) not null,age原创 2017-10-31 11:56:52 · 3598 阅读 · 0 评论 -
jdbc资源的释放,增删改操作
7 资源释放:ResultSet 结果集Connection 连接Statement SQL语句Connection 对象尽晚创建,尽早释放三个都要写在finally 里面,If(rs != null){Try{Rs.close();}catch (SQLException e){e.printStackTrace();}rs原创 2017-10-31 20:12:01 · 610 阅读 · 0 评论 -
jdbc工具类实例,案例,工具类抽取
11 JDBC 工具类的抽取package jdbc; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement; //JDBC的工具类pu原创 2017-10-31 20:13:09 · 280 阅读 · 0 评论 -
配置文件之属性文件,sql漏洞的原因,sql注入的解决办法和原理,preparedStatement的增删改查语句,
13 配置文件:属性文件:格式:扩展名是 .properties内容: key = value 在工具类中获取文件14 SQL漏洞的原因: 存在or关键字和-- 注释15 解决方法 preparedStatement 预处理(会对关键词进行转译)编写SQL语句(预先编译,只能在问号的地方才能输入内容(并且一个问号输入的内容是一个字符串),并且即使有关原创 2017-10-31 20:19:00 · 468 阅读 · 0 评论 -
jdbc的事务管理,连接池的概念
2 JDBC 事务的管理:setAutoCommit( bollean); true 会自动提交,false不会自动提交Commit() ; 提交Rollback(); 回滚(在获得连接之后)开启事务:用获得的连接对象调用setAutoCommit(false);conn.setAutoCommit(false);执行完(try的内容了在try的最后)需要提交事务Conn.commit();在(如原创 2017-10-31 20:21:14 · 256 阅读 · 0 评论 -
自定义连接池的实现;自定义连接池的问题,自定义连接池的优化,
4 自定义连接池的实现:编写一个类实现DataSource接口重写getConnection方法,初始化提供多个连接,存在内存中(定义一个集合,用于存储连接对象)获取连接 connection conn = 集合对象.remove() ;获得移出的连接对象归还连接 connlist.add(conn);将移出的连接对象 重新添加到连接集合中 编写归还的连接方法原创 2017-10-31 20:25:32 · 456 阅读 · 0 评论 -
常用连接池
常用连接池:7 Druid 开源连接池:Druid是阿里旗下的开源连接池产品,使用非常简单,可以与Spring框架进行快速整合。8 Druid的设置文件的文件名没有规定但是属性文件中的key要一定的。9 c3p0 是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDbC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等原创 2017-11-04 12:27:26 · 398 阅读 · 0 评论 -
QueryRunner 核心运行类;在一般情况下如果执行CRUD的操作; 使用核心类QueryRunner 对数据库进行 增删改
11 QueryRunner 核心运行类构造方法:QueryRunner();QueryRunner(dataSource ds);方法:Update(Connection conn, String sql, Object... Params);(执行 增删改操作)Query( String sql, ResultSetHandler rsh, Object...原创 2017-10-31 20:32:18 · 561 阅读 · 0 评论 -
DBUtils 的使用 之 ResultSetHandler的实现 类;ArrayListHandler: 将多条记录封装到一个装有Object[]的List集合中。BeanHandler:(常用)将
13 DBUtils的使用 之 ResultSetHandler的实现类ArrayHandler :将一条记录封装到一个数组当中,这个数组应该是Object[]类型的;@Testpublic void demo1()throws SQLException{QueryRunner queryRunner =new QueryRunner(JDBCUtils2.getD原创 2017-10-31 20:36:13 · 2397 阅读 · 0 评论 -
BeanListHandler:(常用)将多条记录封装到一个装有JavaBean的List集合中;MapHandler: 将一条记录封装到一个Map集合中,Map的key是列名,Map的value就是
BeanListHandler:(常用)将多条记录封装到一个装有JavaBean的List集合中@Test//BeanListHandler:将多条记录封装到有JavaBean的List集合中//一条记录就是一个java的对象(javaBean的对象)。如果多条记录(多个Java的对象),将多个java对象封装到一个List集合中public void demo4()throws原创 2017-10-31 20:37:42 · 4462 阅读 · 0 评论 -
MapListHandler:将多条记录封装到一个Map集合中;ColumnListHandler;将某列的值封装到List集合中,例如一列name属性等
MapListHandler:将多条记录封装到一个Map集合中,Map的key是列名,Map的value就是表中列 的记录的值。并将多条记录封装到一个装有Map的List集合中。@Test//MapListHandler:将多条记录封装到一个Map集合中,//Map的key是列名,Map的value就是表中列 的记录的值。//并将多条记录封装到一个装有Map的List集合中。原创 2017-10-31 20:38:41 · 7053 阅读 · 0 评论 -
ScalarHandler: 将单个值封装、 例如select count(*),求内容的条数;KeyedHandler:将多条记录封装到一个Map集合的Map集合中。并且外面的Map集合是可以指定的
ScalarHandler:将单个值封装、例如select count(*),求内容的条数@Testpublic void demo8()throws SQLException{QueryRunner queryRunner =new QueryRunner(JDBCUtils2.getDataSource());Object obj =queryRunner.原创 2017-10-31 20:39:38 · 17417 阅读 · 2 评论 -
handler
ArrayHandler:new ArrayHandler();返回 Object[] bojes;ArrayListHandler: new ArrayListHandler();返回List list返回的是Object数组 和 存储Object数组的List集合BeanHandler:new BeanHandler(Account.class);返回:Account原创 2017-10-31 20:40:19 · 338 阅读 · 0 评论 -
转载:MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)
我也是菜鸟,也是新手,一起学习,一起进步,加油;转载于地址:http://www.cnblogs.com/yuxiuyan/p/6511837.htmlMySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的“存储引擎”(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引擎的区别。这次就简短侃一下存储引擎那些事儿。...转载 2019-03-29 12:45:25 · 355 阅读 · 0 评论 -
Mybatis的xml映射文件的常用标签含义解析使用$ 与 # 区别,delete,if,choose (when, otherwise),trim (where, set),foreach,bind
sql– 可被其他语句引用的可重用语句块。 ;相当于 定义一个通用的sql,在xml文件的其他sql里进行引用;<sql id="valid"> where valid = 1 </sql><select id = 'queryUser'>select * from user <include refid = 'valid'></incl...转载 2019-05-02 15:44:27 · 1129 阅读 · 0 评论 -
Mybatis封装Map类型的查询结果集时key值大小写的转换【这个只有在ORACAL下出现,mysql数据库没有这个情况】
在使用mybatis封装返回值类型为map的结果集时会自动将key值变为大写,不便于向前端返回。【这个只有在ORACAL下出现,mysql数据库没有这个情况】<select id="queryId" parameterType="Integer" resultType="java.util.HashMap"> select per_id as...转载 2019-05-02 16:01:22 · 1144 阅读 · 0 评论 -
statement 执行SQL;statement 执行SQL 和 执行批处理; ResultSet 结果集
4 statement 执行SQLCreateStatement 获取Statement创建执行SQL语句的对象CallableStatement 执行数据库存储过程PrepareStatement 执行SQL对SQL进行预处理,解决SQL注入漏洞5 statement 执行SQL 和 执行批处理execute(String sql)执行查询,修改添原创 2017-11-02 12:59:39 · 1003 阅读 · 0 评论 -
JDBC 连接数据库的一套规范;jdbc驱动的加载,jdbc连接数据库;
JDBC 连接数据库的一套规范规范一般指(一堆工具类和一堆接口)1 java Data Base Connectivity 数据库连接 驱动:两个设备(应用)之间通信的桥梁加载驱动:Class.forName(“com.mysql.jdbc.Driver”);2 注解 @Test测试方法的要求:没有返回值,没有参数,public修饰的,在上面加上@Test注解//注册驱原创 2017-10-31 20:08:20 · 288 阅读 · 0 评论 -
mysql 事务的概念,事务的特性,事务的隔离级别的设置,
16 事务的概念:事务:指定是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么全部成功,要么全部失败。开启事务:start transaction;提交事务:commit;回滚事务:rollback; 回滚到开启事务之前的状态事务的特性:原子性:事务的不可分割性,组成事务的各个逻辑单元不可分割,要么都成功,要么都失败一致性:事务执行前后,数据的完整性保持一致隔离性:事原创 2017-11-02 12:58:08 · 173 阅读 · 0 评论 -
mysql给列的属性赋值,修改列属性,删除记录,删除所有记录,查询表的记录,去除重复的,总和查询,条件查询,模糊查询,关联查询,范围查询
给列的属性赋值;insert into user2 value(1,'张','asd',23,'1995-05-05');insert into user2 value(null,'wang','sssasd',20,'1995-05-05');insert into user2 value(null,'李','asd',13,'1995-05-05');修改列的值;修改某一列原创 2017-10-31 12:35:32 · 584 阅读 · 0 评论 -
mysql排序查询,多条件排序查询,聚合函数的使用,分组统计查询,
排序查询:在条件查询后面 使用order by 字段名称 (默认)升序asc降序desc通过年龄查询排序select * from user2 order by age;select * from user2 order by age desc;多条件排序。逗号隔开即可select * from user2 order by birthday desc,age asc;原创 2017-10-31 12:38:32 · 2607 阅读 · 0 评论 -
MySQL数据库概述;mysql数据库的安装。MySQL数据库的存储方式概述;SQL概述:结构化查询语言
1 MySQL数据库概述:是一个关系型数据库管理系统数据库就是一个文件系统通过标准的SQL语句获取数据,关系型数据库存放的是实体之间的关系,ER模型图:E:Entity实体 R:Relational 关系 (实体用方框表示,属性用圆表示,关系用菱形表示)关系型数据库:保存的就是实体之间的关系。常见的关系型数据库:MySQL 占的比例大 免费Oracle 占的原创 2017-10-31 12:55:41 · 535 阅读 · 0 评论 -
SQL操作数据库,创建数据库,查看所有的数据库,对数据库进行增删改,查看当前使用的数据库
4 SQL操作数据库,对数据库进行CRUD的操作:创建数据库:create database 数据库名称 character set 字符集collate 字符集校对规则(校对规则主要是排序规则)查看所有数据库:show databases;查看某一个数据定义的信息(定义时的语法):show create【创造,产生】database 数据库名称修改数据库:alte原创 2017-10-31 12:57:07 · 710 阅读 · 0 评论 -
SQL创建表之数据类型;
SQL创建表之数据类型:创建一个或多个表:create【创建】table【表】 表名称(字段名称 字段类型(长度) 约束,字段名称 字段类型(长度) 约束);例:create table表名称( 字段名称 int(20))字段类型:一个实体对应一个表,一个实体属性对应表的一个字段。Java中的类型 MySQL中类型 tiny【微小的】byte/short/i原创 2017-10-31 19:31:43 · 12472 阅读 · 0 评论 -
mysql创建表,同时加上约束,SQL查看所有表和查看某个表结构;sql删除表
create biao;create table user(id int primary key auto_increment,username varchar(20) unique,password varchar(20) not null)约束作用:保证数据的完整性单表约束类:主键约束:primary【主要的】 key 必须包含的主键值(主键约束默认就是唯原创 2017-10-31 19:34:31 · 193 阅读 · 0 评论 -
mysql修改表,添加列,修改类型,修改列,修改表名,修改表的字符集,sql添加记录,重启mysql命令
9 SQL 修改表:修改表,添加列:alter table 表名 add 列名 类型(长度) 约束;修改表,修改列类型,长度和约束:alter table 表名 modify 类名 类型(长度) 约束;修改表,修改列:alter table 表名 drop 列名修改表,修改列名称:alter table表名 change旧列名 新列名 类型(长度) 约束;修原创 2017-10-31 19:36:05 · 464 阅读 · 0 评论 -
SQL 添加中文记录;SQL 删除记录;删除所有内容(记录);delete和truncate的区别
11 SQL 添加中文记录Select * from 文件名;查看文件内容12 SQL 修改记录:Update 表名 set列名=值,列名=值[where 条件];注意事项:1.值的类型与列的类型一致,2值的最大长度不能超过列设置的最大长度。3字符串类型和日期类型需要添加单引号;修改某一列的所有值:update user2 set password=’qwer’ whe原创 2017-10-31 19:37:26 · 573 阅读 · 0 评论 -
sql查询过程
14 SQL 查询操作-基本查询15 SQL查询过程:首先找到from语句后面的表遍历整张表,取出每条记录判断每条记录是否是条件成立,如果成立将其放入临时的结果集中按照select 关键字后的字段列表,从临时的结果集中取出数据,发送给用户原创 2017-10-31 19:39:17 · 787 阅读 · 0 评论 -
mysql常用语句,增删改查,五十多种常用sql语句的格式。
创建数据库:create database 数据库名称 [character set字符集 collate字符集校对规则];查看所有数据库:show databases;查看某个数据库在定义时的信息: show create database 数据库名称;修改数据库:alter database 数据库名称 character set字符集 collate原创 2017-10-31 19:40:08 · 498 阅读 · 0 评论 -
mysql密码的重置,数据库的备份和还原;
1 重置MySQL的密码:停止mysql服务——》黑窗口 mysqld --skip-grant-tables ——》从新开一个cmd——》mysql -u root -p ——》黑窗口输入 use mysql;回车 ;update user set password = password(‘新密码’); where user = ‘root’; ——》关闭两个黑窗口 然后结束mysqld原创 2017-11-01 09:01:53 · 1607 阅读 · 0 评论 -
多表设计之间的关系;一对一,一对多,多对多
5 多表设计之间的关系一对多的关系:例如 一个部门对多个员工,一个员工只能属于一个部门多对多的关系:例如 学生选课,一个学生可以选多门课程,一门可能可以被多个学生选择一对一的关系:例如 一个人只能有一个身份证,一个身份证只能有一个人6 表与表一对多的关系:在一对多时 多的表中添加一个外键,用来和一的表的主键。产生联系。7 多对多关系介绍:多对对建表原则:创建第三张表原创 2017-11-01 09:04:51 · 21151 阅读 · 3 评论 -
多表查询的分类,连接查询,内连接,外连接,交叉连接,子查询
9 多表查询的分类连接查询:内连接:inner join (inner 可以省略)显示内连接:在SQL中显示调用了inner join关键字 Select * from 表1 inner join 表2 on 关联条件;隐式内连接:在SQL中没有调用 inner join关键字 Select * from 表1,表2 where 关联条件外连接:outer join原创 2017-11-01 09:06:09 · 1446 阅读 · 0 评论 -
多表查询内连接与外连接的区别;多表之间内连接;(常用)(只连接两个表都有效数据); 多表之间的外连接:(查询所有的内容); 多表内连接:(显示和隐式结果是一样的,得到的是交集的部分)
11 多表之间内连接;(常用)(只连接两个表都有效数据)显示内连接: c是 表一的匿名 s 是表二的匿名Select * from 表1 c inner join 表2 s on c.cid = s.cno;隐式内连接:Select * from 表1 c,表2 s where c.cid = s. cno12 多表之间的外连接:(查询所有的内容)左原创 2017-10-31 19:49:05 · 2917 阅读 · 1 评论 -
多表查询之子查询,in,any,all,exists,
15 多表查询之子查询带in(子条件是否包含,包含则筛选出来)的子查询:查询学生生日在91年之后的学生Select cno from student where birthday > ‘1991-01-01’;查询学生生日在91年之后的班级的信息。Select * from classes where cid in(Select con from student where b原创 2017-10-31 19:52:49 · 1021 阅读 · 0 评论 -
mysql创建数据库和用户并授权
转自:https://www.cnblogs.com/chenjianxiang/p/7053830.html1.通过mysql数据库的user表查看用户相关信息mysql> use mysqlReading table information for completion of table and column namesYou can turn off this ...转载 2019-07-15 19:59:50 · 354 阅读 · 0 评论