当前位置: 首页 > news >正文

杭州网站建设优化案例用什么网站可以做

杭州网站建设优化案例,用什么网站可以做,网页网站开发,wordpress可视化函数目录 一、xml方式实现 1.介绍lombok插件 2.功能 3.步骤 3.1 idea安装插件(只做一次) 3.2 添加坐标 3.3 编写注解 4.核心类 4.1 QueryRunner 4.2 query() 查询 4.3 update() 增删改 5.配置文件applicationContext.xml 6.junit测试 6.1使用步骤 6.1.1 坐标 6.1.2…目录 一、xml方式实现 1.介绍lombok插件 2.功能 3.步骤 3.1 idea安装插件(只做一次) 3.2 添加坐标  3.3 编写注解 4.核心类 4.1 QueryRunner 4.2 query() 查询 4.3 update() 增删改 5.配置文件applicationContext.xml 6.junit测试 6.1使用步骤 6.1.1 坐标 6.1.2 注解(修饰方法) 二、annotation注解方式实现 1.控制层(cotroller) 2.业务层(service) 3.数据访问层(dao) 4.配置文件applicationContext.xml 三、configuration配置类方式实现 1.ApplicationConfig 2.DataConfig 替换applicationContext.xml 3.测试类 四、在xml基础上实现转账业务 1.同一个业务方法的多个dao方法公用一个connection对象 2.ThreadLocal 3.通过连接对象进行事务的统一管理 5.项目总结 一、xml方式实现 1.介绍lombok插件 dbUtil-阿帕奇提供操作数据库的插件 2.功能 对实体类自动动态生成getset无参有参 toString..... 3.步骤 3.1 idea安装插件(只做一次) 3.2 添加坐标  !--lombok-- dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId version1.18.26/version /dependency 3.3 编写注解 NoArgsConstructor AllArgsConstructor Data public class Account implements Serializable {private int aid;private String aname;private int amoney;public Account(String aname, int amoney) {this.aname aname;this.amoney amoney;} } 4.核心类 4.1 QueryRunner //操作数据库的核心类QueryRunner queryRunner;public void setQueryRunner(QueryRunner queryRunner) {this.queryRunner queryRunner;}4.2 query() 查询 Overridepublic void save(Account account) {try {queryRunner.update(insert into account(aname,amoney) value(?,?),account.getAname(),account.getAmoney());} catch (SQLException throwables) {throwables.printStackTrace();}} Override public void updateById(Account account) {try {queryRunner.update(udpate account set aname?,amoney? where aid?,account.getAname(),account.getAmoney(),account.getAid());} catch (SQLException throwables) {throwables.printStackTrace();} }Override public void deleteById(int id) {try {queryRunner.update(delete from account where aid?,id);} catch (SQLException throwables) {throwables.printStackTrace();} } 4.3 update() 增删改 Override public Account findByName(String name) {try {return queryRunner.query(select * from account where aname?,new BeanHandlerAccount(Account.class),name);} catch (SQLException throwables) {throwables.printStackTrace();}return null; }Override public ListAccount findAll() {try {return queryRunner.query(select * from account,new BeanListHandlerAccount(Account.class));} catch (SQLException throwables) {throwables.printStackTrace();}return null; }5.配置文件applicationContext.xml !--加载资源文件--context:property-placeholder locationjdbc.properties/context:property-placeholder!--注入数据源--bean iddataSource classcom.mchange.v2.c3p0.ComboPooledDataSourceproperty namedriverClass value${msg1}/propertyproperty namejdbcUrl value${msg2}/propertyproperty nameuser value${msg3}/propertyproperty namepassword value${msg4}/property/bean!--注入QueryRunner--bean idqueryRunner classorg.apache.commons.dbutils.QueryRunnerconstructor-arg nameds refdataSource/constructor-arg/bean!--注入dao--bean idmapperImp classcom.ztt.dao.AccountMapperImpproperty namequeryRunner refqueryRunner/property/bean!--注入service--bean idservice classcom.ztt.service.AccountServiceImpproperty namemapper refmapperImp/property/bean!--注入controller--bean idcontroller classcom.ztt.controller.AccountControllerImpproperty nameservice refservice/property/bean 6.junit测试 6.1使用步骤 6.1.1 坐标 !--单元测试-- dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope /dependency !--数据源--dependencygroupIdc3p0/groupIdartifactIdc3p0/artifactIdversion0.9.1.2/version /dependency 6.1.2 注解(修饰方法) Test可以运行的方法 BeforeTest运行之前 AfterTest运行之后 方式一 public class Test01 {ClassPathXmlApplicationContext applicationContext null;IAccountController controller null;Beforepublic void beforeMethod(){applicationContext new ClassPathXmlApplicationContext(applicationContext.xml);controller (IAccountController) applicationContext.getBean(controller);}Afterpublic void afterMethod(){applicationContext.close();}Testpublic void show1(){controller.save(new Account(张甜甜,2000));controller.save(new Account(许娜,2000));}Testpublic void show2(){ListAccount all controller.findAll();for (int i 0; i all.size(); i) {Account account all.get(i);System.out.println(account);}}} 方式二 RunWith(SpringJUnit4ClassRunner.class) ContextConfiguration(locations classpath:applicationContext.xml) public class Test02 {AutowiredIAccountController controller;Testpublic void show1(){controller.save(new Account(张甜甜,2000));controller.save(new Account(许娜,2000));}Testpublic void show2(){ListAccount all controller.findAll();for (int i 0; i all.size(); i) {Account account all.get(i);System.out.println(account);}}Testpublic void show3(){controller.transfer(张甜甜,许娜,100);} }二、annotation注解方式实现 1.控制层(cotroller) Controller(controller) public class AccountControllerImp implements IAccountController {AutowiredIAccountService service; 2.业务层(service) Service public class AccountServiceImp implements IAccountService{AutowiredIAccountMapper mapper; 3.数据访问层(dao) Repository public class AccountMapperImp implements IAccountMapper{//操作数据库的核心类AutowiredQueryRunner queryRunner; 4.配置文件applicationContext.xml !--加载资源文件--context:property-placeholder locationclasspath:jdbc.properties/context:property-placeholder!--注入数据源--bean iddataSource classcom.mchange.v2.c3p0.ComboPooledDataSourceproperty namedriverClass value${msg1}/propertyproperty namejdbcUrl value${msg2}/propertyproperty nameuser value${msg3}/propertyproperty namepassword value${msg4}/property/bean!--注入QueryRunner--bean idqueryRunner classorg.apache.commons.dbutils.QueryRunnerconstructor-arg nameds refdataSource/constructor-arg/bean!--扫描--context:component-scan base-packagecom.ztt/context:component-scan 测试类同上 三、configuration配置类方式实现 在三层框架的基础上新建一个包config,用来写配置类 1.ApplicationConfig Configuration ComponentScan(basePackages com.ztt) Import(DataConfig.class) public class ApplicationConfig { } 2.DataConfig 替换applicationContext.xml Configuration PropertySource(value classpath:jdbc.properties) public class DataConfig {Value(${msg1})private String driverClass;Value(${msg2})private String jdbcUrl;Value(${msg3})private String user;Value(${msg4})private String password;// bean iddataSource classcom.mchange.v2.c3p0.ComboPooledDataSource // property namedriverClass value${msg1}/property // property namejdbcUrl value${msg2}/property // property nameuser value${msg3}/property // property namepassword value${msg4}/property // /beanBeanpublic DataSource dataSource(){try {ComboPooledDataSource comboPooledDataSource new ComboPooledDataSource();comboPooledDataSource.setDriverClass(driverClass);comboPooledDataSource.setJdbcUrl(jdbcUrl);comboPooledDataSource.setUser(user);comboPooledDataSource.setPassword(password);return comboPooledDataSource;} catch (PropertyVetoException e) {e.printStackTrace();}return null;}// bean idqueryRunner classorg.apache.commons.dbutils.QueryRunner // constructor-arg nameds refdataSource/constructor-arg // /beanBeanpublic QueryRunner queryRunner(){return new QueryRunner(dataSource());}}3.测试类 四、在xml基础上实现转账业务 目的业务层进行事务管理 1.同一个业务方法的多个dao方法公用一个connection对象 2.ThreadLocal 3.通过连接对象进行事务的统一管理 ConnectionUtil连接工具类 public class ConnectionUtil {//装配数据源DataSource dataSource;public void setDataSource(DataSource dataSource) {this.dataSource dataSource;}//线程区域对象ThreadLocalConnection threadLocalnew ThreadLocalConnection();//获取连接public Connection createCon(){Connection connection null;try {//1.获取线程内的连接对象connectionthreadLocal.get();//2.判断if(connectionnull){connectiondataSource.getConnection();//创建连接threadLocal.set(connection);//保存}return connection;} catch (SQLException throwables) {throwables.printStackTrace();}return connection;}//移除连接public void removeCon(){threadLocal.remove();//移除连接}}TransactionUtil事务管理工具类 public class TransactionUtil {//注入连接工具类ConnectionUtil connectionUtil;public void setConnectionUtil(ConnectionUtil connectionUtil) {this.connectionUtil connectionUtil;}//开启事务public void beginTx(){try {connectionUtil.createCon().setAutoCommit(false);} catch (SQLException throwables) {throwables.printStackTrace();}}//提交事务public void commitTx(){try {connectionUtil.createCon().commit();} catch (SQLException throwables) {throwables.printStackTrace();}}//回滚事务public void rollbackTx(){try {connectionUtil.createCon().rollback();} catch (SQLException throwables) {throwables.printStackTrace();}}//关闭事务public void closeTx(){try {connectionUtil.createCon().close();//关闭事务connectionUtil.removeCon();//移除事务} catch (SQLException throwables) {throwables.printStackTrace();}} }AccountMapperImp public class AccountMapperImp implements IAccountMapper{//操作数据库的核心类QueryRunner queryRunner;public void setQueryRunner(QueryRunner queryRunner) {this.queryRunner queryRunner;}//注入连接工具ConnectionUtil connectionUtil;public void setConnectionUtil(ConnectionUtil connectionUtil) {this.connectionUtil connectionUtil;} AccountServiceImp public class AccountServiceImp implements IAccountService{IAccountMapper mapper;public void setMapper(IAccountMapper mapper) {this.mapper mapper;}//装配TransactionUtil transactionUtil;public void setTransactionUtil(TransactionUtil transactionUtil) {this.transactionUtil transactionUtil;}Overridepublic void transfer(String sourceName, String targetName, int money) {try {transactionUtil.beginTx();//1.查询数据Account sourceAccount mapper.findByName(sourceName);Account targetAccount mapper.findByName(sourceName);//2.转账sourceAccount.setAmoney(sourceAccount.getAmoney()-money);targetAccount.setAmoney(targetAccount.getAmoney()money);//3.修改数据库mapper.updateById(sourceAccount);int a10/0;//模拟异常mapper.updateById(targetAccount);transactionUtil.commitTx();} catch (Exception e) {e.printStackTrace();transactionUtil.rollbackTx();} finally {transactionUtil.closeTx();}} AccountControllerImp public class AccountControllerImp implements IAccountController {IAccountService service;public void setService(IAccountService service) {this.service service;}Overridepublic void transfer(String sourceName, String targetName, int money) {service.transfer(sourceName,targetName,money);}public void save(Account account) {service.save(account);} 配置文件applicationContext.xml 在原有的基础上注入连接工具类、事务工具类、以及在业务层注入事务管理工具类 !--连接工具类-- bean idconnectionUtil classcom.ztt.util.ConnectionUtil property namedataSource refdataSource/property /bean!--事务工具类-- bean idtransactionUtil classcom.ztt.util.TransactionUtil property nameconnectionUtil refconnectionUtil/property /bean!--注入dao-- bean idmapperImp classcom.ztt.dao.AccountMapperImp property namequeryRunner refqueryRunner/property /bean!--注入service-- bean idservice classcom.ztt.service.AccountServiceImp property namemapper refmapperImp/property property nametransactionUtil reftransactionUtil/property /bean!--注入controller-- bean idcontroller classcom.ztt.controller.AccountControllerImp property nameservice refservice/property /bean 测试方法 Testpublic void show3(){controller.transfer(张甜甜,许娜,100);} 5.项目总结 1.事务管理应该由service层进行实现 代码优化 目的业务层进行事务管理 1.同一个业务方法的多个dao方法公用一个connection对象 2.ThreadLocal 3.通过连接对象进行事务的统一管理
http://www.hkea.cn/news/14355106/

相关文章:

  • 南昌地宝网招聘信息网最新招聘网站网站怎么优化关键词排名
  • 文学网站模板下载哈尔滨优化网站方法
  • 子网站如何做k2 wordpress
  • 产品网站更新内容上海网站建设安全
  • 新广告法 做网站的书写网站建设策划书
  • 闵行区网站制作河北住房和城乡建设厅网站电话
  • 私人网站建设成本软件开发外包公司哪个好
  • 网站建设公司的前景房地产设计公司
  • 万维网域名注册网站邯郸网站建设哪家专业
  • 钓鱼网站图片亚洲国产中文域名查询
  • 吴江专业的网站建设潍坊建设部门管理网站
  • 温州市建设安监局网站wordpress利用视频引流
  • qq空间做网站做网站南京
  • 做网站怎么插音乐建筑公司需求发布网站
  • 云图书馆平台网站建设网站的空间
  • 带后台管理的网站模板wordpress免费汽车配件企业主题
  • 网站模板 博客网站建设费用会计处理
  • 网站制作 视频淮南网络建站公司
  • 中型电商网站维护费用开发做一个网站的流程
  • 建站服务器济南专业网站建设咨询
  • 软件公司网站模板网站开发定制企业
  • 有交做拼多多网站的吗加盟网页制作
  • 美食网站首页设计做网站的重点目标
  • 织梦网站建设实验报告网上做衣服的网站有哪些
  • 成都网站设计推荐柚米有人用dw做网站吗
  • 滑县住房和城乡建设局网站南昌做网站设计
  • 滨江道网站建设中国做外贸网站有哪些
  • 平台网站建设ppt模板广告网站推广销售
  • 网站推广分销系统什么网站做贸易好
  • 网站科普信息化建设的意义网站建设怎么样工作室