SpringBoot2.0集成Mybatis

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ptsx0607/article/details/88845728

在上一篇  https://blog.csdn.net/ptsx0607/article/details/88818688 的基础上,集成mybatis

先贴一下总的代码目录结构

一 、pom.xml文件

1 添加添加mybatis依赖

<!-- 添加mybatis依赖 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.2.0</version>
</dependency>

2 添加oracle数据库驱动包(初次添加会报错,解决办法如下)

<!-- oracle数据库驱动包 -->
<!-- 
初次添加时会报错,原因是Oracle的ojdbc.jar是收费的,所以maven的中央仓库中没有这个资源,
只能通过配置本地库才能加载到项目中去。 
解决方法:找到ojdbc6.jar文件路径,添加到maven,也就是运行下面的语句,注意:不是在C盘下运行,是在ojdbc6.jar所在目录下(oracle目录下有该jar包)
通过cmd命令窗口,执行下面的语句,
    mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=ojdbc6.jar
    -->
<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>11.2.0.1.0</version>
</dependency>

3 配置数据源 阿里的 durid

<!-- 配置数据源 阿里的 durid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.20</version>
    <scope>runtime</scope>
</dependency>

4 添加fastjson依赖

<!-- 添加fastjson依赖 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.30</version>
</dependency>

至此,pom.xml文件改造完成,下面贴一下全部的pom.xml文件内容

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.lee</groupId>
	<artifactId>demo001</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo001</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<!-- 添加mybatis依赖 -->
		<dependency>
		     <groupId>org.mybatis.spring.boot</groupId>
		     <artifactId>mybatis-spring-boot-starter</artifactId>
		     <version>1.2.0</version>
		</dependency>
		<!-- 添加MySQL驱动 -->
		<dependency>
	         <groupId>mysql</groupId>
	         <artifactId>mysql-connector-java</artifactId>
	    </dependency>
    	<!-- oracle数据库驱动包 -->
    	<!-- 
    	初次添加时会报错,原因是Oracle的ojdbc.jar是收费的,所以maven的中央仓库中没有这个资源,
    	只能通过配置本地库才能加载到项目中去。 
    	解决方法:找到ojdbc6.jar文件路径,添加到maven,也就是运行下面的语句,注意:不是在C盘下运行,是在ojdbc6.jar所在目录下(oracle目录下有该jar包)
    	通过cmd命令窗口,执行下面的语句,
    	 mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=ojdbc6.jar
    	 -->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.2.0.1.0</version>
		</dependency>
		<!-- 配置数据源 阿里的 durid -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.20</version>
			<scope>runtime</scope>
		</dependency>
		<!-- 添加fastjson依赖 -->
		<dependency>
	        <groupId>com.alibaba</groupId>
	        <artifactId>fastjson</artifactId>
	        <version>1.2.30</version>
	    </dependency>
    
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

二、新建application.yml 文件配置数据源,直接贴了,后面注释部分是MySQL配置(备忘)

spring:
    datasource:
        name: orcl
        url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
        username: charge_0201
        password: charge3728
        # 使用druid数据源
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: oracle.jdbc.OracleDriver
        filters: stat
        maxActive: 20
        initialSize: 1
        maxWait: 60000
        minIdle: 1
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: select 'x'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxOpenPreparedStatements: 20

#设置mybatis的mapper和model扫描路径        
mybatis:
    mapperLocations: classpath:*.xml
    typeAliasesPackage: com.example.demo.model
    configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#更多配置请参见:http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
#spring:
#    datasource:
#        name: test
#        url: jdbc:mysql://127.0.0.1:3306/test
#        username: root
#        password: 111111
#        # 使用druid数据源
#        type: com.alibaba.druid.pool.DruidDataSource
#        driver-class-name: com.mysql.jdbc.Driver
#        filters: stat
#        maxActive: 20
#        initialSize: 1
#        maxWait: 60000
#        minIdle: 1
#        timeBetweenEvictionRunsMillis: 60000
#        minEvictableIdleTimeMillis: 300000
#        validationQuery: select 'x'
#        testWhileIdle: true
#        testOnBorrow: false
#        testOnReturn: false
#        poolPreparedStatements: true
#        maxOpenPreparedStatements: 20

补充,如果不想用.yml文件,可以直接改造 application.properties 文件,内容如下:

spring.datasource.name=orcl
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
spring.datasource.username=charge_0201
spring.datasource.password=charge3728
#\u4F7F\u7528druid\u6570\u636E\u6E90
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.filters=stat
spring.datasource.maxActive=20
spring.datasource.initialSize=1
spring.datasource.maxWait=60000
spring.datasource.minIdle=1
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=select 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxOpenPreparedStatements=20

#\u8BBE\u7F6Emybatis\u7684mapper\u548Cmodel\u626B\u63CF\u8DEF\u5F84        
mybatis.mapperLocations=classpath:*.xml
mybatis.typeAliasesPackage=com.example.demo.model
#控制台打印sql日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

三、实体类UserEntity.java:

package com.example.demo.model;

public class UserEntity {
	
	private Long id;
	private String username;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	private String password;

}

四、UserDao.java和mapper文件UserDao.xml 

UserDao.java如下:

package com.example.demo.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.example.demo.model.UserEntity;

@Mapper
public interface UserDao {
	List<UserEntity> selectAll();

}

UserDao.xml 如下:

<?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.example.demo.dao.UserDao" >
  <!-- 字段与实体的映射 -->
  <resultMap id="BaseResultMap" type="com.example.demo.model.UserEntity">
    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="username" property="username" jdbcType="VARCHAR" />
    <result column="password" property="password" jdbcType="VARCHAR" />
  </resultMap>
  <!-- 根据条件查询,全部 -->
  <select id="selectAll" resultMap="BaseResultMap">
    select * from tab_users
  </select>
</mapper>

五、数据库脚本

create table tab_users
(
id long ,
username varchar2(40),
password varchar2(40)
);
insert into tab_users values(1,'张三','123456');
insert into tab_users values(2,'李四','lisi');
insert into tab_users values(3,'王五','wangwu');

六、controler增加访问方法

代码如下

package com.example.demo.controler;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.example.demo.dao.UserDao;
import com.example.demo.model.UserEntity;

@Controller
@RequestMapping("hello")
public class Hello {
	
	@Autowired
	UserDao userDao;
	
	@ResponseBody
	@RequestMapping("test")
	String test(String username) {
		return "你好 "+username;
	}
	
	@ResponseBody
	@RequestMapping("/login")
	String selectUser() {
		List<UserEntity> userList = userDao.selectAll();
		String userJson = JSON.toJSONString(userList);
		return userJson;

	}
}

七、启动项目

访问http://localhost:8080/hello/login 

结束。 

猜你喜欢

转载自blog.csdn.net/ptsx0607/article/details/88845728