Spring4- 04-Spring简易整合Mybatis -导入jar包/ 正常编写pojo/ 编写spring 配置文件
笔记要点&出错分析与总结
POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,
工程组织
(AirportService为机场服务站接口,定义了 List<Airport> show();
package com03.service; import com03.bean.Airport;
import org.apache.ibatis.annotations.Select; import java.util.List; public interface AirportService { List<Airport> show();
}
AirportserviceImpl 是该接口的提供具体的实现类,重写接口的方法,并有get/set 方法
public List<Airport> show() {
return airportMapper.selectAll();
}
package com03.service; import com03.bean.Airport;
import com03.mapper.AirportMapper; import java.util.List; public class AirportServiceImpl implements AirportService{
private AirportMapper airportMapper;
@Override
public List<Airport> show() {
return airportMapper.selectAll();
} public AirportMapper getAirportMapper() {
return airportMapper;
} public void setAirportMapper(AirportMapper airportMapper) {
this.airportMapper = airportMapper;
}
}
AirportMapper接口 实现从数据库查询信息返回List<Airport> )
package com03.mapper;
import com03.bean.Airport;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface AirportMapper {
@Select("select * from airport")
public List<Airport> selectAll();
}
具体结构图,并1.导入mybatis所有jar 包 ,spring基本包spring-jdbc,spring-tx,spring-aop,spring-web,spring整合mybatis 的包等.



数据库组织
id airplane_no time price takeoff_id land_id
------ ----------- ------ ------ ---------- ---------
1 波音747 123 100 1 3
2 波音858 56 300 3 2

0.定义Bean类 Airport
package com03.bean;
public class Airport {
private int id;
private String portName;
private String cityName;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPortName() {
return portName;
}
public void setPortName(String portName) {
this.portName = portName;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
@Override
public String toString() {
return "Airport [id=" + id + ", portName=" + portName + ", cityName=" + cityName + "]";
}
}
1.定义接口 (见上面)
2.定义Spring的XML映射文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--配置Mybatis的基本登陆信息,连接信息;除了事务方面的-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/ssm"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--扫描相当于mybatis.xml中的mapper的package标签; 扫描指定文件夹下的全部配置文件/接口,会自动为接口创建对象-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--要扫描那个包-->
<property name="basePackage" value="com03.mapper"></property>
<!--和factory 产生关系-->
<property name="sqlSessionFactory" ref="factory"></property>
</bean>
<!--ref="airportMapper" ,上一步扫描完全局配置和接口文件后,会自动创建该bean-->
<!--由Spring -->
<bean id="airportService" class="com03.service.AirportServiceImpl">
<property name="airportMapper" ref="airportMapper"></property>
</bean>
</beans>
3.编写测试代码 test01 (配置文件不在默认的SRC下, 在 com03/conf/applicationContext.xml)
package com03.test; import com03.bean.Airport;
import com03.service.AirportServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.List; public class test01 {
public static void main(String[] args) {
//创建Spring 容器 ,默认去根目录开始寻找
ApplicationContext ac=new ClassPathXmlApplicationContext("com03/conf/applicationContext.xml");
String[] names = ac.getBeanDefinitionNames();
for (String name:names
) {
System.out.println("★Spring自动创建了:"+" "+name);
}
AirportServiceImpl bean = ac.getBean("airportService", AirportServiceImpl.class);
List<Airport> list = bean.show();
System.out.println("★"+list);
}
}
测试结果
★Spring自动创建了: dataSource
★Spring自动创建了: factory
★Spring自动创建了: org.mybatis.spring.mapper.MapperScannerConfigurer#0
★Spring自动创建了: airportService
★Spring自动创建了: airportMapper
★Spring自动创建了: org.springframework.context.annotation.internalConfigurationAnnotationProcessor
★Spring自动创建了: org.springframework.context.annotation.internalAutowiredAnnotationProcessor
★Spring自动创建了: org.springframework.context.annotation.internalRequiredAnnotationProcessor
★Spring自动创建了: org.springframework.context.annotation.internalCommonAnnotationProcessor
★Spring自动创建了: org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor
★Spring自动创建了: org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessor
DEBUG 12-08 10:44:15,527 JDBC Connection [com.mysql.jdbc.JDBC4Connection@399f45b1] will not be managed by Spring (SpringManagedTransaction.java:87)
DEBUG 12-08 10:44:15,532 ==> Preparing: select * from airport (BaseJdbcLogger.java:139)
DEBUG 12-08 10:44:15,556 ==> Parameters: (BaseJdbcLogger.java:139)
DEBUG 12-08 10:44:15,572 <== Total: 3 (BaseJdbcLogger.java:139)
DEBUG 12-08 10:44:15,572 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3eb7fc54] (SqlSessionUtils.java:193)
DEBUG 12-08 10:44:15,572 Returning JDBC Connection to DataSource (DataSourceUtils.java:327)
★[Airport [id=1, portName=首都机场, cityName=北京], Airport [id=2, portName=南阳机场, cityName=南阳], Airport [id=3, portName=虹桥机场, cityName=上海]]
Spring4- 04-Spring简易整合Mybatis -导入jar包/ 正常编写pojo/ 编写spring 配置文件的更多相关文章
- spring+mybits 整合所需jar包的下载路径(亲测有效)
1.spring jar包:http://repo.springsource.org/libs-release-local/org/springframework/spring/5.0.0.RELEA ...
- Spring Boot 整合mybatis时遇到的mapper接口不能注入的问题
现实情况是这样的,因为在练习spring boot整合mybatis,所以自己新建了个项目做测试,可是在idea里面mapper接口注入报错,后来百度查询了下,把idea的注入等级设置为了warnin ...
- spring boot 整合 mybatis 以及原理
同上一篇文章一样,spring boot 整合 mybatis过程中没有看见SqlSessionFactory,sqlsession(sqlsessionTemplate),就连在spring框架整合 ...
- Spring环境搭建之:导入jar包、配置文件名称及放置位置
Spring环境搭建之:导入jar包.配置文件名称及放置位置 现在项目开发中spring框架应用的还是比较多的,自己用的还不太熟练,每次用的时候总配置半天,总有些配置弄错,就找个时间总结以下,方便以后 ...
- Spring Boot整合Mybatis并完成CRUD操作
MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作. 为什么要使用Mybatis?我们需要掌握Mybatis吗? 说的官 ...
- Spring Boot整合Mybatis报错InstantiationException: tk.mybatis.mapper.provider.base.BaseSelectProvider
Spring Boot整合Mybatis时一直报错 后来发现原来主配置类上的MapperScan导错了包 由于我使用了通用Mapper,所以应该导入通用mapper这个包
- ssm框架整合---maven工具来导入jar包
ssm整合 一.导包(pom.xml文件) <?xml version="1.0" encoding="UTF-8"?> <project x ...
- Spring Boot系列(三):Spring Boot整合Mybatis源码解析
一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记 ...
- 太妙了!Spring boot 整合 Mybatis Druid,还能配置监控?
Spring boot 整合 Mybatis Druid并配置监控 添加依赖 <!--druid--> <dependency> <groupId>com.alib ...
随机推荐
- Java之整数运算
Java的整数运算遵循四则运算规则,可以使用任意嵌套的小括号.四则运算规则和初等数学一致.例如: public class Main { public static void main(String[ ...
- k8s pv,pvc无法删除问题
一般删除步骤为:先删pod再删pvc最后删pv 但是遇到pv始终处于“Terminating”状态,而且delete不掉.如下图: 解决方法: 直接删除k8s中的记录: 1 kubectl patch ...
- C#基于RabbitMQ实现客户端之间消息通讯实战演练
一.背景介绍和描述 MQ消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.何时需要消息队列?当你需要使用 ...
- 如何用Docker部署Spring Boot项目
1.idea中安装docker插件: 2.新建DockerFile,内容如下. # 基础镜像使用java FROM java:8 # 作者 MAINTAINER vic <test@163.co ...
- ABP vNext
一.简要介绍# ABP vNext 是 ABP 框架作者所发起的新项目,截止目前 (2019 年 8 月 20 日) 已经拥有 1400 多个 Star,最新版本号为 v 0.19.0,可以尝试用于生 ...
- [Python]MySQLdb for Python使用指南/Python的数据库操作
网站就是要和数据库进行交互,否则什么都不用做了...今天我们来看一个叫MySQLdb的库,这个用来和MySQL数据库进行交互.可以从这里获得这个库http://sourceforge.net/proj ...
- 【C++札记】类的继承
继承 面向对象的设计思想,类对数据做了封装,并可以加入访问权限,类的继承是面向对象思想的精髓.类的继承可以让新类从以有的类中获得已有的特征.原有类称为基类或父类,新类称为派生类或子类. 语法: cla ...
- SQL server 常见错误--登录连接失败和附加数据库失败
问题1:数据库软件登录连接不了,因为SQL server有部分服务没有开启,需要手动开启. 解决:计算机管理-->服务-->开启SQL server服务(具体那个自己慢慢试,就 ...
- JXOI2018
发现自己不会T3可以退群了 排序问题(组合.模拟) 可以发现Gobo Sort相当于在所有排列中随机选择一个,所以当第\(i\)个数出现次数为\(a_i\)时,期望的Sort次数就是\(\frac{( ...
- 雪花算法,生成分布式唯一ID
2.3 基于算法实现 [转载] 这里介绍下Twitter的Snowflake算法——snowflake,它把时间戳,工作机器id,序列号组合在一起,以保证在分布式系统中唯一性和自增性. snowfla ...