MyBatis学习(一):MyBatis的基本用法

本篇文章主要讲解的是Mybatis的入门,包括MyBatis的环境搭建,基础知识点,以及使用MyBatis完成最基础的增删改查的操作。

1.MyBatis的环境搭建

首先搭建项目结构,如图所示,新建项目MyBatisDemo
在这里插入图s片描述
引入MyBatis的jar包 mybatis-3.4.6.jar ,引入mysql的数据库连接包 mysql-connector-java-5.17-bin.jar,为了观察方便,引入log4j-1.2.17.jar。接下来编写jdbc.properties和log4j.properties文件的内容如下图所示
jdbc.properties
在这里插入图片描述
log4j.properties
在这里插入图片描述
使用mysql数据库新建名为mybatis的数据库,之后创建表tb_user

CREATE TABLE `tb_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(18) DEFAULT NULL,
  `sex` char(2) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8

2.创建核心控制文件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 -->
<configuration>
	<!--properties标签,引入jdbc.properties文件  -->
	<properties resource="jdbc.properties"/>
	<!--settings标签,用来设置数据库的加载方式以及配置log4j  -->
	<settings>
		<setting name="lazyLoadingEnabled" value="false" />
		<setting name="logImpl" value="LOG4J"/>
	</settings>
	<!--环境配置,即数据源的配置,environments标签下可以配置多个environment,每个环境使用id进行标识,default属性必须选择一个存在的environment的id,这里使用的jdbc的数据源  -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}" />
				<property name="url" value="${jdbc.url}" />
				<property name="username" value="${jdbc.username}" />
				<property name="password" value="${jdbc.password}" />
			</dataSource>
		</environment>
	</environments>
	<!--mappers用来指定需要加载的mapper.xml  -->
	<mappers>
		<mapper resource="cn/com/houzi/mapper/UserMapper.xml" />
	</mappers>
</configuration>

3.创建普通的pojo类

package cn.com.houzi.pojo;
/* 
* @author xiaolieren 
* @date 2018年9月30日 上午10:48:35 
* @version 1.0 
*/ 
public class User {
	private Integer id;
	private String name;
	private String sex;
	private Integer age;
	
	public User() {}
	public User(String name,String sex,Integer age) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "User "+"[id="+id+",name="+name+",sex="+sex+",age="+age+"]";
	}
}

4.创建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="cn.com.houzi.mapper.UserMapper"> 
	<insert id="saveUser" parameterType="cn.com.houzi.pojo.User" useGeneratedKeys="true">
		INSERT INTO TB_USER(name,sex,age) VALUES (#{name},#{sex},#{age})
	</insert>
	<select id="selectUser" resultMap="userResultMap">
		SELECT * FROM TB_USER
	</select>
	<!--id表示数据库的主键,coloumn表示数据库表的列名,property表示数据库列映射到返回类型的属性,即pojo类的属性  -->
	<resultMap type="cn.com.houzi.pojo.User" id="userResultMap">
		<id property="id" column="id"/>
		<result property="name" column="name"/>
		<result property="sex" column="sex"/>
		<result property="age" column="age"/>
	</resultMap>
	<!--根据id查询数据  -->
	<select id="selectOne" parameterType="int" resultType="cn.com.houzi.pojo.User">
		SELECT * FROM TB_USER WHERE id=#{id} 
	</select>
	<update id="modifyUser" parameterType="cn.com.houzi.pojo.User">
		UPDATE TB_USER SET 	name=#{name},sex=#{sex},age=#{age} WHERE id=#{id}
	</update>
	<delete id="deleteUser" parameterType="cn.com.houzi.pojo.User">
		DELETE FROM TB_USER WHERE id=#{id}
	</delete>
</mapper>

5.创建测试类MyBatisTest

package cn.com.houzi.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 cn.com.houzi.pojo.User;

/* 
* @author xiaolieren 
* @date 2018年9月30日 上午11:35:27 
* @version 1.0 
*/
public class MybatisTest {

	public static void main(String[] args) {
		try {
			//加载配置文件,获取sqlSessionFactory,创建sqlSession对象
			InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
			SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
			SqlSession sqlsession = sqlSessionFactory.openSession();
			//1.测试插入一条数据
			/*User user = new User("rose","女",18);
			sqlsession.insert("cn.com.houzi.mapper.UserMapper.saveUser", user);*/
			
			//2.测试查询所有的数据
			/*List<User> userList = sqlsession.selectList("cn.com.houzi.mapper.UserMapper.selectUser");
			for(User user:userList) {
				System.out.println(user.toString());
			}*/
			
			//3.测试修改一条数据
			/*User user = sqlsession.selectOne("cn.com.houzi.mapper.UserMapper.selectOne",1);
			System.out.println(user.toString());
			user.setName("admin1");
			user.setSex("女");
			user.setAge(19);
			sqlsession.update("cn.com.houzi.mapper.UserMapper.modifyUser", user);*/
			
			//4.测试删除一条数据
			//sqlsession.delete("cn.com.houzi.mapper.UserMapper.deleteUser",3);
			sqlsession.commit();
			sqlsession.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

至此mybatis的基本用法已经介绍完成。本文主要通过单表的进行了对mybatis基本用法的演示,讲解了基本的语法,然后进行了增删改查的简单实现

猜你喜欢

转载自blog.csdn.net/hou_zi/article/details/82910042