@Mapper的使用

在使用SSM做项目的时候,发现大量的配置文件要写,真的蛋疼。要知道懒是推进技术发展的源泉,所以有么有办法可以使用注解,以注解的形式让机器自己帮我们配置这些苦力活,毫无疑问,答案是肯定有的,因为懒,所以有了@mapper注解

和往常开发一样,dao接口层是我们要进行配置的,就在这里配置@mapper注解

@Mapper
public interface Inter {
    @Insert("insert into sysuser values('e212te','2','jjj','pwd','ljk','男',1)")
    int addUser();
}

有参数的情况

@Mapper
public interface Inter {
    @select("select * from sysuser where userid=#{id}")
    int queryUserByid(int id);
}

多参数情况

@Mapper
public interface Inter {
    @select("select * from sysuser where userid=#{id} and uanme=#{uname}")
    int queryUserByid(@param("id") int id,@param("uname") String uname);
}

如果是实体类呢

@Mapper
public interface Inter {
   @Select("select * from sysuser where userid=#{userid} or username=#{username}")
    List<Sysuser> selectUser(Sysuser u);
}

首先我们肯定要保证的是数据库连接成功,IOC环境一切正常
我们可以不用扫描mapper的映射文件,直接进行接口包扫描

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="A"/>
    </bean>

其实可以猜测,当进行MapperScan的时候,检查到@Mapper,就拦截,生成代理类加入集合中,当执行该类的某一个方法时,检查方法的注解和参数,获取相应的值,执行方法和sql

不足的是,每一个接口都需要配置mapper注解,所以说懒是技术发展的中间力量,后来有又了@MapperScan注解

下面进行测试

public class InterTest {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-dao.xml");
        Inter bean = applicationContext.getBean(Inter.class);
        int i = bean.addUser();
        System.out.println(i);
    }
}
"C:\Program Files\Java\jdk1.8.0_144\bin\java.exe" "-javaagent:D:\IntelliJ IDEA\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar=59005:D:\IntelliJ IDEA\IntelliJ IDEA 2018.2.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program bin\rep\org\springframework\spring-tx\5.2.4.RELEASE\spring-tx-5.2.4.RELEASE.jar" 
九月 22, 2020 7:10:12 下午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info
信息: {dataSource-1} inited
1

Process finished with exit code 0

你可能感兴趣的:(spring,mvc,mybatis,spring,java,mysql,mapper)