MyBatis初始
【摘要】 大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN java领域新星创作者blog.csdn.net/bug…掘金LV3用户 juejin.cn/user/bug…阿里云社区专家博主,星级博主,developer.a...
大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流
作者简介:
- CSDN java领域新星创作者blog.csdn.net/bug…
- 掘金LV3用户 juejin.cn/user/bug…
- 阿里云社区专家博主,星级博主,developer.aliyun.com/bug…
- 华为云云享专家 bbs.huaweicloud.com/bug…
写在前面
我们前面学习了Spring那些框架,所以服务器端的逻辑处理已经学习的差不多了,而我们一个项目除了业务逻辑,还有就是最重要的就是前端传来的数据我们要通过数据库进行存储!而我们数据库和java代码进行连接的就是JDBC数据库接口!不过这样连接数据库的方式比较繁琐!而今天我们就学习MyBatis框架,简化数据库连接开发!
MyBatis定义
MyBatis是一款优秀的持久层框架,支持自定义SQL,存储过程以及高级映射! MyBatis几乎去除了所有JDBC代码及其参数的设置和获取结果集的工作!MyBatis可以通过简单的xml或注解来配置和映射原始类型,接口和java对象为数据库记录!
也就是说MyBatis是更简单完成程序和数据库交互的工具,更简单读取和操作数据库工具!
MyBatis作用
作为我们后端程序,我们程序由最重要的两部分组成!
- 后端程序
- 数据库
我们来回顾一下我们传统的java程序连接数据库代码操作!
- 创建数据库连接池
DataSource
- 通过
DataSource
数据库连接池获取数据库连接Connection
- 编写要执行的
SQL
含有占位符等 - 通过
Connection
和SQL
获取数据库命令操作对象Statement
- 替换占位符: 指定要替换的数据库字段类型,占位符索引以及要替换的值
- 使用
Statement
执行SQL语句 - 查询操作:返回结果集
ResultSet
,更新操作:返回更新的数据 - 处理结果集
- 释放资源
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJDBC {
//volatile 保证内存可见性
static volatile DataSource dataSource;
static String URL,User,Password;
public TestJDBC(String URL,String User,String Password){
this.URL = URL;
this.User = User;
this.Password = Password;
}
public static Connection getConnection() throws SQLException {
//单例模式!
if (dataSource == null) {
//为空才会进来,不然直接返回连接即可
//这里同一时刻可能有很多线程进入这里等待!
//所以当一个线程进去后要再判断一下是否已经有线程创建了对象
synchronized (TestJDBC.class) {
//拿到锁后,要判断是否已经之前的线程创建了对象!
if (dataSource == null) {
dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setURL(URL);
((MysqlDataSource) dataSource).setUser(User);
((MysqlDataSource) dataSource).setPassword(Password);
}
}
}
return dataSource.getConnection();
}
public static void close(Connection connection, Statement statement, ResultSet resultSet) throws SQLException {
//注意顺序!
if(resultSet!=null){
resultSet.close();
}
if(statement!=null){
statement.close();
}
if(connection!=null){
connection.close();
}
}
}
import java.sql.*;
public class Main{
public static void main(String[] args) throws SQLException {
//获取到数据库连接对象!
String URL = "jdbc:mysql://127.0.0.1:3306/java_2022?characterEncoding=utf8&useSSL=false";
String User = "root";
String Password ="123456";
TestJDBC testJDBC = new TestJDBC(URL,User,Password);
Connection connection = TestJDBC.getConnection();
//编写SQL
String sql = "select * from student where class_id=?";
//获取Statement对象
PreparedStatement statement = connection.prepareStatement(sql);
//输入占位符数据,查询
statement.setString(1,"101");
//获取结果集
ResultSet resultSet = statement.executeQuery();
//查询class_id为 101的学生结果!
while(resultSet.next()){
String name = resultSet.getString(1);
String class_id = resultSet.getString(2);
System.out.println("name:"+name+" class_id:"+class_id);
}
}
}
显然这种方式十分繁琐!有很多重复的步骤!
我们学习MyBatis
数据库操作将会大大简化!
MyBatis学习重点
- 配置MyBatis开发环境
- 使用MyBatis模式和语法操作数据库
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)