MyBatis基本用法(封装用法)


1.配置开发环境

---导入mybatis-3.2.7.jar包和mysql-connector.jar包

---添加SqlMapConfig.xml和EmpMapper.xml两个配置文件

2.写一个实体类Emp

package entity;
import java.io.Serializable;
public class Emp implements Serializable{
private Integer id;
private String name;
private Double salary;
private Integer 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 Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}

}

3.配置SqlMapConfig.xml文件(指定数据库连接参数SQL定义文件)

<?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> 
  <environments default="environment">  
    <environment id="environment">  
      <!-- 使用jdbc事务管理-->  
      <transactionManager type="JDBC" />  
      <!-- 数据库连接池-->  
      <dataSource type="POOLED">  
        <property name="driver" value="com.mysql.jdbc.Driver" />  
        <property name="url" value="jdbc:mysql:///mybatis?useUnicode=true&amp;characterEncoding=utf8" />  
        <property name="username" value="root" />  
        <property name="password" value="123456" />  
      </dataSource>  
    </environment>
  </environments>   
    <!-- 加载sql定义文件 -->  
  <mappers>
    <mapper resource="EmpMapper.xml"/>
  </mappers>

</configuration>

4.配置EmpMapper.xml文件(定义SQL语句:namespace是包名.接口名)

<?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.EmpDao">
  <select id="findAll" resultType="entity.Emp">
    select * from emp
  </select>
  <select id="findById" parameterType="int" resultType="entity.Emp">
    select * from emp where id=#{id}
  </select>

</mapper>

5.写一个工具类MyBatisUtil,用于获取SqlSession

public class MyBatisUtil {
public static SqlSession getSqlSession(){
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//加载SqlMapConfig.xml文件
String conf = "SqlMapConfig.xml";
//把文件编程一个流(MyBatisUtil是当前类的名字)
InputStream confStream = MyBatisUtil.class.getClassLoader().getResourceAsStream(conf);
//获取SqlSessionFactory
SqlSessionFactory factory = builder.build(confStream);
//获取SqlSession
SqlSession session = factory.openSession();
return session;
}

}

6.写一个接口类:EmpDao

package dao;
import java.util.List;
import entity.Emp;
public interface EmpDao {
public List<Emp> findAll();
public Emp findById(int id);

}

7.写一个测试类

public class TestEmp {
public static void main(String[] args) {
SqlSession session = MyBatisUtil.getSqlSession();
//无参的情况
// List<Emp> list = session.selectList("findAll");
EmpDao empDao = session.getMapper(EmpDao.class);
//这个方法所执行的就是session.selectList("findAll");只是被封装了
List<Emp> list = empDao.findAll();
for(Emp e:list){
System.out.println(e.getName());
}
//有参的情况
//Emp emp = session.selectOne("findById", 2);
Emp emp = empDao.findById(2);
if(emp!=null){
System.out.println(emp.getName());
}else{
System.out.println("未查到此条记录");
}
//增删改都需要提交事务,查询不需要
//session.commit();
session.close();
}

}

8.运行测试方法,会输出相应的结果

猜你喜欢

转载自blog.csdn.net/qq_39924152/article/details/80591005
今日推荐