zl程序教程

您现在的位置是:首页 >  后端

当前栏目

《Java EE核心框架实战》—— 2.4 < sql >标签

JAVASQL框架 实战 标签 核心 gt lt
2023-09-11 14:17:36 时间

本节书摘来异步社区《Java EE核心框架实战》一书中的第2章,第2.4节,作者: 高洪岩,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 sql 标签

重复的SQL语句永远不可避免, sql 标签就是用来解决这个问题的。

创建名为sqlTest的Java项目,映射配置文件userinfoMapping.xml的代码如下。

 ?xml version="1.0" encoding="UTF-8" ? 

 !DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" 

 mapper namespace="mybatis.testcurd" 

 sql id="userinfoField" id,username,password,age,insertdate /sql 

 select id="getUserinfoAll" resultType="map" 

 select

 include refid="userinfoField" / 

 from

 userinfo

 /select 

 select id="getUserinfoById" resultType="map" parameterType="int" 

 select

 include refid="userinfoField" / 

 from

 userinfo where id=#{0}

 /select 

 /mapper ```

因为上述代码中的id、username、password和insertdate这4个字段在映射文件中多处出现,所以可以将这4个字段封装进 sql 标签中,以减少配置的代码量。

创建Run.java运行测试类,代码如下。

public class Run {
public static void main(String[] args) {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()

 .build(inputStream);

SqlSession sqlSession = sqlSessionFactory.openSession();
List listUserinfo = sqlSession.selectList("getUserinfoAll");
for (int i = 0; i listUserinfo.size(); i++) {

Map map = listUserinfo.get(i);

System.out.println(map.get("ID") + " " + map.get("USERNAME")

 + " " + map.get("PASSWORD") + " " + map.get("AGE")

 + " " + map.get("INSERTDATE"));

}
System.out.println("");
System.out.println("");
listUserinfo = sqlSession.selectList("getUserinfoById", 5);
for (int i = 0; i listUserinfo.size(); i++) {

Map map = listUserinfo.get(i);

System.out.println(map.get("ID") + " " + map.get("USERNAME")

 + " " + map.get("PASSWORD") + " " + map.get("AGE")

 + " " + map.get("INSERTDATE"));

}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}`
程序运行后的结果如图2-3所示。

c038e87e0a914ce994f97915b0ed0ee5384acce3

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。


异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。