java调用sql XML配置文件
在java开发的过程中经常会写到关于调用数据库SQL的语句,可能每一个DAO里都会用到SQL语句,
这样会使你查看代码的时候,有时间要找半天才能找到,如果才能调用一个统一的SQL配置文件呢?
以下代码是我个人在以往的项目用到的关于调用SQL配置文件的使用方法,整理如下:
希望对用到的朋友有所帮肋,
如有不同的用法或者建议,请提出。。。。
/**
*
* 调用XML配置文件里的内容,
*/
public class XMLFileUtil{
public static void main(String[] args) throws Exception {
XMLFileUtil xf = new XMLFileUtil();
//得到相应目录下的要调用的 关于配置sql的 xml文件(存放在开发过程中所用到的sql语句)
File f = new File("E:\\workspace\\hibernate\\src\\spirng\\sql\\xml\\test\\XMLFileUtil\\manager1.xml");
//System.out.println(f.getPath());
SAXReader reader = new SAXReader();
//Document xmlDomContent = reader.read(f);
Document xmlDomContent = xf.LoadXmlFile(f.getPath()); //加载xml文件
//System.out.println(">>>>>>>doc="+xmlDomContent);
//只要调用SQL配置文件里的id ="userQuery"
Element hqlElement = XMLFileUtil.findElement(xmlDomContent
.getRootElement(), "HQL", "id", "userQuery");
if (hqlElement != null) { // 取得Element中的implementation属性对象...
Element sqlQuery = hqlElement
.element("sql");
if (sqlQuery != null) { // 取这个属性的值...
String sqlstr = sqlQuery.getText();
//System.out.println(">>>>>>>sqlstr="+sqlstr);
}
}
String sql = xf.getBeanSql("studentQuery");
System.out.println(">>>>>>>sql="+sql);
System.out.println(">>>>>>>sql="+xf.getClass().getResource(""));
}
}
//加载Sql xml 配置文件
public static Document LoadXmlFile(String filePath) {
SAXReader reader = new SAXReader();
// try to load xml data into Document object
Document doc = null;
try {
String urlString = null;
if (filePath.startsWith("\\")) {
urlString = "file:\\" + filePath;
System.out.println(urlString);
} else {
urlString = "file:\\" + filePath;
System.out.println(urlString);
}
logger.debug("XML File's URL :" + urlString);
doc = reader.read(new URL(urlString));
} catch (Exception ex) {
logger.info("Can not load " + filePath);
logger.debug(ex.getMessage(), ex);
}
// return Document object
return doc;
}
//查找XML元素 findElement
public static Element findElement(Element searchedElement,
String targetNodePrefix, String targetNodeAttributeName,
String targetNodeAttributeValue) {
Element elementTarget = null;
for (Iterator i = searchedElement.elementIterator(targetNodePrefix); i
.hasNext();) {
Element element = (Element) i.next();
String strManagerName = XMLFileUtil.getAttributeValue(element,
targetNodeAttributeName);
if (strManagerName.equals(targetNodeAttributeValue)) {
elementTarget = element;
break;
}
}
return elementTarget;
}
manager1.xml 文件代码:
<?xml version="1.0" encoding="UTF-8"?>
<managers>
<HQL id="userQuery">
<sql>from User u where u.name =:user</sql>
</HQL>
<HQL id="studentQuery">
<sql>from Student s where s.name =:user and s.id =:id</sql>
</HQL>
</managers>
分享到:
相关推荐
至于XML笔记,可能会讲解XML文档的结构、DTD和Schema验证、XPath表达式以及Java如何使用DOM、SAX或StAX解析XML文件。 通过深入学习这些笔记,你可以全面理解Java开发的基础,并掌握与数据库交互的关键技术,以及...
本笔记将详细解析MyBatis的configuration配置文件和Mapper XML配置,帮助你深入掌握这两个核心组件。 首先,我们来看MyBatis的`configuration`配置文件。这个XML文件是MyBatis系统的核心,包含了MyBatis运行所需的...
2. **编译源文件**:使用Java编译器(`javac`)将`.java`文件编译成`.class`文件。 3. **运行程序**:通过Java虚拟机(`java.exe`)执行编译后的`.class`文件。 #### 注释 - **单行注释**:使用`//`标记。 - **多行...
MyBatis的Mapper接口和XML配置是用于实现数据库操作的映射,通过定义接口和XML文件中的SQL语句实现数据的CRUD操作。 3. Spring的IoC容器和AOP机制 IoC容器负责管理对象的创建和依赖关系的维护。AOP机制允许开发者将...
Java提供`javax.xml.parsers`包,可以使用`DocumentBuilderFactory`和`DocumentBuilder`来解析XML文档,提取笔记内容。然后,这些内容可以被结构化并显示在程序界面上。 5. **用户界面(UI)设计**: `ClipFrame....
3. 映射文件配置:在mybatis-config.xml中引入Mapper的XML文件。 4. SqlSessionFactory配置:设置数据源、配置文件等信息,生成SqlSessionFactory实例。 5. Mapper接口配置:在Spring配置文件中声明Mapper接口,并...
【标题】"note笔记java demo"揭示了这是一个关于Java编程的实践示例,特别是针对SSM(Spring、SpringMVC、MyBatis)框架的使用。SSM是Java Web开发中常用的三大组件,用于构建基于Model-View-Controller(MVC)设计...
3. MyBatis:MyBatis是一个简单的ORM框架,它允许开发者将SQL语句写在XML配置文件或Java注解中,与Java对象进行绑定。MyBatis的优势在于灵活的SQL编写能力,可以实现更复杂的查询和更新操作,同时保持代码的整洁。 ...
笔记将讲解Servlet生命周期、doGet和doPost方法、请求和响应对象的使用,以及如何配置web.xml文件。 9. **JSP**:Java Server Pages是动态网页技术,与Servlet结合使用。笔记会介绍JSP语法、指令、脚本元素、EL...
- **dialect方言的配置**:此配置项用于指定所使用的数据库类型,不同的数据库系统有不同的SQL语法,因此必须正确配置dialect来确保Hibernate生成正确的SQL语句。 - **show_sql的配置**:通过设置`show_sql`为`...
【标题】"韩顺平java笔记完整版.zip(无笔记,只是代码)"指的是一个包含韩顺平老师Java教学视频中所有代码的压缩文件。这个压缩包不包含笔记,而是专注于提供实际的编程示例,使得学习者可以直接查看和学习Java编程...
Struts 1.X有配置文件struts-config.xml用于定义动作映射,但相比Struts 2,其配置较为复杂。 5. **JavaScript**:JavaScript是一种轻量级的脚本语言,主要用于客户端Web开发,实现页面交互效果。它可以操作DOM...
2. **Servlet**:详述Servlet的生命周期、服务方法、请求和响应对象,以及Servlet配置和部署描述符web.xml的使用。 3. **JSP**:讲解JSP的脚本元素(脚本let、声明、表达式)、指令(page、include、taglib),以及...
MyBatis 可以使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。 一、MyBatis 概述 MyBatis 是由 Apache Software Foundation ...
本笔记源代码涵盖了MyBatis的基本使用、配置、映射器接口、XML配置文件、注解方式的映射以及动态SQL等内容。 1. **MyBatis 概述**: MyBatis 是一个轻量级的持久层框架,它避免了几乎所有的JDBC代码和手动设置参数...
4. **MyBatis**:作为持久层框架,MyBatis使得数据库操作更为简单,通过XML或注解进行SQL映射,将SQL语句与Java代码分离,提供灵活的数据访问控制。 5. **MySQL数据库**:项目中可能使用MySQL作为关系型数据库,...
MyBatis是一款优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件或者注解中,实现了SQL与Java代码的分离,提高了开发效率和可维护性。 【描述】中的“对应代码”指的是通过MyBatis实现数据库操作的Java...
MyBatis摒弃了传统的DAO层手动拼接SQL的方式,而是通过XML或注解方式配置SQL语句,将SQL与Java代码解耦,使得数据库操作更加灵活,易于维护。 二、MyBatis架构 MyBatis的架构主要由以下几个部分组成: 1. ...
在笔记中,可能会详细讲解Mybatis的配置文件、Mapper接口和XML配置,以及如何使用注解进行映射。还会涉及动态SQL,例如if、choose、when、otherwise等标签的使用,以及如何进行参数映射和结果映射。 接着,Spring...