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

做婚礼效果图的网站有哪些空气能空调如何做网站

做婚礼效果图的网站有哪些,空气能空调如何做网站,珠海企业医疗网站建设,安徽黄山旅游攻略框架整合spring的目的:把该框架常用的工具对象交给spring管理#xff0c;要用时从IOC容器中取mybatis对象。 在spring中应该管理的对象是sqlsessionfactory对象#xff0c;工厂只允许被创建一次#xff0c;所以需要创建一个工具类#xff0c;把创建工厂的代码放在里面… 框架整合spring的目的:把该框架常用的工具对象交给spring管理要用时从IOC容器中取mybatis对象。 在spring中应该管理的对象是sqlsessionfactory对象工厂只允许被创建一次所以需要创建一个工具类把创建工厂的代码放在里面后续直接调用工厂即可。 环境配置 先准备个数据库 CREATE TABLE student (id int NOT NULL,name varchar(30) COLLATE utf8mb3_bin DEFAULT NULL,age int DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb3 COLLATEutf8mb3_bin 依赖引入: !--spring需要的坐标--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.2.18.RELEASE/version/dependency!--2.mybatis需要的坐标--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.31/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactId !--为mybatis配置的数据源--version1.2.8/version/dependencydependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.3/version/dependency!--3.spring整合mybatis需要的--dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.1.9.RELEASE/version/dependencydependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion1.3.0/version/dependency 项目结构 创建相应的dao层service层,pojo层 pojo 对应数据库的student表的属性写相应的setter和getter还有tostring以及一个无参构造 public class seudent {private int id;private String name;private int age;public int getId() {return id;}public seudent() {}Overridepublic String toString() {return seudent{ id id , name name \ , age age };}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;} } dao层 实现对应的增删改查的接口语句还要写mapper映射与接口语句对应使mybatis能通过点的方式获取方法 public interface StudentDao {public ListStudent selectAll();public void insert(Student student);public int delete(int id); } 映射文件StudentDao.xml ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttps://mybatis.org/dtd/mybatis-3-mapper.dtd !--namespqce:名称空间id:sql语句的唯一标识resultType:返回结果的类型 -- mapper namespaceorg.example.dao.StudentDaoinsert idinsert parameterTypeorg.example.pojo.Studentinsert into student values(#{id},#{name},#{age});/insertdelete iddelete parameterTypeintdelete from student where id#{id};/deleteselect idselectAll resultTypeorg.example.pojo.Student parameterTypeorg.example.pojo.Studentselect * from student;/select/mapper service层 需要操作持久层或实现查询需要与dao层的方法对应 先写接口方法 public interface StudentService {public ListStudent findAll();public void add(Student student);public int remove(int id); }再写实现类需要调用Dao层的方法所以需要先获取一个StudentDao对象通过对象调用方法 package org.example.service.impl;import org.example.dao.StudentDao; import org.example.pojo.Student; import org.example.service.StudentService;import java.util.List;public class StudentServiceImpl implements StudentService {private StudentDao studentDao;public StudentDao getStudentDao() {return studentDao;}public void setStudentDao(StudentDao studentDao) {this.studentDao studentDao;}Overridepublic ListStudent findAll() {return studentDao.selectAll();}Overridepublic void add(Student student) {studentDao.insert(student);}Overridepublic int remove(int id) {return studentDao.delete(id);} }配置applicationContext.xml SqlSessionFactoryBean有一个必须属性dataSource另外其还有一个通用属性configLocation用来指定mybatis的xml配置文件路径。 其中dataSource使用阿里巴巴的druid作为数据源druid需要db.propertis文件的内容如下 jdbc.drivercom.mysql.cj.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/test1 jdbc.usernameroot jdbc.password234799 bean classorg.mybatis.spring.SqlSessionFactoryBeanproperty namemapperLocations valuemapper/*xml/ !--默认查找resources下xml--property namedataSource refdataSource/property nametypeAliasesPackage valueorg.example.pojo//bean!--使用阿里巴巴提供的druid作为数据源通过引入外部properties文件进行加载并使用${}参数占位符的方式去读取properties中的值--context:property-placeholder locationclasspath:db.properties/bean iddataSource classcom.alibaba.druid.pool.DruidDataSourceproperty namedriverClassName value${jdbc.driver}/property nameurl value${jdbc.url}/property nameusername value${jdbc.username}/property namepassword value${jdbc.password}//bean 还需要生成dao层接口实现类的bean对象 !--扫描接口包路径生成包下所有接口的代理对象并且放入spring容器中后面可以直接用自动生成mapper层(dao层)的代理对象--bean classorg.mybatis.spring.mapper.MapperScannerConfigurerproperty namebasePackage valueorg.example.dao//bean 还有service的接口实现类也要交给spring管理 service里面的依赖注入就交给spring来完成 !--spring管理其他bean studentDao是spring根据mybatis自动生成的对象--!--来自于MapperScannerConfigurer--bean classorg.example.service.impl.StudentServiceImpl idstudentServiceproperty namestudentDao refstudentDao//bean 在测试类中执行业务层操作 添加两个学生后查询一次所有元素输出然后删除一个学生后再一次查询一次所有元素输出成功输出如下图所示 public class Main {public static void main(String[] args) {ApplicationContext ctxnew ClassPathXmlApplicationContext(applicationContext.xml);StudentService studentService (StudentService)ctx.getBean(studentService);Student studentnew Student();student.setId(1);student.setName(yhy);student.setAge(18);Student student2new Student();student2.setId(2);student2.setName(yxc);student2.setAge(30);studentService.add(student);studentService.add(student2);ListStudent studentsstudentService.findAll();System.out.println(students);studentService.remove(2);studentsstudentService.findAll();System.out.println(students);} } 以上就是用XML的方式spring整合mybatis在applicationContext中进行了mybatis工具类的相关配置不需要mybatis的配置文件 接下来就是用注解的方式整合mybatis 就是在上面的条件下把applicationContext.xml配置文件当中的内容转换成注解 第一步 将service层的bean对象改用注解和组件扫描的方式创建表现为将原本的service的bean标签去除并在studentserviceImpl中加个service注解并定义一个名字方便主函数中调用 (组件扫描就是把所有加了相应注解的东西放到容器中去) 对于studentserviceImpl中的stduentDao对象使用Autowired实现自动装配同时setter和getter方法也可以删除了  在主文件中使用组件名获取bean不再是使用bean标签里面的id属性去获取如下 第二步 新建一个配置类SpringConfig.calss而不是使用配置文件加上 Configuration 表明是一个配置类 ComponentScan(value {org.example}) 扫包的标签 然后将配置文件里面的bean全部移植到SpringConfig中去 首先是SqlSessionFactoryBean对象写一个方法返回该对象对于SqlSessionFactoryBean需要的属性都在里面一一赋予它对于datasource先暂时置为空下面要先完成datasource的bean管理加上一个bean放入容器管理​​​​​​​  datasource的bean方法创建datasource依赖于外部的数据源druid所以又要先创建一个DruidDataSource的bean方法DruidDataSource又依赖于一个db.properties这里可以在配置类上使用一个注解PropertySource(db.properties)把需要的信息加载进来在里面再使用参数占位符${}的方式加载信息,再加上一个bean放入容器 ps:下面运行测试时发现不对劲不能使用PropertySource注解加载properties文件 上面第二步的依赖注入的流程图大概就是  第三步 将扫包的MapperScannerConfigurer也加入容器进行bean管理对于需要mapper接口的路径也一起作为参数给它 最后就是SpringConfig里面所有的信息 ps:经过下面测试三个方法都要加上static Configuration ComponentScan(value {org.example}) PropertySource(db.properties) public class SpringConfig {Beanpublic static SqlSessionFactoryBean sqlSessionFactoryBean() throws IOException {SqlSessionFactoryBean sbeannew SqlSessionFactoryBean();sbean.setTypeAliasesPackage(org.example.pojo);sbean.setDataSource(druidDataSource());sbean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(classpath:mapper/*.xml));return sbean;}Beanpublic static DruidDataSource druidDataSource(){DruidDataSource dataSourcenew DruidDataSource();dataSource.setPassword(${jdbc.password});dataSource.setUsername(${jdbc.username});dataSource.setUrl(${jdbc.url});dataSource.setDriverClassName(${jdbc.driver});return dataSource;}Beanpublic static MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer mapperScannerConfigurer new MapperScannerConfigurer();mapperScannerConfigurer.setBasePackage(org.example.dao);return mapperScannerConfigurer;} } 测试注解Spring整合mybatis的功能 测试里面出现了两个大的错误 第一个错误 Exception in thread main org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: ${jdbc.driver} ### The error may exist in file [F:\acwing——project\spring\tmp\mybatis_demo\spring02mybatis\target\classes\mapper\StudentDao.xml] ### The error may involve org.example.dao.StudentDao.selectAll ### The error occurred while executing a query 主要是Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: ${jdbc.driver} 经过debug发现不知为什么不能使用 PropertySource(value {db.properties}) 的方式引入properties文件后使用参数占位符只能使用字符串的方式 这是正确写法 第二个错误 该错误不会影响操作执行 Cannot enhance Configuration bean definition springConfig since its singleton instance has been created too early. 无法增强 Bean 定义 springConfigConfiguration因为它的单例实例创建得太早了。 经过查证是因为原因是当获取SqlSessionFactoryBean接口的bean时会调用SqlSessionFactoryBean()方法创建Bean,而调用该方法前同样需要先实例化SpringConfig,导致了SpringConfig在被增强之前被实例化了, 而如果把方法修饰为static,static方法属于类方法,就不会触发SpringConfig被提前实例化也就不会出现警告信息了. 在SpringConfig中的三个方法都是这种类型所以都要加上static。
http://www.w-s-a.com/news/611218/

相关文章:

  • 网站自建设需要买什么时候开始深圳市建筑市场信息公开平台
  • 平台营销型网站建设小城镇建设的网站文献
  • 燕郊个人做网站小企业网站模板
  • 网站ip需要备案新开河街做网站公司
  • 网站定制设计方案wordpress批量传图片
  • 做外贸兼职的网站设计福州网站开发私人
  • 金华建站模板目前国内有哪些网站做家具回收
  • 个人做网站还是公众号赚钱好部门网站建设和维护
  • 系列图标设计网站推荐建商城网站
  • 中牟建设工程信息网站黑龙江 哈尔滨
  • 网站设计基本结构wap自助建论坛网站
  • 专业番禺网站建设爱做网站外国
  • 深圳罗湖网站设计公司价格制作网站的公司办什么营业执照
  • 长清网站建设价格群辉NAS搭建wordpress
  • 变更股东怎样在工商网站做公示网站建设和网站优化哪个更重要
  • 西安手机网站python网站开发效率
  • 深圳建站的公司羽毛球赛事2022直播
  • j2ee网站开发搜索推广的流程
  • 网站目录结构图虚拟主机如何安装WordPress
  • 信产部网站备案保定软件开发网站制作
  • 东莞网站设计定做东莞网站建设最牛
  • 网站开发的软件天猫的网站导航怎么做的
  • 做链接哪个网站好网站建设平台方案设计
  • 资质升级业绩备案在哪个网站做网站建设方案费用预算
  • 做网站找哪个平台好wordpress 3.9 性能
  • 大兴模版网站建设公司企业网站备案案例
  • h5建站是什么wordpress客户端 接口
  • 济南自适应网站建设制作软件下载
  • 望都网站建设抖音广告投放收费标准
  • 网站制作软件排行榜上海市网站建设公司58