【Mybatis之基于XML表单的CURD】(完整版)

①配置pom.xml全局文件

需要导入包:
	<dependencies>
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.5.0</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.17</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.10</version>
			<scope>provided</scope>
		</dependency>


	</dependencies>

②配置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">
<!-- 需要注意的地方http://mybatis.org/dtd/mybatis-3-config.dtd -->
<configuration><!-- 配置 -->

	<typeAliases><!-- 取别名 -->
		<typeAlias type="com.lzw.domain.User" alias="User" />
	</typeAliases>

	<!-- 配置连接池 -->
	<environments default="development">
		<!-- 以jdbc形式提供事务管理 -->
		<environment id="development">
			<transactionManager type="JDBC"></transactionManager>

			<!-- 配置连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://localhost:3306/mybatis_db?characterEncoding=utf-8" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>

		</environment>

	</environments>

	<!-- 读取(扫描) -->
	<mappers>
		<mapper resource="com/lzw/mappers/UserMapper.xml" />
	</mappers>


</configuration>

③创建实体类

package com.lzw.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
		
	private int id;//ID
	private String name;//姓名
	private String hobby;//兴趣
	private String motto;//签名
	
}

④创建接口

package com.lzw.mappers;

import java.util.List;

import com.lzw.domain.User;

public interface UserMapper {
		
	//添加
	public int add(User user);
	
	//删除
	public int delete(int id);
	
	//修改
	public int update(User user);
	
	//全查询
	public List<User> selectAll();
}

⑤配置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="com.lzw.mappers.UserMapper"><!-- 接口的物理路径(包名+接口名) -->


	<!-- id对应的是接口中的方法名(一定要对应,否则动态代理找不到调用的方法) parameterType="User"对应add方法的参数类型,同时也是MyBatis-Config.xml中取的实体别名 
		useGeneratedKeys="true"表示主键自增 keyProperty="id" 主键对应的是com.hp.domain.User类中id属性 -->

	<!-- 添加 -->
	<insert id="add" parameterType="User" useGeneratedKeys="true"
		keyProperty="id">
		insert into user values(null,#{name},#{hobby},#{motto})
	</insert>

	<!-- 删除 -->
	<delete id="delete" parameterType="java.lang.Integer">
		delete from user where id=#{id}
	</delete>

	<!-- 修改 -->
	<update id="update" parameterType="User">
		update user set
		name=#{name},hobby=#{hobby},motto=#{motto} where id=#{id}
	</update>

	<!-- 全查询
	 resultType表示返回的结果类型(要求pojo中的字段名和表中字段完全对应) 
	 resultMap 表示返回结果类型(不要求pojo中的字段名和表中对应,可以自行指定对应关系) 
	 javaType 表示返回结果类型(指定是java属性类型,例如String, java.lang.String) -->
	<select id="selectAll" resultType="com.lzw.domain.User">
		select * from user
	</select>
				
	<!-- 根据ID查询 -->
	<select id="findbyId" parameterType="java.lang.Integer" resultType="User">
		select * from user where id=#{id}
	</select>

</mapper>

⑥创建测试类

package com.lzw.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

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 org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.lzw.domain.User;

public class JunitTest {
	SqlSession session=null;
	@Before
	public void before() throws IOException
	{
		//读取配置文件然后解析
		InputStream config = Resources.getResourceAsStream("MyBatis-Config.xml");
		
		//根据解析配置文件就会创建出一个SqlSessionFactory(工厂对象)
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config);
		
		//打开session
		 session = factory.openSession();//生产一个sqlSession
		System.out.println(session);
		
	}
	
	
	@After
	public void after()
	{
		
		session.commit();//提交
		session.close();//关闭
		
	}
	
	//测试添加
	@Test
	public void testAdd(){
		User user = new User(0,"宝儿姐","看小电影","悲欢自渡,他人难悟");
		//mybatis受影响行数
		int i = session.insert("com.lzw.mappers.UserMapper.add",user);
		System.out.println(i);
	}
	
	//测试删除
	@Test
	public void testDelete(){
		int i = session.delete("com.lzw.mappers.UserMapper.delete",9);
		System.out.println(i);
		
	}
	
	//测试修改
	@Test
	public void testUpdate(){
		User user = new User();
		user.setMotto("必须让你有遗憾这样你才会重返这个世界。");
		user.setName("大冰");
		user.setHobby("冰壶");
		user.setId(5);
		int i = session.update("com.lzw.mappers.UserMapper.update",user);
		System.out.println(i);
	}
	
	//测试全查询
	@Test
	public void testSelectAll(){
		List<User> list = session.selectList("com.lzw.mappers.UserMapper.selectAll");
		for (User user : list) {
			System.out.println(user);
		}
	}
	
	//根据ID查询
	@Test
	public void testFindbyId(){
		User user = session.selectOne("com.lzw.mappers.UserMapper.findbyId",8);
		System.out.println(user);
	}
	
	
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值