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