Mybatis教程-JDBC链接并直接操作数据库

Mybatis教程-JDBC链接并直接操作数据库 。echo编辑整理,欢迎转载,转载请声明文章来源。


什么是Mybatis?都说JDBC链接数据库操作很快,单纯使用JDBC比我们使用框架快多了。但是为什么我们都选用框架?首先我们需要来了解一下JDBC是怎么操作数据库的,看看JDBC链接操作数据会有哪些优点和缺点?

JDBC链接数据库想当简单,总共就四个步骤

  • 获取链接
  • 执行查询
  • 获取结果集
  • 关闭链接

实例代码如下

package com.example.demo;

import java.sql.*;

/**
 * @author echo
 * @date 2020/6/19 20:30
 **/
public class TestJdbc {

    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        User user = new User();

        try {
            // 获取链接
            connection = DriverManager.getConnection("jdbc:mysql://192.168.229.132:3306/blog", "admin", "123456");

            // 执行查询
            statement = connection.createStatement();
            String sql = "select * from `user` where id = '1'";
            resultSet = statement.executeQuery(sql);

            // 获取结果集
            while (resultSet.next()) {
                user.setId(resultSet.getLong("id"));
                user.setUsername(resultSet.getString("username"));
                user.setPassword(resultSet.getString("password"));
                user.setEmail(resultSet.getString("email"));
                user.setPhone(resultSet.getString("phone"));
                user.setCreateTime(resultSet.getDate("create_time"));
                user.setCreateTime(resultSet.getDate("update_time"));
            }
            System.out.println(user);

            // 关闭链接
            resultSet.close();
            statement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if(resultSet != null) resultSet.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
            try {
                if(statement != null) statement.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
            try {
                if(connection != null) connection.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
        }

    }

}

// 实体
package com.example.demo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;

/**
 * user
 * @author echo
 * @WeChat t2421499075
 */
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    private Long id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 用户密码
     */
    private String password;

    /**
     * 用户邮箱
     */
    private String email;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

}

注意:使用完成链接之后,一定要规范的关闭我们的链接。如果不关闭很有可能导致我们的服务器资源耗尽。

从上面的实例我们可以看到一下优点

  • 灵活、高效
  • 跨平台性比较强
  • 能够支持复杂的sql

那么我们可以通过这个链接数据库的过程看到以下这些问题:

  • 查询一张表就需要很多的链接数据库的代码
  • 需要自己管理资源,有可能由于忽略关闭资源可能导致服务器故障
  • 结果集获取很麻烦
  • 当多张表出现的时候,重复代码大量出现
  • 逻辑复杂的时候,我们编写代码的时候,修改就成为一个相当大工程

但是:这些问题也是我们Mybatis产生的直接原因

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 引入mybatis-plus的依赖:在pom.xml文件中添加以下依赖 ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` 2. 在配置文件中配置数据源:在application.yml文件中添加以下配置 ``` spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root ``` 其中,url中的test为数据库名,root为数据库用户名和密码。 3. 创建实体类和Mapper接口:创建一个实体类,用于映射数据库表中的数据,同时创建一个Mapper接口,用于操作数据库。 4. 使用mybatis-plus提供的注解和方法操作数据库:使用mybatis-plus提供的注解和方法进行增删改查操作,例如: ``` @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Override public List<User> listUsers() { return baseMapper.selectList(null); } @Override public User getUserById(Long id) { return baseMapper.selectById(id); } @Override public boolean addUser(User user) { return baseMapper.insert(user) == 1; } @Override public boolean updateUser(User user) { return baseMapper.updateById(user) == 1; } @Override public boolean deleteUser(Long id) { return baseMapper.deleteById(id) == 1; } } ``` 以上代码中,UserService接口是一个Service接口,UserServiceImpl类是该接口的实现类,其中使用了baseMapper提供的selectList、selectById、insert、updateById、deleteById等方法进行增删改查操作。 5. 配置Mapper扫描路径:在配置文件中添加以下配置,指定Mapper接口所在的包路径。 ``` mybatis-plus: mapper-locations: classpath:mapper/*.xml ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xlecho

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

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

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

打赏作者

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

抵扣说明:

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

余额充值