《Java EE核心框架实战》—— 2.4 < sql >标签
本节书摘来异步社区《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](https://yqfile.alicdn.com/c038e87e0a914ce994f97915b0ed0ee5384acce3.png)
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- JAVA Eclipse开发Android程序如何自定义图标
- Java实现 LeetCode 606 根据二叉树创建字符串(遍历树)
- Java实现 LeetCode 343 整数拆分(动态规划入门经典)
- Java实现 蓝桥杯 算法训练 乘法次数
- Java实现 LeetCode 43 字符串相乘
- Java实现第九届蓝桥杯打印大X
- Java实现 蓝桥杯 算法提高最小方差生成树
- Java动态规划实现最短路径问题
- Java实现蓝桥杯VIP 算法训练 矩阵乘方
- java 11 标准Java异步HTTP客户端
- 【学习总结】SQL的学习-2-sql操作
- 【JAVA】Java 异常中e的getMessage()和toString()方法的异同
- 【JAVA】java编译错误:编码UTF8/GBK的不可映射字符
- Atitit if else 选择决策流程ast对比 sql java 表达式类型 binaryExpression hase left and rit expr 目录 1.1. Sql1
- Cause: java.sql.SQLSyntaxErrorException: Unknown column ‘***_id‘ in ‘field list‘
- SQL基础【二十、索引】(超细致版本,前理论,后实践,应对sql面试绰绰有余)
- java 程序运行的基础知识【Java bytecode】
- Mybatis 拦截器报错org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)
- JAVA运行java程序
- Java程序猿从笨鸟到菜鸟之(九十二)深入java虚拟机(一)——java虚拟机底层结构具体解释
- error: not found: value sqlContext/import sqlContext.implicits._/error: not found: value sqlContext /import sqlContext.sql/Caused by: java.net.ConnectException: Connection refused
- 在一个千万级的数据库查寻中,如何提高查询效率?分别说出在数据库设计、SQL语句、java等层面的解决方案。
- sql的介绍——SQL Server数据库管理系统
- 【java】Java 继承