springboot整合数据源mybatis

springboot默认使用hikaricp连接池,如果要使用其他的连接池,如:druid,c3p0等等,需要另行配置。

首先要引入依赖

    
jdbc的启动器
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
mysql驱动
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>

2.配置参数在application.properties文件中配置mysql参数

server.port=8888
logging.level.org.springframework=DEBUG



spring.datasource.url=jdbc:mysql:///eesy
spring.datasource.username=root
spring.datasource.password=root

整合mybatis:

首先引入依赖:

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.2</version>
        </dependency>

第一个是mybatis的启动器

第二个是通用mapper

首先定义实体类

@Table:指定连接的数据库名字,默认是类的首字母小写
@Id:
@GeneratedValue(strategy = GenerationType.IDENTITY)

@Id: 
@Id 标注用于声明一个实体类的属性映射为数据库的主键列。该属性通常置于属性声明语句之前,可与声明语句同行,也可写在单独行上。 
@Id标注也可置于属性的getter方法之前。

@GeneratedValue: 
@GeneratedValue 用于标注主键的生成策略,通过strategy 属性指定。默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer对应identity,MySQL 对应 auto increment。 
在javax.persistence.GenerationType中定义了以下几种可供选择的策略: 
–IDENTITY:采用数据库ID自增长的方式来自增主键字段,Oracle 不支持这种方式; 
–AUTO: JPA自动选择合适的策略,是默认选项; 
–SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式 
–TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。

package cn.itcast.user.pojo;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;

@Table(name = "tb_user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String username;

    private String password;

    private String name;

    private Integer age;

    private Integer sex;

    private Date birthday;

    private Date created;

    private Date updated;

    public Integer getId() {
        return id;
    }

    public void setId(Integer 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;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public Date getUpdated() {
        return updated;
    }

    public void setUpdated(Date updated) {
        this.updated = updated;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", userName='" + username + '\'' +
                ", password='" + password + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", sex=" + sex +
                ", birthday=" + birthday +
                ", created=" + created +
                ", updated=" + updated +
                '}';
    }
}

2.定义mapper接口:使用@Mapper注解,声明这是个mapper接口,并且把这个 接口放入容器中管理,但是idea中可能会报错 ,因为这个注解他不认识,但是其实已经放入容器中了,继承   tk.mybatis.mapper.common.Mapper<T>  使用通用 Mapper

@Mapper
public interface UserMapper extends tk.mybatis.mapper.common.Mapper<User>{
}

3.编写service标红的使用的是通用 Mapper中的数据操作。

@Service
public class UserService {
    //这里报错是因为idea检查系统误报,因为UserMapper使用的是@Mapper注解,idea不认识,其实已经 在容器中了
    @Autowired
    private UserMapper userMapper;

    public User queryById(int id){
        return userMapper.selectByPrimaryKey(id);
    }
}

4.编写controller

@Autowired
    private UserService userService;

    @RequestMapping(value = "/findById",method = RequestMethod.GET)
    @ResponseBody  //返回json数据
    public User queryById(@RequestParam(name = "id",required = true)int id){

        return userService.queryById(id);
    }

猜你喜欢

转载自www.cnblogs.com/bozhengheng/p/12814951.html