MyBatis笔记(1)——MyBatis初体验(纯Java项目创建MyBatis)

2 篇文章 0 订阅
1 篇文章 0 订阅

    MyBatis是支持普通SQL查询、存储过程和高级映射的优秀持久层框架。它是对JDBC的再封装,几乎避免所有的JDBC代码和参数的手工设置以及对结果集的检索。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects, 普通的Java对象)映射成数据库中的记录。

  下面是Mybatis官网的介绍:         

什么是 MyBatis ?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

 

1、准备工作,下载Mybatis所依赖的和JDBC驱动的Jar包(下载自己需要的版本):

今天微软收购了Github(吐个槽)

 

接下来下载jdbc驱动jar包:

 

一开始加载可能有点慢,然后点击下载后就可以跳过注册直接下载:

下载好了,我们得到两个zip包,分别解压它们:

然后准备工作就做好了,这种方式比较原始,如果使用Maven就不用这么麻烦!

2、在eclipse 中新建一个JavaProject, 项目名合法任意,点击Finish:

3、在项目名上右击新建一个目录(Folder),取名为lib,并将第一步中解压好的两个目录中的所需jar包拷贝到这个目录中(Mybatis目录下mybatis-3.4.6.jar以及mysql-connector目录下的
mysql-connector-java-8.0.11.jar);然后右键这些jar包,选择Build Pah——>Add to Build Pah,将这些jar包添加到目录的构建路径中,完成如图:

 

4、准备数据库,在mysql的(新建)testdb库中新建users表:

create database testdb;
use testdb;
create table users(
id int auto_increment not null,
username varchar(20) not null,
password varchar(20),
primary key(id)
);

插入两条数据:

    5、具体编码:

             ①在src目录下新建mybatis和mapper目录,在mybatis目录中新建一个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">
<!-- 注意填写自己的mysql用户名和密码, 还有连接的url要加上"?serverTimezone=GMT%2B8"不然会报错 -->
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/testdb?serverTimezone=GMT%2B8" />
                <property name="username" value="root" />
                <property name="password" value="123" />
            </dataSource>
        </environment>
    </environments>    
    <mappers>        
        <mapper resource="mapper/userMapper.xml"/>
    </mappers>    
</configuration>

        ②在mapper目录下新建SQL映射文件userMapper.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="mapper.userMapper">
  <select id="getUser" resultType="entity.User" parameterType="int">
  		select * from users where id=#{id}
  		
  </select>
</mapper>

       ③新建实体类,在src下新建一个包entity并在内新建一个类User:

package entity;

public class User {
	int id;
	String username;
	String password;
	public int getId() {
		return id;
	}
	public void setId(int 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;
	}
	
	@Override 
	public String toString() {
		return "User[id = " + id + ", username = " + username +", password =  "+
	 password + "]";
	}

}

      ④在src目录下新建测试类Main:

    

import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import entity.User;

public class Main {

	public static void main(String[] args) throws IOException {
		    String resource = "mybatis/mybatis-config.xml";   
	        InputStream inputStream = Resources.getResourceAsStream(resource);
	        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	        SqlSession sqlSession = sqlSessionFactory.openSession();
	        String statement = "mapper.userMapper.getUser";   
	        User user = sqlSession.selectOne(statement, 1);   
	        sqlSession.close();
	        System.out.println(user);


	}

}

    最后的项目结构如下:

  

            

6、运行结果,搜索到第一条结果因为调用了函数selectOne()的关系:

 

总结:

   这次使用了纯Java项目体验MyBatis,旨在熟悉这个流程,后面会有具体探索。

  而最大的改变就是使用了最新的环境(尤其是mysql-connector),导致有两处改动(mybatis-config.xml中):

  <property name="driver" value="com.mysql.cj.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost:3306/testdb?serverTimezone=GMT%2B8" />

 看来得活到老,学到老!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值