SpringBoot_整合JDBC/Mybatis

SpringBoot访问数据库
1.SpringBoot使用JDBC

创建项目
在这里插入图片描述

创建数据库表
#用户基本信息表

create  table t_user(
user_id int primary key auto_increment,
user_name varchar(20),
user_age int,
user_address varchar(30)	
);

创建javaBean

package com.lx.springboot.bean;
public class UserBean {
    
    
    private  int userid;
    private  String  username;
    private  int userage;
    private  String  useraddress;

    public int getUserid() {
    
    
        return userid;
    }

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

    public String getUsername() {
    
    
        return username;
    }

    public void setUsername(String username) {
    
    
        this.username = username;
    }

    public int getUserage() {
    
    
        return userage;
    }

    public void setUserage(int userage) {
    
    
        this.userage = userage;
    }

    public String getUseraddress() {
    
    
        return useraddress;
    }

    public void setUseraddress(String useraddress) {
    
    
        this.useraddress = useraddress;
    }
}

配置数据源application.properties

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

注意:在springboot2.0以上的版本中,mysql-connector-java用的6.0以上的版本,需要将原来的com.mysql.jdbc.Driver换成com.mysql.cj.jdbc.Driver

创建数据访问接口及其实现类

package com.lx.springboot.dao;

import com.lx.springboot.bean.UserBean;

import java.util.List;
import java.util.Map;

public interface UserBeanDao {
    
    
    void   insertUserBean(UserBean userBean);
    void   updateUserBean(UserBean userBean);
    void   deleteUserBean(int userid);
    Map<String, Object> selectUserBeanById(int userid);
    List<Map<String, Object>> selectUserBean();


}

package com.lx.springboot.dao.impl;
import com.lx.springboot.bean.UserBean;
import com.lx.springboot.dao.UserBeanDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.List;
import java.util.Map;

@Repository("userBeanDao")
class UserBeanDaoImpl implements UserBeanDao {
    
    
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private DataSource dataSource;

    @Override
    public void insertUserBean(UserBean userBean) {
    
    
        try {
    
    
            Connection connection = dataSource.getConnection();
            String insertsql = "insert into t_user value(null,?,?,?);";
            PreparedStatement ps=connection.prepareStatement(insertsql);
            ps.setString(1,userBean.getUsername());
            ps.setInt(2,userBean.getUserage());
            ps.setString(3,userBean.getUseraddress());
            int temp= ps.executeUpdate();
        }catch (Exception e){
    
    
            e.printStackTrace();
        }
    }
    /*
    @Override
    public void insertUserBean(UserBean userBean) {
        String insertsql="insert into t_user value(null,?,?,?);";
        Object parms[]={userBean.getUsername(),userBean.getUserage(),
                userBean.getUseraddress()};
        int temp=jdbcTemplate.update(insertsql,parms);
    }
    */
    @Override
    public void updateUserBean(UserBean userBean) {
    
    
        String updatesql="update  t_user set user_name=?,user_age=?,user_address=? where user_id=?";
        Object parms[]={
    
    userBean.getUsername(),userBean.getUserage(),
                userBean.getUseraddress(),userBean.getUserid()};
        int temp=jdbcTemplate.update(updatesql,parms);
    }

    @Override
    public void deleteUserBean(int userid) {
    
    
        String delete="delete from t_user where user_id=?";
        int temp=jdbcTemplate.update(delete,1);
    }

    @Override
    public Map<String, Object> selectUserBeanById(int userid) {
    
    
        String select="select * from t_user where user_id=?";
        return jdbcTemplate.queryForMap(select,userid);
    }

    @Override
    public List<Map<String, Object>> selectUserBean() {
    
    
        String select="select * from t_user";
        return jdbcTemplate.queryForList(select);
    }
}

创建业务访问接口及其实现类

package com.lx.springboot.service;
import com.lx.springboot.bean.UserBean;
import java.util.List;
import java.util.Map;
public interface UserBeanService {
    
    
    void   insertUserBean(UserBean userBean);
    void   updateUserBean(UserBean userBean);
    void   deleteUserBean(int userid);
    UserBean  selectUserBeanById(int userid);
    List<Map<String, Object>> selectUserBean();
}

package com.lx.springboot.service.impl;

import com.lx.springboot.bean.UserBean;
import com.lx.springboot.dao.UserBeanDao;
import com.lx.springboot.service.UserBeanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service("userBeanService")
public class UserBeanServiceImpl  implements UserBeanService {
    
    
    @Autowired
    private UserBeanDao userBeanDao;

    @Override
    public void insertUserBean(UserBean userBean) {
    
    
        userBeanDao.insertUserBean(userBean);
    }

    @Override
    public void updateUserBean(UserBean userBean) {
    
    
    userBeanDao.updateUserBean(userBean);
    }

    @Override
    public void deleteUserBean(int userid) {
    
    
        userBeanDao.deleteUserBean(userid);
    }

    @Override
    public UserBean selectUserBeanById(int userid) {
    
    
        Map<String,Object>usermap = userBeanDao.selectUserBeanById(userid);
        UserBean userBean = new UserBean();
        userBean.setUserid((Integer) usermap.get("user_id"));
        userBean.setUsername((String) usermap.get("user_name"));
        userBean.setUserage((Integer) usermap.get("user_age"));
        userBean.setUseraddress((String) usermap.get("user_address"));
        return userBean;
    }

    @Override
    public List<Map<String, Object>> selectUserBean() {
    
    
        return userBeanDao.selectUserBean();
    }
}

创建控制器

package com.lx.springboot.controller;
import com.lx.springboot.bean.UserBean;
import com.lx.springboot.service.UserBeanService;
import org.apache.catalina.User;
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 java.util.List;
import java.util.Map;

@Controller
public class UserBeanController {
    
    
    @Autowired
    private UserBeanService userBeanService;

    @RequestMapping(value = "/add")
    @ResponseBody
    public String add(){
    
    
        try {
    
    
            UserBean userBean = new UserBean();
            userBean.setUsername("zhangsan");
            userBean.setUserage(23);
            userBean.setUseraddress("西安");

            userBeanService.insertUserBean(userBean);
            return "添加成功";
        }catch (Exception e){
    
    
            e.printStackTrace();
            return "添加失败";
        }
    }

    @RequestMapping(value = "/update")
    @ResponseBody
    public String update(){
    
    
        try {
    
    
            UserBean userBean = new UserBean();
            userBean.setUserid(1);
            userBean.setUsername("lisi");
            userBean.setUserage(24);
            userBean.setUseraddress("长安");
            userBeanService.insertUserBean(userBean);
            return "修改成功";
        }catch (Exception e){
    
    
            e.printStackTrace();
            return "修改失败";
        }
    }

    @RequestMapping(value = "/findbyid")
    @ResponseBody
    public UserBean findbyid(){
    
    
        try {
    
    
            return userBeanService.selectUserBeanById(1);
        }catch (Exception e){
    
    
            e.printStackTrace();
            return null;
        }
    }

    @RequestMapping(value = "/find")
    @ResponseBody
    public List<Map<String,Object>> find(){
    
    
        try {
    
    
            return userBeanService.selectUserBean();
        }catch (Exception e){
    
    
            e.printStackTrace();
            return null;
        }
    }

    @RequestMapping(value = "/delete")
    @ResponseBody
    public String delete(){
    
    
        try {
    
    
            userBeanService.deleteUserBean(1);
            return "删除成功";
        }catch (Exception e){
    
    
            e.printStackTrace();
            return "删除失败";
        }
    }
}

添加
在这里插入图片描述
修改
在这里插入图片描述
查询单条记录
在这里插入图片描述
查询全部
在这里插入图片描述
删除
在这里插入图片描述

2.SpringBoot使用MyBatis
在这里插入图片描述

创建数据库表
#用户基本信息表

create  table t_user(
user_id int primary key auto_increment,
user_name varchar(20),
user_age int,
user_address varchar(30)	
);

创建javaBean

package com.lx.springboot.bean;
public class UserBean {
    
    
    private  int userid;
    private  String  username;
    private  int userage;
    private  String  useraddress;
    getXXXX()setXXXX()
}

配置数据源application.properties

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource //配置使用阿里的数据源

注意:在springboot2.0以上的版本中,mysql-connector-java用的6.0以上的版本,需要将原来的com.mysql.jdbc.Driver换成com.mysql.cj.jdbc.Driver
创建druid数据源配置类

package com.lx.springboot.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;
//数据源配置类
@Configuration
public class DruidConfig {
    
    
    //创建数据源
    //<bean id="" class=""></bean>
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid(){
    
    
        return  new DruidDataSource();
    }
}

修改数据源配置application.properties

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
mybatis.config-location=
mybatis.mapper-locations=classpath:mapper/*Mapper.xml

创建数据访问接口

package com.lx.springboot.mapper;

import com.lx.springboot.bean.UserBean;

import java.util.List;
public interface UserBeanMapper {
    
    
    void insertUserBean(UserBean userBean);
    void updateUserBean(UserBean userBean);
    void deleyeUserBeanById(int userid);
    UserBean selectUserBeanById(int userid);
    List<UserBean> selectUserBean();
}

创建sql映射文件【resources / resources/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.lx.springboot.mapper.UserBeanMapper">
    <insert id="insertUserBean" parameterType="com.lx.springboot.bean.UserBean">
        insert  into t_user value(null,#{
    
    username},#{
    
    userage},#{
    
    useraddress})
    </insert>
    <update id="updateUserBean" parameterType="com.lx.springboot.bean.UserBean">
        update  t_user set user_name=#{
    
    username},user_age=#{
    
    userage},user_address=#{
    
    useraddress}
        where user_id=#{
    
    userid}
    </update>
    <delete id="deleyeUserBeanById" parameterType="int">
        delete from t_user where  user_id=#{
    
    userid}
    </delete>
    <resultMap id="userMap" type="com.lx.springboot.bean.UserBean">
        <id property="userid" column="user_id"></id>
        <result property="username" column="user_name"></result>
        <result property="userage" column="user_age"></result>
        <result property="useraddress" column="user_address"></result>
    </resultMap>
    <select id="selectUserBeanById" parameterType="int" resultMap="userMap">
        select  * from t_user where user_id=#{
    
    userid}
    </select>
    <select id="selectUserBean" resultMap="userMap">
         select  * from t_user
    </select>
 </mapper>

创建MyBatis的配置类

package com.lx.springboot.config;

import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

//MyBatisConfig类加上@Configuration就是一个MyBatis核心配置类
//用这个MyBatis核心配置类代替mybaits-config.xml
//@MapperScan("数据访问接口所在包的包名称")
/*
 <!--配置扫描数据库访问接口包,创建数据库访问接口对象-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.xl.springboot.mapper"></property>
    </bean>
 */
@MapperScan("com.lx.springboot.mapper")
@Configuration
public class MyBatisConfig {
    
    
    @Bean
    public ConfigurationCustomizer configurationCustomizer(){
    
    
        return new ConfigurationCustomizer(){
    
    
            @Override
            public void customize(org.apache.ibatis.session.Configuration configuration) {
    
    
                configuration.setMapUnderscoreToCamelCase(true);
            }
        };
    }
}


在application.properties中配置MyBatis核心配置文件【mybaits-config.xml】和sql映射文件的位置
核心配置文件【mybaits-config.xml】的位置
mybatis.config-location=classpath:config/mybatis-configxml
sql映射文件的位置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
创建业务访问接口及其实现类

package com.lx.springboot.service;



import com.lx.springboot.bean.UserBean;

import java.util.List;
import java.util.Map;

public interface UserBeanService {
    
    
    void   insertUserBean(UserBean userBean);
    void   updateUserBean(UserBean userBean);
    void   deleteUserBean(int userid);
    UserBean  selectUserBeanById(int userid);
    List<UserBean> selectUserBean();
}

package com.lx.springboot.service.impl;

import com.lx.springboot.bean.UserBean;
import com.lx.springboot.mapper.UserBeanMapper;
import com.lx.springboot.service.UserBeanService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public class UserBeanServiceImpl implements UserBeanService {
    
    
    @Autowired
    private UserBeanMapper userBeanMapper;
    @Override
    public void insertUserBean(UserBean userBean) {
    
    
        userBeanMapper.insertUserBean(userBean);
    }

    @Override
    public void updateUserBean(UserBean userBean) {
    
    
         userBeanMapper.updateUserBean(userBean);
    }

    @Override
    public void deleteUserBean(int userid) {
    
    
        userBeanMapper.deleyeUserBeanById(userid);
    }

    @Override
    public UserBean selectUserBeanById(int userid) {
    
    
        return userBeanMapper.selectUserBeanById(userid);
    }

    @Override
    public List<UserBean> selectUserBean() {
    
    
        return userBeanMapper.selectUserBean();
    }
}


创建控制器

package com.lx.springboot.controller;


import com.lx.springboot.bean.UserBean;
import com.lx.springboot.service.UserBeanService;
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 javax.xml.ws.RequestWrapper;
import java.util.List;
import java.util.Map;

@Controller
public class UserBeanController {
    
    
    @Autowired
    private UserBeanService userBeanService;

    @RequestMapping(value = "/add")
    @ResponseBody
    public String add(){
    
    
        try {
    
    
            UserBean userBean = new UserBean();
            userBean.setUsername("zhaoliu");
            userBean.setUserage(23);
            userBean.setUseraddress("西安");
            userBeanService.insertUserBean(userBean);
            return "添加成功";
        }catch (Exception e){
    
    
            e.printStackTrace();
            return "添加失败";
        }
    }


    @RequestMapping(value = "/update")
    @ResponseBody
    public String update(){
    
    
        try {
    
    
            UserBean userBean = new UserBean();
            userBean.setUserid(2);
            userBean.setUsername("lisi");
            userBean.setUserage(24);
            userBean.setUseraddress("北京");
            userBeanService.updateUserBean(userBean);
            return "修改成功";
        }catch (Exception e){
    
    
            e.printStackTrace();
            return "修改失败";
        }
    }

    @RequestMapping(value = "/findbyid")
    @ResponseBody
    public UserBean findbyid(){
    
    
        try {
    
    
            return userBeanService.selectUserBeanById(2);
        }catch (Exception e){
    
    
            e.printStackTrace();
            return null;
        }
    }

    @RequestMapping(value = "/find")
    @ResponseBody
    public  List<UserBean> find(){
    
    
        try {
    
    
            return userBeanService.selectUserBean();
        }catch (Exception e){
    
    
            e.printStackTrace();
            return null;
        }
    }

    @RequestMapping(value = "/delete")
    @ResponseBody
    public  String  delete(){
    
    
        try {
    
    
            userBeanService.deleteUserBean(2);
            return "删除成功";
        }catch (Exception e){
    
    
            e.printStackTrace();
            return "删除失败";
        }
    }
}

猜你喜欢

转载自blog.csdn.net/guoguo0717/article/details/111030349