搭建MyBatis


搭建MyBatis

1、开发环境

IDE:idea 2019.2

构建工具:maven 3.5.4

MySQL版本:MySQL 5.7

MyBatis版本:MyBatis 3.5.7

MySQL不同版本的注意事项

1、驱动类driver-class-name

MySQL 5版本使用jdbc5驱动,驱动类使用:com.mysql.jdbc.Driver

MySQL 8版本使用jdbc8驱动,驱动类使用:com.mysql.cj.jdbc.Driver

2、连接地址url

MySQL 5版本的url:

jdbc:mysql://localhost:3306/ssm

MySQL 8版本的url:

jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC

否则运行测试用例报告如下错误:

java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or

represents more

2、创建maven工程

a>打包方式:jar

b>引入依赖

```Plain Text org.mybatis mybatis 3.5.7 junit junit 4.12 test mysql mysql-connector-java 5.1.3

## **3、创建MyBatis的核心配置文件**

> 习惯上命名为mybatis-config.xml,这个文件名仅仅只是建议,并非强制要求。将来整合Spring之后,这个配置文件可以省略,所以大家操作时可以直接复制、粘贴。

核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息

核心配置文件存放的位置是src/main/resources目录下

![https://img-blog.csdnimg.cn/2146535636564387adf761933607f2d5.png](https://img-blog.csdnimg.cn/2146535636564387adf761933607f2d5.png)

提示:

**下面的 username 和 password 为mysql的账号密码 根据自身实际情况进行改写**

XML

## **4、创建mapper接口**

> MyBatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。

先创建用户类 类中属性 与 数据库中的字段对应

![https://img-blog.csdnimg.cn/e06d3dd082ab466e82d46676f726d56d.png](https://img-blog.csdnimg.cn/e06d3dd082ab466e82d46676f726d56d.png)

User类里面的代码:

Java public class User { private Integer id; private String username; private String password; private Integer age; private String sex; private String email;

public User() {
}

public User(Integer id, String username, String password, Integer age, String sex, String email) {
    this.id = id;
    this.username = username;
    this.password = password;
    this.age = age;
    this.sex = sex;
    this.email = email;
}

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 Integer getAge() {
    return age;
}

public void setAge(Integer age) {
    this.age = age;
}

public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

@Override
public String toString() {
    return "User{" +
            "id=" + id +
            ", username='" + username + '\'' +
            ", password='" + password + '\'' +
            ", age=" + age +
            ", sex='" + sex + '\'' +
            ", email='" + email + '\'' +
            '}';
}

}

创建UserMapper接口

![https://img-blog.csdnimg.cn/7763dae5321943e79350b27c91f7ae3d.png](https://img-blog.csdnimg.cn/7763dae5321943e79350b27c91f7ae3d.png)

Java public interface UserMapper { /*** 添加用户信息 */ int insertUser(); }

## **5、创建MyBatis的映射文件**

相关概念:**ORM**(**O**bject **R**elationship **M**apping)对象关系映射。

**对象**:Java的实体类对象

**关系**:关系型数据库

**映射**:二者之间的对应关系

|||
|-|-|
|**Java概念**|**数据库概念**|
|类|表|
|属性|字段/列|
|对象|记录/行|

> 1、映射文件的命名规则:

表所对应的实体类的类名+Mapper.xml

例如:表t_user,映射的实体类为User,所对应的映射文件为UserMapper.xml

因此一个映射文件对应一个实体类,对应一张表的操作

MyBatis映射文件用于编写SQL,访问以及操作表中的数据

MyBatis映射文件存放的位置是src/main/resources/mappers目录下

2、 MyBatis中可以面向接口操作数据,要保证两个一致:

a>mapper接口的全类名和映射文件的命名空间(namespace)保持一致

b>mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致

![https://img-blog.csdnimg.cn/8b271c089e8f424db18b608e4b399031.png](https://img-blog.csdnimg.cn/8b271c089e8f424db18b608e4b399031.png)

XML insert into t_user values(null,'张三','123',23,'女','11111@qq.com')

## **6、通过junit测试功能**

XML import java.io.IOException; import java.io.InputStream;

public class MybatisTest { @Test public void testInsert() throws IOException {

//读取MyBatis的核心配置文件 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //创建SqlSessionFactoryBuilder对象 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); //通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory,生产SqlSession对象 SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); //创建SqlSession对象,此时通过SqlSession对象所操作的sql都必须手动提交或回滚事务 //SqlSession sqlSession = sqlSessionFactory.openSession(); //创建SqlSession对象,此时通过SqlSession对象所操作的sql都会自动提交

    SqlSession sqlSession = sqlSessionFactory.openSession(true);

//通过代理模式创建UserMapper接口的代理实现类对象 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); //调用UserMapper接口中的方法,就可以根据UserMapper的全类名匹配元素文件,通过调用的方法名匹配 映射文件中的SQL标签,并执行标签中的SQL语句 int result = userMapper.insertUser(); System.out.println(result); //sqlSession.commit(); }

}

**运行一下,控制台 输出了1 表明添加成功。**

![https://img-blog.csdnimg.cn/4d6e32f390db41dcbf108d3494e3bd57.png](https://img-blog.csdnimg.cn/4d6e32f390db41dcbf108d3494e3bd57.png)

![https://img-blog.csdnimg.cn/811e24655e7d4569a94b507f7537c06c.png](https://img-blog.csdnimg.cn/811e24655e7d4569a94b507f7537c06c.png)

> 

  - SqlSession:代表Java程序和**数据库**之间的**会话**。(HttpSession是Java程序和浏览器之间的会话)

  - SqlSessionFactory:是“生产”SqlSession的“工厂”。

  - 工厂模式:如果创建某一个对象,使用的过程基本固定,那么我们就可以把创建这个对象的相关代码封装到一个“工厂类”中,以后都使用这个工厂类来“生产”我们需要的对象。

## **7、加入log4j日志功能**

**a>加入依赖**

XML

log4j log4j 1.2.17

**b>加入log4j的配置文件**

> log4j的配置文件名为log4j.xml,存放的位置是src/main/resources目录下

XML ```

效果:

https://i-blog.csdnimg.cn/blog_migrate/e2e19e74cebaf1ed3670b2bd86ac5c95.png

https://i-blog.csdnimg.cn/blog_migrate/2b41fa667e60038984781883f041e9e6.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值