SpringBoot+Mybatis+C3P0的增删改查操作

1. 创建表T_USER

create table T_USER
(
id NUMBER not null,
user_name VARCHAR2(50) not null,
user_pwd VARCHAR2(256),
user_flag VARCHAR2(3) not null,
pwd_update DATE,
creator VARCHAR2(20) default 'SYSTEM',
editor VARCHAR2(20) default 'SYSTEM',
cdate DATE default SYSDATE,
edate DATE default SYSDATE
);

2. 创建springboot项目

3 .  查看pom.xml文件

增加程序中需要用到Oracle驱动包,c3p0数据源包,json包

4. 创建各级目录

5. 设置application.properties配置文件及mybatis-config.xml

mybatis-config.xml

<?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>

    <!--todo 配置全局属性 -->
    <settings>
        <!--todo 使用jdbc的getGeneratedKeys 获取数据库自增主键值-->
        <setting name="useGeneratedKeys" value="true"/>
        <!-- 使用列别名替换为 默认:true-->
        <setting name="useColumnLabel" value="true"/>
        <!-- 开启驼峰命名转换:Table(create time)-> Entity(createTime)-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>


</configuration>

6. 创建数据源类DataSourceConfiguration.java

@Configuration
public class DataSourceConfiguration {

    @Value("${jdbc.driver}")
    private String jdbcDriver;
    @Value("${jdbc.url}")
    private String jdbcUrl;
    @Value("${jdbc.user}")
    private String userName;
    @Value("${jdbc.password}")
    private String passWord;


    @Bean(name="dataSource")
    public DataSource getDataSource() throws PropertyVetoException {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        dataSource.setDriverClass(jdbcDriver);
        dataSource.setJdbcUrl(jdbcUrl);
        dataSource.setUser(userName);
        dataSource.setPassword(passWord);
        dataSource.setAutoCommitOnClose(false);
        return dataSource;
    }
}

7. 创建SqlSessionFactoryConfiguration.java

@Configuration
public class SqlSessionFactoryConfiguration {

    @Value("${mybatis_config_file}")
    private String mybatisConfigPath;
    @Value("${mapper_path}")
    private String mapperXMLPath;
    @Value("${entity_package}")
    private String pojoPackage;

    @Autowired
    private DataSource dataSource;

    @Bean(name="sqlSessionFactory")
    public SqlSessionFactoryBean createSqlSessionFactoryBean() throws IOException {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setConfigLocation(new ClassPathResource(mybatisConfigPath));

        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        String packMapperXMLPath = PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + mapperXMLPath;

        sqlSessionFactoryBean.setMapperLocations(resolver.getResources(packMapperXMLPath));
        sqlSessionFactoryBean.setTypeAliasesPackage(pojoPackage);
        sqlSessionFactoryBean.setDataSource(dataSource);
        return sqlSessionFactoryBean;

    }
}

8. 创建数据库对应实体类pojo

package com.hansonding.pojo;

import java.util.Date;

public class User {
    private Integer id;
    private String userName;
    private String passWord;
    private String userFlag;
    private Date pwdUpdate;

    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 getUserFlag() {
        return userFlag;
    }

    public void setUserFlag(String userFlag) {
        this.userFlag = userFlag;
    }

    public Date getPwdUpdate() {
        return pwdUpdate;
    }

    public void setPwdUpdate(Date pwdUpdate) {
        this.pwdUpdate = pwdUpdate;
    }
}

9. 创建数据库实体类对应的mapper接口

package com.hansonding.mapper;

import com.hansonding.pojo.User;
import java.util.List;

public interface UserMapper {

    List<User> getAllUser();

    User getUserById(Integer id);

    int insert(User user);

    int deleteById(Integer id);

    int updateById(User user);
}

10. 创建mapper接口对应的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.hansonding.mapper.UserMapper">
    <resultMap id="UserResultMap" type="com.hansonding.pojo.User">
        <result column="ID" property="id" jdbcType="INTEGER"/>
        <result column="USER_NAME" property="userName" jdbcType="VARCHAR"/>
        <result column="USER_PWD" property="passWord" jdbcType="VARCHAR"/>
        <result column="USER_FLAG" property="userFlag" jdbcType="VARCHAR"/>
        <result column="PWD_UPDATE" property="pwdUpdate" jdbcType="TIMESTAMP"/>
    </resultMap>
    <select id="getUserById" resultMap="UserResultMap" parameterType="java.lang.Integer">
        select id,user_name, user_pwd, user_flag, pwd_update
          from t_user
         where id = #{id,jdbcType=INTEGER}
    </select>
    <insert id="insert" parameterType="com.hansonding.pojo.User">
        insert into t_user (id, user_name, user_pwd, user_flag, pwd_update)
        values
        (#{id}, #{userName}, #{passWord}, #{userFlag}, #{pwdUpdate})
    </insert>
    <delete id="deleteById" parameterType="java.lang.Integer">
        delete from t_user where id = #{id}
    </delete>
    <update id="updateById" parameterType="com.hansonding.pojo.User">
        update t_user
        <set>
            <if test="userName!=null">
                USER_NAME = #{userName},
            </if>
            <if test="passWord!=null">
                USER_PWD = #{passWord},
            </if>
            <if test="userFlag!=null">
                USER_FLAG = #{userFlag},
            </if>
            <if test="pwdUpdate!=null">
                PWD_UPDATE = #{pwdUpdate},
            </if>
        </set>
        where id = #{id}
    </update>
    <select id="getAllUser" resultType="com.hansonding.pojo.User">
        SELECT id, user_name, user_pwd, user_flag, pwd_update
          FROM t_user
    </select>
</mapper>

11. 创建service接口

package com.hansonding.service;

import com.hansonding.pojo.User;

import java.util.List;

public interface UserService {
    User queryUserById(Integer id);
    int insert(User user);
    int updateUser(User user);
    int deleteUser(Integer id);
    List<User> getAllUser();
}

12. 实现service接口类

package com.hansonding.service.Imp;

import com.hansonding.mapper.UserMapper;
import com.hansonding.pojo.User;
import com.hansonding.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User queryUserById(Integer id) {
        return userMapper.getUserById(id);
    }

    @Override
    public int insert(User user) {
        return userMapper.insert(user);
    }

    @Override
    public int updateUser(User user) {
        return userMapper.updateById(user);
    }

    @Override
    public int deleteUser(Integer id) {
        return userMapper.deleteById(id);
    }

    @Override
    public List<User> getAllUser() {
        return userMapper.getAllUser();
    }

}

13.  创建controller的java类

package com.hansonding.controller;

import com.alibaba.fastjson.JSONObject;
import com.hansonding.pojo.User;
import com.hansonding.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping(value = "/queryUserById", method = RequestMethod.GET)
    public JSONObject getUserById(@RequestParam(name="id") Integer id){
        User user = userService.queryUserById(id);
        JSONObject json = new JSONObject();
        json.put("result",user);
        return json;
    }

    @RequestMapping(value = "/insertUser",method = RequestMethod.POST)
    public int inserUser(@RequestBody User user){
        return userService.insert(user);
    }

    @RequestMapping(value = "/updateUser", method = RequestMethod.POST)
    public void updateUser(@RequestBody User user){
        userService.updateUser(user);
    }

    @RequestMapping(value = "/deleteUser", method = RequestMethod.POST)
    public int deleteUser(@RequestParam(name="id") Integer id){
        return userService.deleteUser(id);
    }

    @RequestMapping(value = "/getAllUser",method = RequestMethod.POST)
    public JSONObject getAllUser(){
        JSONObject json = new JSONObject();
        List<User> listUser = userService.getAllUser();
        json.put("userList",listUser);
        return json;
    }
}

14. SpringBootApplication类调用测试

package com.hansonding;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.hansonding.mapper")
public class DemoApplication {

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

猜你喜欢

转载自www.cnblogs.com/hansond/p/9319005.html