spring-mybatis框架结合数据库的增删改查

在项目中创建lib包,导入jar包

 建立项目结构为

 创建数据库

#使用数据库
use mydb;

#创建表
create table car(
cid int primary key auto_increment,
cnumber varchar(20),
type varchar(20),
owner varchar(20),
phone varchar(11),
mark varchar(50)
);

insert into car(cnumber,type,owner,phone,mark) values('豫A34G87','轿车','张三','13666666666','临时车');
insert into car(cnumber,type,owner,phone,mark) values('豫B38379','SUV','李四','1566666666','月卡');
insert into car(cnumber,type,owner,phone,mark) values('豫CR9703','卡车','王五','1888888888','年卡');

select * from car;

各层代码

创建bean层(实体类Car)

package com.chai.bean;

public class Car {
    public int cid;
    public String cnumber;
    public String type;
    public String owner;
    public String phone;
    public String mark;

    public int getCid() {
        return cid;
    }

    public void setCid(int cid) {
        this.cid = cid;
    }

    public String getCnumber() {
        return cnumber;
    }

    public void setCnumber(String cnumber) {
        this.cnumber = cnumber;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    @Override
    public String toString() {
        return "User{" +
                "cid=" + cid +
                ", cnumber='" + cnumber + '\'' +
                ", type='" + type + '\'' +
                ", owner='" + owner + '\'' +
                ", phone='" + phone + '\'' +
                ", mark='" + mark + '\'' +
                '}';
    }
}

dao层(接口)

package com.chai.dao;

import com.chai.bean.Car;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface CarDao {
    //全查
    @Select("select * from car")
    List<Car> selectAll();
    //添加
    @Insert("insert into car(cnumber,type,owner,phone,mark)values(#{cnumber},#{type},#{owner},#{phone},#{mark});")
    int tianjia(Car car);
    //删除
    @Delete("delete from car where cid=#{cid}")
    int shanchu(int cid);
    //单查
    @Select("select * from car where cid=#{cid}")
    List<Car> dancha(int cid);
    //修改
    @Update("update car set cnumber=#{cnumber},type=#{type},owner=#{owner},phone=#{phone},mark=#{mark} where cid=#{cid};")
    int xiugai(Car car);


}

service层

接口

package com.chai.service;

import com.chai.bean.Car;


import java.util.List;

public interface CarService {
    //全查
    List<Car> findAll();
    //添加
    int tianjia(Car car);
    //删除
    int shanchu(int cid);
    //单查
    List<Car> dancha(int cid);
    //修改
    int xiugai(Car car);
}

继承类

 

package com.chai.service.impl;
import com.chai.bean.Car;
import com.chai.dao.CarDao;
import com.chai.service.CarService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class CarServiceimpl implements CarService {
    @Autowired
    CarDao carDao;
    //全查
    @Override
    public List<Car> findAll() {

        return carDao.selectAll();

    }
    //添加
    @Override
    public int tianjia(Car car) {

        return carDao.tianjia(car);

    }
    //删除
    @Override
    public int shanchu(int cid) {

        return carDao.shanchu(cid);

    }
    //单查
    @Override
    public List<Car> dancha(int cid) {

        return carDao.dancha(cid);

    }
    //修改
    @Override
    public int xiugai(Car car) {

        return carDao.xiugai(car);

    }


}

 spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
    <!--扫描注解:1)在service的接口实现类定义注解 2)dao接口没有实现类,直接在接口上定义
    注解,通过下来自动获得代理对象-->
    <context:component-scan base-package="com.chai" />
    <!--1.定义连接数据库的数据源DriverManagerDataSource:实际开发使用第三方连接池管理数据
    源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
    </bean>

    <!--配置mybatis的SqlSessionFactory,自动获得核心对象的SqlSession对象-->
    <bean id="factoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--引用数据源-->
        <property name="dataSource" ref="dataSource"/>
        <!--加载mybatis的核心配置文件-->
        <property name="configLocation" value="mybatis.xml"/>
        <!--给实体类起别名-->
        <property name="typeAliasesPackage" value="com.chai.bean"/>
    </bean>

    <!--配置mapper映射器,告诉mybatis要创建哪些接口的代理对象-->
    <bean id="scannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.chai.dao"/>
    </bean>

    <aop:aspectj-autoproxy/>
</beans>

 mybatis文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="logImpl" value="log4j"/>
    </settings>
</configuration>

test测试类

package com.chai.test;


import com.chai.bean.Car;
import com.chai.service.CarService;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

public class CarTset {
    CarService carService;
    ClassPathXmlApplicationContext context=null;
    
    @Before
    public void intu(){

        context=new ClassPathXmlApplicationContext("spring.xml");
        carService=context.getBean(CarService.class);
    }
    //全查
    @Test
    public void selectAll(){
        List<Car> carList=carService.findAll();
        for (Car car : carList) {
            System.out.println(car);
        }
    }
    //新增
    @Test
    public void tianjia(){
        Car car=new Car();
        car.setCnumber("豫88888");
        car.setType("黑车");
        car.setOwner("柴七");
        car.setPhone("88888888888");
        car.setMark("黑卡");
        carService.tianjia(car);

    }
    //删除
    @Test
    public void shanchu(){

        carService.shanchu(2);

    }
    //单查
    @Test
    public void dancha(){
        List<Car> carList=carService.dancha(1);

        for (Car car : carList) {
            System.out.println(car);
        }

    }
    //修改
    @Test
    public void xiugai(){
        Car car=new Car();
        car.setCid(1);
        car.setCnumber("豫78767");
        car.setType("大巴");
        car.setOwner("赵六");
        car.setPhone("1785444577");
        car.setMark("土卡");
        carService.xiugai(car);
        List<Car> carList=carService.dancha(1);
        for (Car car1 : carList) {
            System.out.println(car1);
        }

    }




}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜未柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值