这是我参与 8 月更文挑战的第 3 天,活动详情查看: 8月更文挑战
这两天新搭建一个环境,用xml配置文件来处理一些bean,突然发现一些很基础的东西在用了注解以后忘了很多,这里正好从前记录了一些笔记,翻开看看,首先,本次案例是一个连接数据库的案例,我做了三个版本,一个是普通调用,高耦合;一个是配置文件形式的,一个是注解形式的,对库表进行增删改查。
1.普通调用形式的
需求:此次需要一个c3p0的包,
我将连接数据库的连接信息写在了配置文件(C3p0-cconfig.xml)中,
注意此处的jdbcurl的地址,我就在此处报错的,xml中&为特殊符,需要用&;代替,另外useSSL要置为false,否则会出现sql报错,(我的是这样,不知道别人的是不是),那么问题来了,该如何获取该配置文件的信息呢?此时我们建立一个C3p0的单元类来获取,
通过连接数据库来获取数据源,再通过持久层(daoimpl)来获取该链接;
我在此就展示遍历所有和插入吧;注意插入时sql中的字段属性防止插不进去;再通过服务层servimpl来调用,注意此处customer是domain层用来初始化字段的类
接下来进行测试
2.配置文件形式的
由上,配置文件形式的与普通形式的差不太多,就是将连接数据库的部分以bean.xml配置文件形式调用;
注意此处的runner的id,由于QueryRunner没有set方法,故不能使用property来进行配置,只能使用构造函数方法来使用;除了解耦和测试调用配置,其他都一样。
此处就粘贴这些不一样的部分;;;;;在运行时他给我报了日志错误,没办法,只能乖乖的导入log4j的jar包,并在网上copy了一份log4j的配置文件,完美解决,比第一个还好使;
3.注解形式的
嗯,此时备份一份bean.xml到本地,然后放心的删掉;log4j的配置文件别删;
这是第一批注解,按照教程来说实际上就四个;component,Autowired,Resource,value;Scope不属于本次范围;
我在此处需要新建一个config包
这是该项目的包情况,其实在config下只需要一个类就可以了,但我新建了一个空类Springconfig和一个配置类jdbcconfig,目的是配合一个注解@import,
那么如何在解耦且没有配置文件的情况下进行调用;首先测试类:
它是调用Springconfig了,为啥调用呢?(其实是把该类当成配置文件,即bean.xml)。再看
componentScan(“com.syy”)相当于扫描com.syy下的所有的包;相信已经看到了import导入的jdbcconfig配置类,对,我把连接配置全放那里了,就为验证import;
这里面的bean标签是为该方法命名,等同于xml配置文件;接下来从测试类调用icusservimpl,
此处的service,上面介绍了,只是一般用component,可是服务层一般用service来创建,持久层(dao)一般用Repository,
下面的Resource调用了icusdaoimpl,
Resource的runner是获取连接,下面daoimpl的方法与上面的不变!!!
以上就是调用数据库的三种方法;
偶尔回归一下Spring的内容还是觉得很奇妙的