发表于: 2018-03-31 00:29:53

1 624




一、今天完成的事情

使用Spring建立Hello World

一切还算顺利,在这期间学会了注入依赖

假定有接口A和A的实现B,那么就会执行这一段代码A a=new B();这个时候必然会产生一定的依赖,然而出现接口的就是为了解决依赖的,但是这么做还是会产生耦合,我们就可以使用依赖注入的方式来实现解耦。在Ioc中可以将要依赖的代码放到XML中,通过一个容器在需要的时候把这个依赖关系形成,即把需要的接口实现注入到需要它的类中,这可能就是“依赖注入”说法的来源了。


--------------------------------------------构造器注入------------------------------------------------------------

那么我们的目的是这样的,A a=new B();现在我们在定义一个类C,下面就是C和A的关系,C为了new出一个A接口的实现类

那么如何去new呢,定义一个类D,在D中调用C的构造方法的时候new B();即

这样我们在C中就不会产生A和B的依赖了,之后如果想改变A的实现类的话,直接可以修改D中的构造方法的参数就可以了,很简单,也解决了耦合。这种方式就是最常说的构造器注入。




  •  使用JDBC进行增删改查


复习了MySQL的一些基本语法,基本都忘光了,刚开始进行更新数据的时候,没有添加更新条件,结果把所有的列全部给替换了。进行删除操作的时候,也是没有添加删除条件,一直运行错误。都是因为基础不牢啊。

SELECT

SELECT 语句用于从表中选取数据。

语法:SELECT 列名称 FROM 表名称

语法:SELECT * FROM 表名称

-- 表station取个别名叫s,表station中不包含 字段id=13或者14 的,并且id不等于4的 查询出来,只显示id
SELECT s.id from station s WHERE id in (13,14) and id not in (4);

-- 从表 Persons 选取 LastName 列的数据
SELECT LastName FROM Persons

-- 从表 users 选取 id=3 的数据,并只拉一条数据(据说能优化性能)
SELECT * FROM users where id=3 limit 1

-- 结果集中会自动去重复数据
SELECT DISTINCT Company FROM Orders
-- 表 Persons 字段 Id_P 等于 Orders 字段 Id_P 的值,
-- 结果集显示 Persons表的 LastName、FirstName字段,Orders表的OrderNo字段
SELECT p.LastName, p.FirstName, o.OrderNo FROM Persons p, Orders o WHERE p.Id_P = o.Id_P

-- gbk 和 utf8 中英文混合排序最简单的办法
-- ci是 case insensitive, 即 “大小写不敏感”
SELECT tag, COUNT(tag) from news GROUP BY tag order by convert(tag using gbk) collate gbk_chinese_ci;
SELECT tag, COUNT(tag) from news GROUP BY tag order by convert(tag using utf8) collate utf8_unicode_ci;

UPDATE

Update 语句用于修改表中的数据。

语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

-- update语句设置字段值为另一个结果取出来的字段
update user set name = (select name from user1 where user1 .id = 1 )
where id = (select id from user2 where user2 .name='小苏');
-- 更新表 orders 中 id=1 的那一行数据更新它的 title 字段
UPDATE `orders` set title='这里是标题' WHERE id=1;

INSERT

INSERT INTO 语句用于向表格中插入新的行。

语法:INSERT INTO 表名称 VALUES (值1, 值2,....)

语法:INSERT INTO 表名称 (列1, 列2,...) VALUES (值1, 值2,....)

-- 向表 Persons 插入一条字段 LastName = JSLite 字段 Address = shanghai
INSERT INTO Persons (LastName, Address) VALUES ('JSLite', 'shanghai');
-- 向表 meeting 插入 字段 a=1 和字段 b=2
INSERT INTO meeting SET a=1,b=2;
--
-- SQL实现将一个表的数据插入到另外一个表的代码
-- 如果只希望导入指定字段,可以用这种方法:
-- INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;
INSERT INTO orders (user_account_id, title) SELECT m.user_id, m.title FROM meeting m where m.id=1;

-- 向表 charger 插入一条数据,已存在就对表 charger 更新 `type`,`update_at` 字段;
INSERT INTO `charger` (`id`,`type`,`create_at`,`update_at`) VALUES (3,2,'2017-05-18 11:06:17','2017-05-18 11:06:17') ON DUPLICATE KEY UPDATE `id`=VALUES(`id`), `type`=VALUES(`type`), `update_at`=VALUES(`update_at`);

DELETE

DELETE 语句用于删除表中的行。

语法:DELETE FROM 表名称 WHERE 列名称 = 值

-- 在不删除table_name表的情况下删除所有的行,清空表。
DELETE FROM table_name
-- 或者
DELETE * FROM table_name
-- 删除 Person表字段 LastName = 'JSLite'
DELETE FROM Person WHERE LastName = 'JSLite'
-- 删除 表meeting id 为2和3的两条数据
DELETE from meeting where id in (2,3);


Connection conn =null;   
Statement stmt = null;

Class.forName(Driver);       // 加载驱动程序

conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/ideadb?" +

"useUnicode=true&characterEncoding=utf-8&useSSL=false","root","root");  //建立数据库连接池

stmt = (Statement) conn.createStatement();  //由当前数据库连接生成一个数据操作对象


 //用这个数据操作对象进行数据库操作

stmt.executeUpdate("INSERT INTO idea VALUES ('3','Lily','1123')");   // 执行数据库新增操作

stmt.executeUpdate("UPDATE idea SET name='Lily',password='123456'WHERE id='1'");    // 执行数据库更新操作

 stmt.executeUpdate("DELETE FROM ideadb.idea WHERE password='1234'");    // 执行数据库删除操作

conn.close();   //关闭数据连接







二、明天计划的事情:

基础还是太差了,需要更多的去学习基础知识,不然看什么都是一头雾水。。先把基础的东西都过一遍,有个基本的概念了在进行下一步的学习。

三、遇到的问题:

 使用JDBC进行增删改查时,运行出错

   

 发现是设置路径时候有些问题,重新设置后问题解决



四、收获:(通过今天的学习,学到了什么知识)


 

类里面代码重复IDEA会标注黄色波浪线

POM里会将依赖黄色显示

进度:

任务开始时间:2018年3月1日

预计demo时间:2018年4月20日




返回列表 返回列表
评论

    分享到