基于eclipse&maven的mybatis初步实现

参考:

1、https://blog.csdn.net/chaoren2011/article/details/34924131

2、https://www.jianshu.com/p/d163ec74e6d7

 

javese部分结束后,现在进入了框架学习。从最主流的ssm框架学习,本文介绍自己在搭建并实现mybatis的过程中遇到的问题。

Mybatis介绍:

  1. 原是apache的项目叫做iBatis,后来转给了谷歌,并更名为Mybatis,现在又迁移到了GitHub上。
  2. 是一个基于Java的持久层框架,在内部封装了JDBC
  3. 可以通过xml或者注解的方式将要执行的各种statement配置起来,并通过java对象和statement中的sql动态参数进行映射生成最终执行的SQL语句,最后由MyBatis框架执行SQL并将结果映射成java对象返回

Mybatis与Hibernate:

       Hibernate把JDBC封装的更严实,而MyBatis没有完全封装

        所以,Hibernate可以提供全面的数据库封装机制的“全自动”ORM,MyBatis只能提供“半自动”ORM

正是因此,使得MyBatis越来越受到推崇,占据越来越多的市场份额,因为在大数据时代,很多公司需要根据自己公司业务具体情况设计更为高效适合的sql,而Hibernate的完全封装使得其对数据库的操作已经是一个黑盒,不能对其进行优化,而MyBatis这种轻量级的框架则可以满足这种定制化的需求,同时也能提供框架带来的便利。

       20.7.8.18:00 添加内容:

   Hibernate的sql语句是自动生成的,因此可以适应于各种数据库,数据库环境改变时也不会受到影响,但是Mybatis的sql语句是程序员编写的,只能适配现有的数据库,当数据库环境改变时,会报错》

 

Mybatis实现:

      基于eclipse maven实现

       项目总览:

                                                              基于eclipse&maven的mybatis初步实现_第1张图片

        版本信息: jdk13,eclipse2020-03,

        原本是通过看视频的方式学习框架知识,但是发现现有的主流教程基本还是停留在自己在网上找jar包,自己build path的方式,毕竟学过了maven,这么方便的技术还是要用的,并且教程学的jdk和各种jar包版本基本都很旧,各种版本不兼容的问题让人要死要活,所以建议和我有类似的情况的同学,不妨借助网络博客来学习。

1、创建Maven工程

                                        基于eclipse&maven的mybatis初步实现_第2张图片

2、配置pom.xml文件,导入mybatis依赖


  4.0.0
  cn.junstar
  mybatis-02
  0.0.1-SNAPSHOT
  
         
         
             org.mybatis
             mybatis
             3.1.1 
         
         
         
             mysql
             mysql-connector-java
             5.1.10
         
     

3、创建javebean类  User类,并创建UserMapper接口,以便对User类的访问

package com.mybatis.dao;

public class User {
	private String UserName;
	private String UserPwd;
	private String UserMail;
	private String UserAddress;
	public User() {

	}
	public User(String userName, String userPwd, String userMail, String userAddress) {
		UserName = userName;
		UserPwd = userPwd;
		UserMail = userMail;
		UserAddress = userAddress;
	}
	public String getUserName() {
		return UserName;
	}
	public void setUserName(String userName) {
		UserName = userName;
	}
	public String getUserPwd() {
		return UserPwd;
	}
	public void setUserPwd(String userPwd) {
		UserPwd = userPwd;
	}

}
package com.mybatis.dao;

import org.apache.ibatis.annotations.Param;

public interface UserMapper {
	public void insertUser(User user);
	public User selectUser(@Param(value = "userName")String userName);
}

4、在resource目录下创建mybatis配置文件mybatis-config.xml和sql映射配置文件User.xml

注意在?useUnicode=true&characterEncoding=utf8" /> 标红字段是为了设置数据库的编码格式,要根据个人mysql设置来调整,默认标红字段可以删掉

mybatis-config.xml


 
 
     
         
             
             
                  
                  
                  
                  
             
         
     
     
          
     
 

User.xml 


 
 
 	
    
        INSERT INTO User
        (UserName,UserPwd,UserMail,UserAddress)
        VALUES (#{UserName},#{UserPwd},#{UserMail},#{UserAddress})
     
 

5、创建配置文件中指定的数据库test

    
                  
                 
                 

    数据库客户端帐号,密码,地址,端口号要与自己的一致

     数据库名为test

      基于eclipse&maven的mybatis初步实现_第3张图片

6、创建测试函数

package com.mybatis.domybatis;

import java.io.Reader;

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 com.mybatis.dao.User;
import com.mybatis.dao.UserMapper;

public class Domybatis {
	public static void main(String[] args) {
		SqlSession session = null;
		try {
			String resource = "mybatis-config.xml";
			Reader reader = null;
			reader = Resources.getResourceAsReader(resource);
			SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
			session = sqlSessionFactory.openSession();
			UserMapper userMapper = session.getMapper(UserMapper.class);
			
			User user = new User("haha","1111","[email protected]","shanghai");
			userMapper.insertUser(user);
			session.commit();
            user = userMapper.selectUser("haha");
			session.commit();
			System.out.println(user.toString());
		} catch(Exception e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
	}
}

点击运行,刷新数据库,会发现一条数据被插入,同时控制台会给出一条查询结果结果,警告信息是因为jdk版本过高导致的,可以忽略。

基于eclipse&maven的mybatis初步实现_第4张图片

你可能感兴趣的:(后端框架,ssm,java,mybatis)