mybatis01——简单增删改查的实现

准备工作:搭建jar包
创建source folder,存放properties文件和xml文件
实现:
entity:`public class Employee {
private int employee_id;
private String login_id;
private String login_pwd;
private String real_name;

public int getEmployee_id() {
	return employee_id;
}
public void setEmployee_id(int employee_id) {
	this.employee_id = employee_id;
}
public String getLogin_id() {
	return login_id;
}
@Override
public String toString() {
	return "Employee [employee_id=" + employee_id + ", login_id=" + login_id + ", login_pwd=" + login_pwd
			+ ", real_name=" + real_name + ", email=" + email + ", phone=" + phone + ", address=" + address + "]";
}
public void setLogin_id(String login_id) {
	this.login_id = login_id;
}
public String getLogin_pwd() {
	return login_pwd;
}
public void setLogin_pwd(String login_pwd) {
	this.login_pwd = login_pwd;
}
public String getReal_name() {
	return real_name;
}
public void setReal_name(String real_name) {
	this.real_name = real_name;
}
public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}
public String getPhone() {
	return phone;
}
public void setPhone(String phone) {
	this.phone = phone;
}
public String getAddress() {
	return address;
}
public void setAddress(String address) {
	this.address = address;
}
private String email;
private String phone;
private String address;

}`

SqlMapConfig.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>
	<properties resource="db.properties"></properties>
	<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 resource="Employee.xml"/>
	</mappers>
</configuration>```
Employee.xml文件:
	

<?xml version="1.0" encoding="UTF-8" ?> select * from employee where employee_id = #{id}
<!-- 返回结果集是集合,resultType写成集合里面放置的对象的类型
	${}拼接符 字符串原样拼接,可能有sql语句注入的风险,如果传入的类型是基本类型,${}中的变量名必须是value
 -->
<select id="findEmployeeByLoginId" parameterType="java.lang.Integer" resultType="com.mybatis.entity.Employee">
	select * from employee where login_id like '%${value}%'
</select>

<insert id="insertEmployee"  parameterType="com.mybatis.entity.Employee">
	<!-- selectKey将主键返回,需要再返回 -->
	<selectKey keyProperty="employee_id" order="AFTER" resultType="java.lang.Integer">
		select LAST_INSERT_ID()
	</selectKey>
	insert into employee(login_id,login_pwd,real_name,email,phone,address)values(#{login_id},#{login_pwd},#{real_name},#{email},#{phone},#{address})
</insert>

<delete id="deleteEmployeeByEmployeeId" parameterType="java.lang.Integer">
	delete from employee where employee_id = #{id}
</delete>

<update id="updateEmployeeByEmployeeId" parameterType="com.mybatis.entity.Employee" >
	update employee set login_id = #{login_id}, login_pwd = #{login_pwd}, real_name = #{real_name}, email = #{email}, phone = #{phone}, address = #{address} where employee_id = #{employee_id}
</update>
``` DAO层: 接口: ``` public interface EmployeeDao { public Employee findEmployeeByEmployeeId(int id); public List findEmployeeByLoginId(String loginId); public void insertEmployee(Employee employee); public void deleteEmployeeByEmployeeId(int id); public void updateEmployeeByEmployeeId(Employee employee); }
实现:
	

public class EmployeeDaoImp implements EmployeeDao {
private SqlSessionFactory factory;
public EmployeeDaoImp(SqlSessionFactory factory)
{
this.factory = factory;
}

@Override
public Employee findEmployeeByEmployeeId(int id) {
	SqlSession sqlSession = null;
	Employee employee = null;
	try {
		sqlSession = factory.openSession();
		employee = sqlSession.selectOne("employee.findEmployeeByEmployeeId", id);
		sqlSession.commit();
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (sqlSession != null) {
			sqlSession.close();
		}
	}
	return employee;
}

@Override
public List<Employee> findEmployeeByLoginId(String loginId) {
	SqlSession sqlSession = null;
	List<Employee> employees = null;
	try {
		sqlSession = factory.openSession();
		employees = sqlSession.selectList("employee.findEmployeeByLoginId", loginId);
		sqlSession.commit();
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (sqlSession != null) {
			sqlSession.close();
		}
	}
	return employees;
}

@Override
public void insertEmployee(Employee employee) {
	SqlSession sqlSession = null;
	try {
		sqlSession = factory.openSession();
		sqlSession.insert("employee.insertEmployee", employee);
		sqlSession.commit();
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (sqlSession != null) {
			sqlSession.close();
		}
	}

}

@Override
public void deleteEmployeeByEmployeeId(int id) {
	SqlSession sqlSession = null;
	try {
		sqlSession = factory.openSession();
		sqlSession.delete("employee.deleteEmployeeByEmployeeId", id);
		sqlSession.commit();
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (sqlSession != null) {
			sqlSession.close();
		}
	}

}

@Override
public void updateEmployeeByEmployeeId(Employee employee) {
	SqlSession sqlSession = null;
	try {
		sqlSession = factory.openSession();
		sqlSession.update("employee.updateEmployeeByEmployeeId", employee);
		sqlSession.commit();
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (sqlSession != null) {
			sqlSession.close();
		}
	}

}

}

测试:
	

public static void main(String[] args) throws IOException {
	String resouce = "SqlMapConfig.xml";
	InputStream inputStream = Resources.getResourceAsStream(resouce);
	
	SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
	
	EmployeeDao employeeDao = new EmployeeDaoImp(factory);
	
	Employee employee = employeeDao.findEmployeeByEmployeeId(3);
	System.out.println(employee);
	
	List<Employee> employees = employeeDao.findEmployeeByLoginId("n");
	for(Employee e:employees)
	{
		System.out.println(e);
	}

// employeeDao.insertEmployee(employee);
// System.out.println(employee.getEmployee_id());
//
// employeeDao.deleteEmployeeByEmployeeId(9);

	employee.setAddress("北京市");
	employeeDao.updateEmployeeByEmployeeId(employee);
}
这只是初步应用mybatis,主要目的是实现sql语句与DAO层的分离。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值