MyBatis的基本使用

MyBatis:对象关系映射框架

jdbc,hibernate,MyBatis的区别

jdbc纯数据库连接,数据库操作效率最高(最快)开发效率低
hibernateorm(对象关系映射)开发效率高,数据库操作效率低(不灵活)
MyBatisorm(对象关系映射) 开发效率比hibernate低,比jdbc高。数据库操作效率比hibernate高,和jdbc接近。灵活性高,sql语句自己写

下面就是创建一个简单的mybatis的项目

在IntelliJ IDEA 2019中导入mybatis
我的项目结构
在这里插入图片描述
1,在maven项目中pom.xml中导入mybatis框架,和mysql数据库

https://mvnrepository.com/tags/request 在这个网址下载

<!-- 导入mybatis架包-->
  <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
  </dependency>
<!--导入mysql架包-->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.43</version>
</dependency>

2.创建java文件夹,resource文件夹,test文件夹,以上三个文件都要设置文件类型
java设置 右键java文件夹 ----- 找到Mark Driectory as ------ 选择里面的Sources Root
resource设置 右键resource文件夹 ----- 找到Mark Driectory as ------ 选择里面的Resources root
test设置 右键test文件夹 ---- 找到Mark Driectory as ------ 选择里面的Test Sources Root

上面一步一定要设置

3.第二步操作完后,文件夹会变颜色,然后根据下面图片中创建文件
在这里插入图片描述
com.ywy.entity的包中还是写实体类,和映射类
com.ywy.dao中写实体类对应的dao
resource中写配置文件
com.ywy.test写测试的

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">
<configuration>
    <!--取别名-->
    <typeAliases>
        <package name="com.ywy.entity"/>
    </typeAliases>
    <!--是mysql的-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <!--导入实体类配置文件-->
    <mappers>
        <mapper resource="com/ywy/entity/User.xml"/>
    </mappers>
</configuration>

UserDao接口中

package com.ywy.dao;

import com.ywy.entity.User;
import java.util.List;

public interface UserDao {
    public List<User> findAllUser();
    public void addUser(User user);
    public User findUserId(int id);
    public void updateUser(User user);
    public void deleteUser(int id);
}

实体类的配置文件–User.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="com.ywy.dao.UserDao"><!--namespace实现的接口-->  
<!--id名一定要和接口中的方法一样     resultType:返回类型   paranmeterType:参数-->
<!--resultType:直接写了吗是因为在mybatis-config.xml中取了别名  如果没有去别名,就需要包名加类名-->
    <select id="findAllUser" resultType="User">
        select * from user;
    </select>
    <select id="findUserId" resultType="User">
        select * from user where uid=#{uid};
    </select>
    <insert id="addUser" parameterType="User">
        insert into user values(null,#{uname},#{pass});
    </insert>
    <update id="updateUser" parameterType="User">
        update user set uname=#{uname},pass=#{pass} where uid=#{uid};
    </update>
    <delete id="deleteUser" parameterType="int">
        delete from user where uid=#{uid};
    </delete>
</mapper>

在pom.xml中加入一段代码,不然不会加载java中的xml文件

<!--解决java目录下xml文件不编译的问题-->
<build>
  <finalName>MyBatis_01</finalName>
  <!--在finalName的下面加-->
<resources>
  <resource>
    <directory>src/main/java</directory>
    <includes>
      <include>**/*.xml</include>
    </includes>
  </resource>
</resources>
</build>

测试包中的测试类TestCRUD中

package com.ywy.test;

import com.ywy.dao.UserDao;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class TestURCD {
    public SqlSession session;

	//增删改查测试
	//在什么之前执行
	@Before
	public void before() {
		//获取SqlSession工厂
	    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(getClass().getClassLoader().getResourceAsStream("mybatis-config.xml"));
	    //获取SqlSession对象
	    session = factory.openSession();
	    
	}



	@Test
	public void testAdd() {
		//查询全部
		 UserDao ud = session.getMapper(UserDao.class);
		 List<User> list=ud.findAllUser();
		 System.out.println(list);
		 
		//新增
		/*User u=new User("xxx","123");
		ud.addUser(u);*/
		
		//查询单个
		/*User u=ud.findUserId(2);
		System.out.println(u);*/
		
		//修改
		/*User u=new User("xxx","123");
		u.setUid(4);
		ud.updateUser(u);*/
			
		//删除
		ud.deleteUser(4);
	}
	
		
	@After
	public void after() {
	    //在什么之后
	    session.commit();
	    session.close();
	}


然后就可以直接在test的类中右键运行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值