欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis简单使用

程序员文章站 2022-05-29 17:49:41
...

第一步:导包

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>
	<!--1.配置环境 ,默认的环境id为mysql -->

	<!--2.配置Mapper的位置 -->
	<environments default="mysql">
		<environment id="mysql">
			<transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false"/>
				<property name="username" value="root"/>
				<property name="password" value="123456"/>
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="mapper/CustomerMapper.xml"/>
		<mapper resource = "mapper/CustomerMapper2.xml"/>
	</mappers>
</configuration>
<!-- 加载Java配置文件或声明属性信息 -->

 

其中

<environments default="mysql">
		<environment id="mysql">
			<transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false"/>
				<property name="username" value="root"/>
				<property name="password" value="123456"/>
			</dataSource>
		</environment>
	</environments>

这个节点是用来配置数据库环境的  可以配置多环境 但是默认环境只有一个

 

<mappers>
		<mapper resource="mapper/CustomerMapper.xml"/>
		<mapper resource = "mapper/CustomerMapper2.xml"/>
	</mappers>

这个节点是用来导入mapper.xml配置文件->每写一个mapper.xml要是用都需要在这个节点添加子节点引入

编写一个测试接口

package dao;

import java.util.List;

import pojo.Customer;

public interface ICustomerDao {
	Customer findCustomerByName(String name);
	void deleteCustomerById(int id);
	void updateCustomer(Customer customer);
	void insertCustomer(Customer customer);
	List<Customer> getAllCustomer();
}

这里定义简单的增删改查功能

然后为这个接口写一个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="dao.ICustomerDao">
	<!-- 根据id查询单条数据 -->
	<select id="findCustomerByName" parameterType="String"
		resultType="pojo.Customer">
		SELECT * FROM t_customer where username = #{username}
	</select>
	<select id="deleteCustomerById" parameterType="Integer">
		DELETE FROM t_customer WHERE ID = #{id}
	</select>
	<select id="updateCustomer" parameterType="pojo.Customer">
		UPDATE t_customer SET ID = #{id},username =
		#{username},jobs = #{jobs},phone = #{phone} where id = #{id}
	</select>
	<select id="insertCustomer" parameterType="pojo.Customer">
		INSERT INTO t_customer (ID,USERNAME,JOBS,PHONE) VALUES
		(#{id},#{username},#{jobs},#{phone})
	</select>
	<select id="getAllCustomer" resultType="pojo.Customer">
		SELECT * FROM t_customer
	</select>
</mapper>

namespace 一定要是全类名  一般都是包名.类名

每一个<select>节点都对应一个方法  id 对应方法名  paramerterType对应参数类型 resultType对应返回值类型

这里需要注意的是假如查询的不止一条数据 我们以单条数据的数据类型为返回值类型 Mybatis会自动将多条数据封装

成一个List集合见上面代码最后一个节点

<select id="getAllCustomer" resultType="pojo.Customer">
		SELECT * FROM t_customer
</select>

所对应的方法

List<Customer> getAllCustomer();

然后编写测试类

package 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 dao.ICustomerDao;
import pojo.Customer;
public class MybatisTest {
	public static void main(String[] args) {
//		method1();
		InputStream is;
		try {
			is = Resources.getResourceAsStream("mybatis-config.xml");
			SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
			SqlSession sqlSession =sessionFactory.openSession();
			ICustomerDao dao = sqlSession.getMapper(ICustomerDao.class);
//			Customer customer = dao.findCustomerByName("joy");
			Customer customer = new Customer();
			customer .setId(5);
			customer.setJobs("学生");customer.setPhone("13459862825");customer.setUsername("老李");
//			dao.deleteCustomerById(1);
//			dao.insertCustomer(customer);
//			dao.updateCustomer(customer);
			List<Customer> list = dao.getAllCustomer();
			for (Customer customer2 : list) {
				System.out.println(customer2);
			}
//			System.out.println(customer);
			sqlSession.close();
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

这个测试的是getAllCustomer()方法  结果如下

Mybatis简单使用