Spring boot 访问Mysql

先创建一张表

CREATE TABLE `account` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `money` double DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
INSERT INTO `account` VALUES ('1', 'aaa', '1000');
INSERT INTO `account` VALUES ('2', 'bbb', '1000');
INSERT INTO `account` VALUES ('3', 'ccc', '1000');
创建SpringBoot工程

这里开发环境选择idea
1 . File –> new –>Project

2 . 选择Spring initializr
这里写图片描述

3 . 选择加载web依赖
这里写图片描述

4 . 输入项目名称
这里写图片描述

5 . 创建完成

引入依赖

在pom文件引入spring-boot-starter-jdbc的依赖:

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

引入mysql连接类和连接池:

<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
</dependency>

<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.29</version>
</dependency>

配置application.yml文件,配置mysql的驱动类,数据库地址,数据库账号、密码信息。

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mysql
    username: root
    password: 877392053

创建Account(bean)

public class Account {
    private int id;
    private  String name;
    private  double money;


    public void setId(int id) {
        this.id = id;
    }
    public void setName(String name){
        this.name = name;
    }
    public void setMoney(double money){
        this.money = money;
    }


    public int getId() {
        return id;
    }
    public String getName(){
        return name;
    }

    public double getMoney() {
         return money;
    }
}

DAO接口

public interface IAccountDAO {
    int add(Account account);

    int update(Account account);

    int delete(int id);

    Account findAccountById(int id);

    List<Account> findAccountList();
}

数据库服务接口 IAccountService

public interface IAccountService {
    int add(Account account);
    int update(Account account);
    int delete(int id);

    Account findAccountById(int id);
    List<Account> findAccountList();
}

数据库操作实现类 AccountDaoImpl

@Repository
public class AccountDaoImpl implements IAccountDAO {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public int add(Account account) {
        return jdbcTemplate.update("insert into account(name,money) values(?, ?)",
                account.getName(),account.getMoney());
    }

    @Override
    public int update(Account account) {
        return jdbcTemplate.update("UPDATE account SET NAME=?,money=?,WHERE id=?",
                account.getName(),account.getMoney(),account.getId());
    }

    @Override
    public int delete(int id) {
        return jdbcTemplate.update("DELETE from TABLE account where id=?",id);
    }

    @Override
    public Account findAccountById(int id) {
        List<Account> list = jdbcTemplate.query("select * from account where id = ?", new Object[]{id}, new BeanPropertyRowMapper(Account.class));
        if(list!=null && list.size()>0){
            Account account = list.get(0);
            return account;
        }else{
            return null;
        }
    }

    @Override
    public List<Account> findAccountList() {
        List<Account> list = jdbcTemplate.query("select * from account", new Object[]{}, new BeanPropertyRowMapper(Account.class));
        if(list!=null && list.size()>0){
            return list;
        }else{
            return null;
        }
    }
}

数据库服务实现类 AccountService

@Service
public class AccountService implements IAccountService {
    //自动注入实现IAccountDAO接口的AccountDaoImpl类
    @Autowired
    IAccountDAO accountDAO;


    @Override
    public int add(Account account) {
        return accountDAO.add(account);
    }

    @Override
    public int update(Account account) {
        return accountDAO.update(account);
    }

    @Override
    public int delete(int id) {
        return accountDAO.delete(id);
    }

    @Override
    public Account findAccountById(int id) {
        return accountDAO.findAccountById(id);
    }

    @Override
    public List<Account> findAccountList() {
        return accountDAO.findAccountList();
    }
}

web控制器 DemoApplication

@SpringBootApplication
@RestController
@RequestMapping("/account")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @RequestMapping("/hello")
    public String hello(){
        return "hello";
    }


    @Autowired
    IAccountService accountService;

    @RequestMapping(value = "/list",method = RequestMethod.GET)
    public List<Account> getAccounts(){
        return accountService.findAccountList();
    }

    @RequestMapping(value = "/{id}",method = RequestMethod.GET)
    public  Account getAccountById(@PathVariable("id") int id){
        return accountService.findAccountById(id);
    }

    @RequestMapping(value = "/{id}",method = RequestMethod.PUT)
    public  String updateAccount(@PathVariable("id")int id , @RequestParam(value = "name",required = true)String name,
                                 @RequestParam(value = "money" ,required = true)double money){
        Account account=new Account();
        account.setMoney(money);
        account.setName(name);
        account.setId(id);
        int t=accountService.update(account);
        if(t==1){
            return account.toString();
        }else {
            return "fail";
        }
    }

    @RequestMapping(value = "",method = RequestMethod.POST)
    public  String postAccount( @RequestParam(value = "name")String name,
                                @RequestParam(value = "money" )double money){
        Account account=new Account();
        account.setMoney(money);
        account.setName(name);
        int t= accountService.add(account);
        if(t==1){
            return account.toString();
        }else {
            return "fail";
        }

    }

}

使用Mybatis 访问 mysql 数据库

先添加mybatis依赖

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>

建表:

CREATE TABLE `trackAnalysisResult`(
`id` int(11) NOT NULL AUTO_INCREMENT,
`userid` varchar(32) NOT NULL,
`clusterCenter` varchar(64) DEFAULT NULL,
`lng` varchar(32) DEFAULT NULL,
`lat` varchar(32) DEFAULT NULL,
`pois` varchar(32) DEFAULT NULL,
`symbolized` varchar(32) DEFAULT NULL,
`date` DATE DEFAULT NULL,
PRIMARY KEY(`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

application.properties文件配置

spring.datasource.url = jdbc:mysql://localhost:3306/{你的数据库名}
spring.datasource.username = root
spring.datasource.password = {你的密码}
spring.datasource.driver-class-name = com.mysql.jdbc.Driver

Bean

创建Track

public class Track {
    int id;
    String userid;
    String clusterCenter;
    String lng;
    String lat;
    String pois;
    String synbolized;
    String date;

    public void setId(int id) {
        this.id = id;
    }

    public void setClusterCenter(String clusterCenter) {
        this.clusterCenter = clusterCenter;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public void setLat(String lat) {
        this.lat = lat;
    }

    public void setLng(String lng) {
        this.lng = lng;
    }

    public void setPois(String pois) {
        this.pois = pois;
    }

    public void setSynbolized(String synbolized) {
        this.synbolized = synbolized;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public int getId() {
        return id;
    }

    public String getClusterCenter() {
        return clusterCenter;
    }

    public String getDate() {
        return date;
    }

    public String getLat() {
        return lat;
    }

    public String getLng() {
        return lng;
    }

    public String getPois() {
        return pois;
    }

    public String getSynbolized() {
        return synbolized;
    }

    public String getUserid() {
        return userid;
    }
}

Mapper&Dao层

使用mybatis的注解方式,可以使DAO层和Mapper层结合在一起

@Mapper
public interface TrackMapper {

    @Insert("insert into trackAnalysisResult(userid,clusterCenter,lng,lat,pois,symbolized,date) values(#{userid},#{clusterCenter},#{lng},#{lat},#{pois},#{symbolized},#{date})")
    int insert(@Param("userid")String userid, @Param("clusterCenter")String clusterCenter, @Param("lng")String lng, @Param("lat")String lat, @Param("pois")String pois, @Param("symbolized")String symbolized, @Param("date")String date);

    @Delete("delete from trackAnalysisResult where id = #{id}")
    int deleteById(@Param("id")int id);

    @Delete("delete from trackAnalysisResult where userid = #{userid}")
    int deleteByUserid(@Param("userid")String userid);

    @Delete("delete from trackAnalysisResult where date = #{date}")
    int deleteByDate(@Param("date")String date);

    @Update("update trackAnalysisResult set symbolized=#{symbolized} where userid=#{userid} and clusterCenter=#{clusterCenter}")
    int update(@Param("symbolized")String symbolized,@Param("userid")String userid,@Param("clusterCenter")String clusterCenter);

    @Select("select * from trackAnalysisResult where userid = #{userid}")
    List<Track> selectByUserid(@Param("userid")String userid);

    @Select("select * from trackAnalysisResult")
    List<Track> selectAll();

}

Service层

创建service层进一步隔离数据库操作,解耦

@Service
public class TrackService {
    @Autowired
    TrackMapper trackMapper;

    public int insert(String userid,String clusterCenter,String lng,String lat,String pois,String symbolized,String date){
        return trackMapper.insert(userid,clusterCenter,lng,lat,pois,symbolized,date);
    }

    public int deleteById(int id){
        return trackMapper.deleteById(id);
    }

    public int deleteByUserid(String userid){
        return trackMapper.deleteByUserid(userid);
    }

    public int deleteByDate(String date){
        return trackMapper.deleteByDate(date);
    }

    public int update(String symbolized,String userid,String clusterCenter){
        return trackMapper.update(symbolized, userid, clusterCenter);
    }

    public List<Track> selectAll(){
        return trackMapper.selectAll();
    }

    public List<Track> selectByUserid(String userid){
        return trackMapper.selectByUserid(userid);
    }
}

Controller层

@RestController
@RequestMapping(value = "/track")
public class TrackController {
    @Autowired
    TrackService trackService;

    @RequestMapping(value = "/insert",method = RequestMethod.POST)
    public String Trackinsert(@RequestBody JSONObject reqJson){
        String userid = reqJson.getString("userid");
        String clusterCenter = reqJson.getString("clusterCenter");
        String lng = reqJson.getString("lng");
        String lat = reqJson.getString("lat");
        String pois = reqJson.getString("pois");
        String symbolized = reqJson.getString("symbolized");
        String date = reqJson.getString("date");
        int t = trackService.insert(userid,clusterCenter,lng,lat,pois,symbolized,date);
        if(t==1){
            return "success";
        }else{
            return "fail";
        }
    }

    @RequestMapping(value = "/deleteById",method = RequestMethod.DELETE)
    public String TrackDeleteById(@RequestBody JSONObject reqJson){
        String id = reqJson.getString("id");
        int t = trackService.deleteById(Integer.parseInt(id));
        if(t==1){
            return "success";
        }else{
            return "fail";
        }
    }

    @RequestMapping(value = "/deleteByUserid",method = RequestMethod.DELETE)
    public String TrackDeleteByUserid(@RequestBody JSONObject reqJson){
        String userid = reqJson.getString("userid");
        int t = trackService.deleteByUserid(userid);
        if(t==1){
            return "success";
        }else{
            return "fail";
        }
    }

    @RequestMapping(value = "/deleteByDate",method = RequestMethod.DELETE)
    public String deleteByDate(@RequestBody JSONObject reqJson){
        String date = reqJson.getString("date");
        int t = trackService.deleteByDate(date);
        if(t==1){
            return "success";
        }else{
            return "fail";
        }
    }

    @RequestMapping(value = "/update",method = RequestMethod.POST)
    public String update(@RequestBody JSONObject reqJson){
        String symbolized = reqJson.getString("symbolized");
        String userid = reqJson.getString("userid");
        String clusterCenter = reqJson.getString("clusterCenter");
        int t = trackService.update(symbolized, userid, clusterCenter);
        if(t==1){
            return "success";
        }else{
            return "fail";
        }
    }

    @RequestMapping(value = "/selectAll",method = RequestMethod.POST,produces = "application/json")
    public List<Track> selectAll(){
        return trackService.selectAll();
    }

    @RequestMapping(value = "/selectByUserid",method = RequestMethod.POST,produces = "application/json")
    public List<Track> selectByUserid(@RequestBody JSONObject reqJson){
        String userid = reqJson.getString("userid");
        return trackService.selectByUserid(userid);
    }

}

猜你喜欢

转载自blog.csdn.net/HUXINY/article/details/81289564