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产生的直接原因