MyBatis框架(增删改)
步骤1:在pom.xml中添加一个log4j依赖
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
步骤2:在Resource目录中添加一个名称为log4j.property文件
util:工具类层
public class MyBatisUtil {
//Mybatis
static String path="Mybatis-config.xml";
static SqlSessionFactory factory;
static{
try {
InputStream is = Resources.getResourceAsStream(path);
factory= new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSession(){
return factory.openSession();
}
}
底层数据表中的列和实体类中的属性,只要有一个不匹配,MyBatis框架就不能自动的帮我们装配对象了。装配出来的是null
-------SQL片段:主要解决多个列重复书写的问题
<sql id="columns">
stuid,stuname
</sql>
select <include refid="columns"></include>
---------多条件查询----------------------------------
select * from studentinfo where stuname like '%' #{stuName} '%' and stuAge>#{stuAge}
-------》
select * from studentinfo where stuname like '%' ? '%' and stuAge>?
select * from studentinfo where stuname like concat('%',#{stuName},'%') and stuAge>#{stuAge}
------>
select * from studentinfo where stuname like concat('%',?,'%') and stuAge>?
select * from studentinfo where stuname like '%${stuName}%' and stuAge>#{stuAge}
------》
select * from studentinfo where stuname like '%星星%' and stuAge>?
StudentInfoDao接口:
public interface StudentINfoDao { public List<StudentINfo> shut(); //查询所有 public StudentINfo stud(int id);//根据id查询 public int add(StudentINfo stu); //增加操作 public int update(StudentINfo stu); //修改操作 public int delete(int stuid); //删除操作 public List<StudentINfo> selectlink(StudentINfo info); //模糊查询 }
小配置:
大配置:
测试: