《Java EE核心框架实战》—— 2.5 将SQL语句作为字符串变量传入

    xiaoxiao2024-04-02  130

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

    2.5 将SQL语句作为字符串变量传入

    Java EE核心框架实战在MyBatis中也支持将SQL语句当成变量传入。

    新建名为sqlStringVar的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"> <select id="getUserinfo" parameterType="map" resultType="map"> select id,username,password,age,insertdate from userinfo where id>#{id} order by ${orderSql} </select> </mapper>``` Java类文件Run.java的代码如下。

    public class Run { public static void main(String[] args) { try { HashMap mapParam = new HashMap(); mapParam.put("id", 5); mapParam.put("orderSql", "id desc"); String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()

    .build(inputStream);

    SqlSession sqlSession = sqlSessionFactory.openSession(); List listUserinfo = sqlSession.selectList("getUserinfo",

    mapParam);

    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(); } }}`上述代码从map中get(字段名称)的形式取得字段对应的值,但字段名称在Oracle中是大写字母,所以这里的字段名称也必须要写成大写形式。为了支持方便的小写形式,可以在映射文件中为定义的SQL语句为字段指定一个别名。

    select id "id",username "username",password "password",age "age"这样从map中就可以以小写的形式取得字段值。

    运行结果如图2-4所示。

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

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)