MyBatis实现简单的增删改查

第一步:导入mybatis-3.2.3.jar和mysql-connector-java-5.1.25-bin.jar这两个包
第二步:建立好相对应的类,如下图(注:本人的包建立并不规范)
在这里插入图片描述
第三步:编写Config.xml配置文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "mybatis-3-config" "mybatis-3-config.dtd" >
<configuration>
	<typeAliases>
		<!-- 单个别名定义:
		type:类型路径,alias:别名 -->
		<typeAlias type="com.zhiyuan.Bean.User" alias="User"/>
		<!-- 批量定义别名:
		name:指定包名,mybatis自动扫描包中的类,自动定义别名,别名就是类
		名(首字母大小写都可以) -->
		<!-- <package name="" /> -->
	</typeAliases>
	
	<environments default="development">
		<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/数据库名"/>
				<property name="username" value="用户名"/>
				<property name="password" value="密码"/>
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<!-- 通过resource方法一次加载一个映射文件 -->
		<mapper resource="com/zhiyuan/Dao/Mapper.xml"/>
		<!-- 通过mapper接口加载单个映射文件
			遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名
			称保持一致,且在同一个目录中
			以上规范的前提是:使用的是mapper代理方法
		 -->
		<!-- <mapper class="com.zhiyuan.Dao.IUslect" /> -->
		<!-- 批量加载mapper
			指定mapper接口的包名,mybatis自动扫描包下边所有mapper接
			口进行加载
			遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名
			称保持一致,且在同一个目录中
			以上规范的前提是:使用的是mapper代理方法
		 -->
		<!-- <package name="com.zhiyuan.Dao" /> -->
	</mappers>
</configuration>

第四步:编写Mapper.xml配置文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "mybatis-3-mapper" "mybatis-3-mapper.dtd" >
 <!-- 
 	Mapper代理开发规范:
 	1、在Mapper.xml中namespace值等于Mapper接口地址
 	(这里的IUslect接口就是Mapper接口)
 	2、Mapper接口中的方法和Mapper.xml中statement的id一致
 	3、Mapper接口中的方法输入参数类型和Mapper.xml中statement的
 	parameterType指定的类型一致
 	4、Mapper接口中的方法返回值类型和Mapper.xml中statement的
 	resultType指定类型一致
  -->
<mapper namespace="com.zhiyuan.Dao.IUslect">
	<!-- 增 -->
	<insert id="into" parameterType="User">
		insert into users (id,name,age) values(#{id},#{name},#{age})
	</insert>
	
	<!-- 删 -->
	<delete id="desc" parameterType="int">
		delete from users where id = #{id}
	</delete>
	
	<!-- 改 -->
	<update id="gai" parameterType="User">
		update users set name = #{name},age = #{age} where id =#{id}
	</update>
	
	<!-- 查 -->
	<!-- 	resultType(pojo类型):
		使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一
		致,改列才可以映射成功
		如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象
		只要查询出来的列名和pojo中的属性名有一个一致,就会创建pojo对象
	 -->
	<select id="select" parameterType="int" resultType="User">
		select * from users where id = #{id}
	</select>
	
	<!-- 用户综合查询
		#{userCustom.name}:取出pojo包装对象中用户的名称
		${userCustom.age}:取出pojo包装对象中年龄的值
	 -->
	<select id="findUserList" parameterType=
	"com.zhiyuan.Bean.UserQueryVo"
	 resultType="com.zhiyuan.Bean.UserCustom">
		select * from users where users.name = #{userCustom.name}
		 and users.age like '%${userCustom.age}%'
	</select>
</mapper>

第五步:编写ICslect.java接口类,代码如下

package com.zhiyuan.Dao;


import java.util.List;

import com.zhiyuan.Bean.User;
import com.zhiyuan.Bean.UserCustom;
import com.zhiyuan.Bean.UserQueryVo;

public interface IUslect {
	public int into(User user);//增
	public int desc(int id);//删
	public int gai(User user);//改
	public User select(int id);//查
	public List<UserCustom> findUserList(UserQueryVo userQueryVo);
}

第六步:编写User.java实体类,代码如下:

package com.zhiyuan.Bean;

public class User {
	private int id;
	private String name;
	private int age;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
}

第七步:编写UserCustom.java子类,代码如下

package com.zhiyuan.Bean;

public class UserCustom extends User{
	//可扩展用户的信息
}

第八步:编写UserQueryVo.java类,代码如下

package com.zhiyuan.Bean;

/**
 * 包装类型
 * @author Administrator
 *
 */
public class UserQueryVo {
	private UserCustom userCustom;

	public UserCustom getUserCustom() {
		return userCustom;
	}

	public void setUserCustom(UserCustom userCustom) {
		this.userCustom = userCustom;
	}
	
}

第九步:编写CheShiLei.java测试类,代码如下

package com.zhiyuan.Bean;

import java.io.*;
import java.util.List;

import org.apache.ibatis.io.*;
import org.apache.ibatis.session.*;

import com.zhiyuan.Dao.IUslect;

public class CheShiLei {

	public static void main(String[] args) throws IOException {
		//得到文件配置流
		Reader reader = Resources.getResourceAsReader("Config.xml");
		//创建回话工厂,传入mybatis的配置文件信息
		SqlSessionFactory sql = new SqlSessionFactoryBuilder().build(reader);
		//通过工厂得到SqlSession
		SqlSession session = sql.openSession();
		IUslect iuslect = session.getMapper(IUslect.class);//MyBatis自动生成Mapper代理对象
		
//		User user = new User();//增
//		user.setId(4);
//		user.setName("李四");
//		user.setAge(18);
//		int a = iuslect.into(user);
//		session.commit();//提交事务
//		session.close();//释放资源
//		System.out.println(a);
		
//		int user = iuslect.desc(3);//删
//		session.commit();//提交事务
//		session.close();//释放资源
//		System.out.println(user);
		
//		User user = new User();//改
//		user.setName("赵六");
//		user.setAge(25);
//		user.setId(3);
//		int a = iuslect.gai(user);
//		session.commit();//提交事务
//		session.close();//释放资源
//		System.out.println(a);
		
//		User user = iuslect.select(1);//查
//		session.close();//释放资源
//		System.out.println(user.getId()+user.getName()+user.getAge());
		
		//创建包装对象,设置查询条件
		UserQueryVo userQueryVo = new UserQueryVo();
		UserCustom userCustom = new UserCustom();
		userCustom.setName("李四");
		userCustom.setAge(18);
		userQueryVo.setUserCustom(userCustom);
		//调用iuslect的方法
		List<UserCustom> list = iuslect.findUserList(userQueryVo);
		System.out.println(list);
	}

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值