spring框架整合mybatis
1。引入依赖
spring mybatis mybatis-spring 整合jar mysql driud lombok log4j
2。建表
3。开发实体类
4。DAO接口
5。Mapper映射文件
6.书写service接口
7。书写service实现类@Service 注入DAO相关对象
8。配置spring.xml
1、引入小配置文件
2、开启注解扫描
3、创建数据源对象 DruidDateSource dirverClassName url username password
4、创建 SqlSessionFactory 注入Datasource 注入Mapper配置文件位置
注入别名相关配置 typeAiaesPacage(这个单词是不对得,但是可以起到提醒是哪个得作用)
5、创建DAO MapperCannerConfigurer ,注入SqlSessionPactory 注入DAO接口所在包
6、创建事务管理器 DataSourceTransactionManger 注入DateSource
7、开启注解事务生效
2、springboot整合mybatis
1、引入依赖
springboot相关依赖
mybatis-springboot-starter 整合springboot
自动依赖了mybatis核心
mysql
druid
lombok
这里注意不是一个公司得东西要指定版本号
<!-- 整合mybatis得--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency>
<!-- druid数据源得-->
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.23</version> </dependency>
<!-- 数据库连接得-->
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
<!-- lombok不是必须得-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
2、配置springboot配置文件整合mybatis
蓝色得是必须得。
spring:
mvc:
view:
prefix: /
suffix: .jsp
# 数据源
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/text?serverTimezone=UTC&characterEncoding=UTF-8
username: root
password: 123456
mybatis:
mapper-locations: classpath:com/chinaunicom/mapper/*.xml
type-aliases-package: com.chinaunicom.entity #别名同样为类名或者类名字母小写 User |user俩个都行
#上面得是给SqlSessionFactory起别名
3、入口类加入DAO接口扫描注解
@SpringBootApplication @MapperScan("com.chinaunicom.dao") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
4、建表
1,hua,14,2020-08-12 2,bai,13,2020-08-10
5、实体类
@Data @Accessors(chain = true) @AllArgsConstructor @NoArgsConstructor public class User { private String id; private String name; private Integer age; private Date bir; }
6、DAO接口
//写泛型类是因为不知道操作得是哪个类,让都可以操作 public interface BaseDAO<T> { void save(T t);//增 void update(T t); //改 void delete(String id); //删 T findById(String id); //查 List<T> finsAll();//查全部 Long findTotalCounts(); //分页查询总条数 //参数1:起始条数 参数2:每页显示记录数据 List<T> findByPage(@Param("start") Integer start, @Param("size") Integer size); //这里得@Param是因为要用mybatis传多个参数,所以用@Param传过来 // @Param是MyBatis所提供的(org.apache.ibatis.annotations.Param),作为Dao层的注解, // 作用是用于传递参数,从而可以与SQL中的的字段名相对应,一般在2=<参数数<=5时使用最佳。 } //BaseDAO
@Repository
public interface UserDAO extends BaseDAO<User> { } //UserDAO接口
7、Mapper配置文件
创建mapper文件:https://blog.csdn.net/zhangxl123liang/article/details/80968400 (摘自别人)
创建了以后每次都直接new mapper配置文件就行
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.chinaunicom.dao.UserDAO"> <insert id="save" parameterType="User"> insert into text values (#{id},#{name},#{age},#{bir}) </insert> <select id="findAll" resultType="User"> select id,name,age,bir from text </select> </mapper>
8、Service接口
public interface UserService { void save(User user); List<User> findAll(); }
l
9、SerciceImpl 用@Service @Transactional控制事务 注入DAO
@Service @Transactional public class UserServiceImpl implements UserService { @Autowired private UserDAO userDAO; @Override public void save(User user) { // user.setId(UUID.randomUUID().toString()); userDAO.save(user); } @Override @Transactional(propagation = Propagation.SUPPORTS) public List<User> findAll() { return userDAO.findAll(); } }
9、controller控制层
@Controller @RequestMapping("user") public class UserController { @Autowired private UserService userService; //添加 @RequestMapping("save") public String save(User user){ userService.save(user); return "redirect:/user/findAll"; } //查询所有 @RequestMapping("findAll") public String findAll(Model model){ List<User> users = userService.findAll(); model.addAttribute("users",users); return "showAll"; } }
最后结束了。http://localhost:9090/ssm/user/findAll