实验二: MyBatis框架应用
实验步骤现有一张员工表如下。利用本章所学知识完成员工管理系统。实现如下功能:根据id查询员工信息、新增员工信息、根据id修改员工信息、根据id删除员工信息。
- 1、创建maven项目,在pom.xml文件中配置依赖:MyBatis、mysql、Junit依赖
- 2、新建实体类User
- 3、在resources下建db.properties、mybatis-config.xml文件。注意要在mybatis-config.xml文件中引入db.properties文件
- 4、在src.main.resources中建包com.dao,包中建UserMapper.xml文件,在文件中绑定接口com.dao.UserDAO,定义查询映射语句。
- 5、在mybatis-config.xml文件中注册UserMapper.xml文件
- 6、在Test.java目录中创建测试类。
- 7、MybatisUtils
- 8、运行测试方法。
1、创建maven项目,在pom.xml文件中配置依赖:MyBatis、mysql、Junit依赖
2、新建实体类User4.0.0 org.example sy2 1.0-SNAPSHOT org.mybatis mybatis 3.5.2 mysql mysql-connector-java 8.0.11 junit junit 4.12 test 8 8 src/main/java ***.properties true src/main/resources ***.properties true
package com.pojo;
public class Users {
private Integer uid;
private String uname;
private Integer uage;
private String uposition;
public Users() {}
public Users(Integer uid, String uname, Integer uage,String uposition) {
this.uid = uid;
this.uname = uname;
this.uage = uage;
this.uposition=uposition;
}
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public Integer getUage() {
return uage;
}
public void setUage(Integer uage) {
this.uage = uage;
}
public String getUposition() {
return uposition;
}
public void setUposition(String uposition) {
this.uposition = uposition;
}
@Override
public String toString() {
return "Users{" +
"uid=" + uid +
", uname='" + uname + ''' +
", uage=" + uage +
", uposition='" + uposition + ''' +
'}';
}
}
3、在resources下建db.properties、mybatis-config.xml文件。注意要在mybatis-config.xml文件中引入db.properties文件
//db.properties mysql.driver=com.mysql.cj.jdbc.Driver mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false mysql.username=root mysql.password=123456 //mybatis-config.xml4、在src.main.resources中建包com.dao,包中建UserMapper.xml文件,在文件中绑定接口com.dao.UserDAO,定义查询映射语句。
package com.dao;
import com.pojo.Users;
public interface UserDao {
public Users getUserById();
int addUser(Users user) ;
int updateUser(Users user);
int deleteUser(int id);
}
5、在mybatis-config.xml文件中注册UserMapper.xml文件
6、在Test.java目录中创建测试类。insert into users(uname,uage,uposition) values (#{uname},#{uage},#{uposition}) update users set uname=#{uname},uage = #{uage},uposition=#{uposition} where uid=#{uid}; delete from users where uid=#{uid};
package test;
import com.dao.UserMapper;
import com.pojo.Users;
import com.utils.MybatisUtils;
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 java.io.IOException;
import java.io.Reader;
import java.util.List;
public class Test {
@org.junit.Test
public void userFindByIdTest() {
//读取文件名
String resources = "mybatis-config.xml";
//创建流
Reader reader = null;
try {
//读取mybatis-config.xml文件内容到reader对象中
reader = Resources.getResourceAsReader(resources);
} catch (IOException e) {
e.printStackTrace();
}
//初始化mybatis数据库,创建SqlSessionFactory类的实例
SqlSessionFactory sqlMapper = new
SqlSessionFactoryBuilder().build(reader);
//创建SqlSession实例
SqlSession session = sqlMapper.openSession();
//传入参数查询,返回结果
Users user = session.selectOne("getUserById", 3);
//输出结果
System.out.println("工号:"+user.getUid());
System.out.println("姓名:"+user.getUname());
System.out.println("年龄:"+user.getUage());
System.out.println("职位:"+user.getUposition());
//关闭session
session.close();
}
@org.junit.Test
public void userAddTest(){
SqlSession session= MybatisUtils.getSqlsession();
UserMapper mapper = session.getMapper(UserMapper.class);
Users u1=new Users();
u1.setUname("张浩");
u1.setUage(23);
u1.setUposition("员工");
int n= mapper.addUser(u1);
session.commit();
if(n>0) System.out.println("ok");
else System.out.println("error");
//关闭session
session.close();
}
@org.junit.Test
public void userUpdateTest(){
SqlSession session = MybatisUtils.getSqlsession();
UserMapper mapper = session.getMapper(UserMapper.class);
Users u2=new Users();
u2.setUid(6);
u2.setUname("张豪");
u2.setUage(50);
u2.setUposition("总经理");
int n= mapper.updateUser(u2);
session.commit();
if(n>0) System.out.println("ok");
else System.out.println("error");
//关闭session
session.close();
}
@org.junit.Test
public void userDeleteTest(){
SqlSession session= MybatisUtils.getSqlsession();
UserMapper mapper = session.getMapper(UserMapper.class);
int n= mapper.deleteUser(6);
session.commit();
if(n>0) System.out.println("ok");
else System.out.println("error");
//关闭session
session.close();
}
}
7、MybatisUtils
package com.utils;
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 java.io.IOException;
import java.io.InputStream;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try
{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
catch(IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlsession(){return sqlSessionFactory.openSession();}
}
8、运行测试方法。
1.查询
2.新增
3.修改
4.删除



