JAV求代码,实现连接数据库,并执行写在XML中的SQL 80C

最好详细一点,新手小白。
就是按照需求,以后修改SQL都再配置文件中修改而不修改代码。

8个回答

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

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



<!-- 通过用户id返回用户信息 -->



select * from user where id = #{id}

<!-- 返回List而定义的resultMap,注意column是数据库中定义的列字段,而property是我们自定义的字段,能够解决属性和数据库字段不一致的问题 -->  
<resultMap type="User" id="resultUserList">  
    <id column="id" property="id"></id>  
    <result column="userName" property="userName"/>  
    <result column="userAge" property="userAge"/>  
    <result column="userAddress" property="userAddress"/>  
</resultMap>  
<!-- 通过用户名返回用户列表 -->  
<!-- 记住:在获取List列表的时候,resultMap="resultUserList"千万别写成resultType="resultUserList",否则报错 -->  
<select id="getUserList" parameterType="string"  resultMap="resultUserList">  
    select * from `user` where userName like #{userName}  
</select>  


<!-- 记住type="Article"新加一个class,要去configuration.xml进行别名定义,否则找不到报错 -->  
<!-- 通过association来关联user,达到多对一的效果,多篇文章对应一个用户 -->  
<!-- column="aid"给数据库列id命了一个别名,区分关联的id,否则只能查询出一条数据 -->  
<resultMap type="Article" id="resultUserArticleList">  
    <id column="aid" property="id"></id>  
    <result column="title" property="title"/>  
    <result column="content" property="content"/>  
    <!-- <association property="user" javaType="User">  
        <id column="id" property="id"></id>  
        <result column="userName" property="userName"/>  
        <result column="userAddress" property="userAddress"/>  
    </association> -->  
    <!-- 上面的association等同于下面的这个,前提条件是之前就已经定义过resultUserList -->  
    <association property="user" javaType="User"  resultMap="resultUserList"></association>  
</resultMap>  
<!-- 获取用户的多个文章 -->  
<select id="getUserAticles" parameterType="int"  resultMap="resultUserArticleList">  
    select user.id,user.userName,user.userAddress,  
   article.id aid,article.title,article.content   
   from user,article   
   where user.id=article.userid and user.id=#{id}  
</select>  




 <!-- useGeneratedKeys设置为"true"表明要MyBatis获取由数据库自动生成的主键;keyProperty="id"指定把获取到的主键值注入到User的id属性 -->  
<insert id="insertUserInfo"  parameterType="User" useGeneratedKeys="true" keyProperty="id">  
    insert into `user`(userName,userAge,userAddress) values (#{userName},#{userAge},#{userAddress})  
</insert>  

<update id="updateUserInfo" parameterType="User">  
    update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}  
</update>  

<delete id="deleteUserInfo" parameterType="int">  
    delete from `user` where id=#{id}  
</delete>  

推荐这种东西看mybatis官网教程。
http://www.mybatis.org/mybatis-3/zh/getting-started.html

可以了解一下mybatis的使用,mybatis实现了sql和代码的分离,应该能解决你的问题

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

public class CreateXMLForEnterServelet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";

//Initialize global variables
public void init() throws ServletException {
}

//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
        ServletException, IOException {
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    //获取传递过来的值
    String databaseType = request.getParameter("select");
    String userName = request.getParameter("userName");
    String userPassword = request.getParameter("userPassword");
    String dbName = request.getParameter("dbName");
    String dbSouse = request.getParameter("dbSouces");
    int port = Integer.parseInt(request.getParameter("portNum"));
    Document doc;
    Element root;
    try
    {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        String path = request.getRealPath("/");
        File file = new File( path + "/" + "DBInfo.xml");
        if(!file.exists())
        {
            doc = db.newDocument();
            root = doc.createElement("DBInfo");
            doc.appendChild(root);
        }
        else
        {
            doc = db.parse(file);
            root = doc.getDocumentElement();
        }

//添加子节点
Element rowNode = doc.createElement(databaseType);
root.appendChild(rowNode);
Node node = doc.createElement("Driver");
Node nodestr = doc.createElement("ConnectString");
Node serverName = doc.createElement("ServerName");
Node nodeName = doc.createElement("UserName");
Node nodePWD = doc.createElement("PassWord");
Node nodePort = doc.createElement("Port");
Node nodeDB = doc.createElement("DataBase");

        rowNode.appendChild(node);
        rowNode.appendChild(nodestr);
        rowNode.appendChild(serverName);
        rowNode.appendChild(nodeDB);
        rowNode.appendChild(nodeName);
        rowNode.appendChild(nodePWD);
        rowNode.appendChild(nodePort);

        String nodeValue;//Driver
        String nodeConStr;//连接字符串
        if(databaseType.equals("ORACLE"))
        {
           nodeValue = "oracle.jdbc.driver.OracleDriver";
           nodeConStr = "jdbc:oracle:thin";
        }
        else
        {
            nodeValue = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
            nodeConStr = "jdbc:microsoft:sqlserver";
        }
        Text text = doc.createTextNode(nodeValue);
        Text textstr = doc.createTextNode(nodeConStr);
        Text textName = doc.createTextNode(userName);
        Text textPWD = doc.createTextNode(userPassword);
        Text textServer = doc.createTextNode(dbName);
        Text textPort = doc.createTextNode(String.valueOf(port));
        Text textDB = doc.createTextNode(dbSouse);

        node.appendChild(text);
        nodestr.appendChild(textstr);
        nodeName.appendChild(textName);
        nodePWD.appendChild(textPWD);
        serverName.appendChild(textServer);
        nodePort.appendChild(textPort);
        nodeDB.appendChild(textDB);

        DOMSource doms = new DOMSource(doc);

        StreamResult sr = null;

        TransformerFactory tff = TransformerFactory.newInstance();
        Transformer tf = tff.newTransformer();
        sr = new StreamResult(file);
        tf.transform(doms,sr);
        out.println("<h1>Create XMLFile Is Ok!!</h1>");
        request.getRequestDispatcher("index.jsp").forward(request,response);
    }
    catch(Exception ex)
    {
        out.println("<h1>生成 XML 配置文件时出现错误:</h1><br/><h4>"+ex+"</h4>");
        out.println("<br/><br/>");
        out.print("<a href='index.jsp'>【点这里回到首页】</a>");

    }

    out.close();

}

//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
        ServletException, IOException {
    doGet(request, response);
}

//Clean up resources
public void destroy() {
}

}

mybatis官网教程里有

这个很简单,建议拿一个项目看一下

你可以直接百度 SSM框架教学,会有很多的视频,新手应该多敲代码,不然基本学不下去,遇到问题应该多思考,在这并不是你偷懒就能成为一名高级工程师的,个人建议你可以去慕课网、腾讯课堂先把基础学习好,我也是这样过来的都知道学习的枯燥~

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SQL写在xml中
easymybatis提供的一些查询方式已经满足大部分的查询需求,但是有些复杂的sql语句还是需要写在xml文件中。easymybatis同样支持将sql语句写在xml中,具体配置如下: 在application.properties添加一句 mybatis.mapper-locations=classpath:/mybatis/mapper/*.xml这句话用来指定xml文件的存放地。 在reso
连接数据库写在类中
<br />怎么把连接数据库和打开数据库的代码写在类中经其他的窗体调用?
连接数据库并执行查询语句
String connsql = @&quot;Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=msql;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrit...
连接数据库代码写在哪里好?
连接数据库代码写在哪里安全?rn我所知道的两种:一种写在类里面;一种写在web.config里面。rn还有没有更加安全的写法?
Jav笔记_XML(二)
XMl(二) 1、使用DOM操作XML(修改和删除) // 根据标签名获取元素节点列表: nodeList getElementsByTagName(String tagName); // 获取节点列表的长度: int getLength(); // 根据索引获取节点列表中的元素: Node item(int index); // 获取元素节点的属性: String getAttribute...
Linux脚本连接数据库并执行SQL语句
“盈盈楼上女,皎皎当窗牖” 最近收到一个任务就是,需要写一个自动的脚本,把数据查出来,并导出数据文件; 具体步骤是:1:根据基表生成当天的日表; 2:往生成的日表插入数据; 3:把插入日表的数据导出来; 具体脚本及说明如下: #!/bin/bash #数据库连接配置 #ip地址 DBHOST=&amp;quot;135.10.59.62&amp;quot; #端口 DBPORT=&amp;quot;3306&amp;quot; #用户名 DBUSER=&amp;quo
python连接数据库并执行SQL语句
python连接数据库并执行SQL语句 第一次发表博客,如果有什么错误请见谅 1.创建与数据库连接对象 2.建立游标对象 3.利用游标对象 执行SQL语句命令 4.#提交到数据库 5.关闭游标对象 6.关闭数据库连接 7.建立一个Mysqlpython 类 实现数据库的连接 关闭 和执行SQL语句操作,实现对数据库连接的封装 个人理解 因为在所有计算机语言中, 连接数据库是...
一、jmeter如何连接数据库并执行SQL
111
Jav解析xml
&lt;?xml version="1.0" encoding="GB2312"?&gt; &lt;data&gt; &lt;row user="abc" username="abcname" age="26"/&gt; &lt;/data&gt; public static void main(String[] args) throws ...
SQL语句写在文本文件中,如何读取并执行?
SQL语句写在文本文件中,在查询分析器中是可以一次执行完成的。但在.net中如何执行呢?是不是要一句一句的读取呢?
用xml连接数据库代码
package com.util.db;import java.sql.Connection;import java.sql.DriverManager;//import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;import com.util.db.DbInfo;pub
求一段SQL执行代码
求在mysql数据库里查询表thumb字段中不为空的在字段值前面加上目录路径,例如:字段thumb的值为200710/20071023051943808.jpg,那现在在他前面加上Sight/UploadFiles/,在执行SQL代码后变成为Sight/UploadFiles/200710/20071023051943808.jpg,谁能帮帮忙哟~~~谢谢
求 解释Jav一点代码含义
[code=Java]rnrnthis.addWindowListener(new WindowAdapter() rn rn public void windowClosing(WindowEvent e) rn rn System.exit(0); rn rn rn); rn[/code]rnrn意思大概能看懂 ,就是添加一个事件,退出程序。rnrn我一直搞C#,现在要接触Java,遇到这句代码,不知道这是Java语法还是其他什么的?rnrnC#中的匿名方法,匿名类都不像。 求给解释,谢谢rnrn
C#中如何连接数据库并执行SQL语句
开发工具:Visual Studio 2012数据库: SQL Server 2012使用Visual Studio时还是直接和微软自家的SQL Server数据库连接比较方便,就像使用Eclipse时和MySQL连接便捷一样的道理无论使用什么工具步骤都一样:首先保证相关工具都已经正确安装了 开启数据库连接服务 在开发工具中通过用户名和口令与数据库进行关联 执行SQL语句 关闭相关连接和服务连接
简单的JAV代码
一般的Java代码,用于做日历的代码,可以根据需要显示一年中某月的日历,也可以显示全部日历
Oracle基本访问工具 SQL*Plus-连接数据库并执行SQL
通过本课程,学习数据库的安装、卸载和数据库的创建,使用Oracle工具连接数据库,Oracle基本对象的创建和维护,创建数据库用户,Oracle数据字典。
mybatis连接数据库并实现
1.需要创建一个mybaties工作环境2.并在main----&amp;gt;resources下创建mybatis-config.xml,如下图3.在dao包里面创建mybatisMapper.xml模板,如下图4.再回到mybatis-config.xml中,把mybatisMapper.xml模板的路径写在里面,如下图5.创建一个测试类6.查看测试结果...
求C#连接数据库代码
我现在新建一个窗口,上面有一个TextBox,和Button,我想点击button的时候,链接数据库,如果链接成功的话,TextBox上显示链接成功,否刚显示链接失败,谁帮我实现下~~!,我数据库是有带密码~的默认用户名sa
求连接数据库的代码
我先拖放一个oracleConnection1控件到窗体上,在oracleConnection1的属性窗口中设置好连接,连的是oracle数据库,现在已经测试连通了,然后在Login_Load中要怎么写才能打开数据库?rnrn我是这样写的,不行,出错:rnOracleConnection oracleConnection1 = new OracleConnection();rntryrnrn oracleConnection1.Open();rn oracleConnection1.Close();rnrncatch(OracleException exp)rnrn oracleConnection1.Close();rn throw exp;rn
求连接数据库代码
如何连接ACCESS数据库
求连接数据库代码!
我用的是...rnrn连接数据库的!rn...rnrn给我个如今用的连接数据库代码,谢谢了!rn新的有什么好处??
求VC连接数据库的代码
要求不用odbc连接的。谢谢。给我一个查询数据库表的例子就行
.net连接数据库的代码写在哪里合适
用asp写网站,可以把连接数据库的代码写在单独的文件中 例如conn.asp,rn只需要创建一个conn的连接,然后在其他的页面引入conn.asp即可使用conn,rn那么用.net做web开发,应该怎么做??rn不能每个页面都要写个 Page_Load()来连接数据库吧!!
求JSP连接数据库代码
rt
求struts连接数据库的代码
求struts连接数据库的代码,尽量简单的连接代码,但是代码要全,数据库最好是sqlserver或者oracle。可以贴出代码,也可以发邮件到我的邮箱:springouting@hotmail.com,邮件中请注名您在此贴回复的用户名,我好给分。rn谢谢~~
PHP中连接数据库与sql语句的执行
在PHP中连接数据库的方式主要有:mysql(面向过程)、mysqli(面向对象、面向过程)、PDO 但是,最常用的方式就是:mysqli的面向对象,实现的方法就是将mysqli封装成一个类。 构造方法: —construct([string $host [,string $username [,string $password[,string $dbname [,int $post [,s...
sql/pl正确执行而写在程序中不能执行
SELECT*FROMCOMM.COMM_GOODS_CLASSTSTARTWITHT.LASTCLASSID=0ANDT.ISDELETE=0CONNECTBYPRIORT.ID=T.LASTCLASSIDANDT.ISDELETE=0ORDERSIBLINGSBYT.SORT 上面的sql语句在sql/pl中可以正确...
xml 中连接数据库的方法
在xml 中连接数据库的方法 在xml 中连接数据库的方法
sql包 连接数据库的代码
sql包sql包 连接数据库的代码
在jav
问题:rnrn1.rn我在在javascript中怎么才能取到值了?rnrnrn2.rnrn我作了个测试:rnrn在javascript能取到值。rnrnrn方法:rnrnfunction c()rnrn var readValue = document.getElementById("Hidden1").value;rn rn alert(readValue);rn rnrnrnrnrn
(Prototype)原型模式的Jav实现
package DesignPattern.prototype; import java.util.ArrayList; //原型01,实现Cloneable接口并覆盖clone()方法 class ConcretePrototype01 implements Cloneable { private String name; public ConcretePrototyp...
python 连接数据库执行sql 查询
Python 连接数据库执行sql 操作
.net连接数据库,执行sql脚本
1、定义指令集:using System.Data.SqlClient;2、定义sql连接: SqlConnection conn= new SqlConnection("server=(local);database=colorring;uid=sa;pwd=;");3、打开sql连接: conn.Open();4、定义sql语句:string sqlstr = "insert into
Java 连接数据库、执行SQL封装类
/*当执行SQL时发现不能连接数据库,先重连一次*/   import java.io.FileInputStream; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.
SQL执行XML编码问题
nvarchar的xml串要用utf-16  varchar的才能用gb2312和utf-8
JAV 数组 二叉树实现
package com.data.struct.tree.binaryTree;   public class ArrayBinTree&amp;lt;T extends Comparable&amp;lt;T&amp;gt;&amp;gt; { /* 树高度 */ private int deepth = 0; /* 存储树结构数据 */ private Object[] arr ; /* 数组大小 */ p...
代码连接数据库并使用存储过程?
如题,不是使用数据源控件和数据绑定控件;rn在ASPX页面代码中实现,怎么实现?rn谢谢了.
求改写在vb和matrixvb中实现
代码是VB的rn先编写一个M-函数文件Example2_1:rnfunction f=Example2_1(c,tdata)rnf=c(1)*(exp(-c(2)*tdata)-exp(-c(3)*tdata));rn保存后,在命令窗口中输入:rnclearrntdata=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16];rnydata=[30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 8 15 12 10 7 7 4];rnc0=[1 1 1];rnfor i=1:50;rnc=lsqcurvefit('Example2_1',c0,tdata,ydata);rnc0=c;rnendrn得到最优解为:c= 117.05,0.1930,1.9546rnrn代码如下:rnPrivate Sub Form_Load()rnDim c As MatrixrnDim tdate As Matrixrnc0 = CreateMatrix(1, 1, 1)rntdata = CreateMatrix(0.25, 0.5, 0.75, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)rnydata = CreateMatrix(30, 68, 75, 82, 82, 77, 68, 68, 58, 51, 50, 41, 38, 35, 28, 25, 8, 15, 12, 10, 7, 7, 4)rnc = lsqcurvefit(example2_1(c, tdate), c0, tdata, ydata)rnEnd SubrnPrivate Function example2_1(c As Matrix, tdate As Matrix) As Matrixrnexample2_1 = c(1) * (Exp(-c(2) * tdata) - Exp(-c(3) * tdata))rnPrint crnrnEnd Functionrnrn系统提示子函数或程序未定义rn求高手在VB中引用matrixvb实现非线性拟合,使用函数为lsqcurvefitrn
java连接数据库并执行sql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
PHP MYSQL 使用 PDO 连接数据库并执行 SQL 语句
&amp;lt;?php //获取GET信息 $driver_phone = $_GET['driver_phone']; $route_from = $_GET['start_place']; $route_to = $_GET['arrive_place']; $start_time = $_GET['start_time']; $arrive_time = $_GET['arrive_time'];...
相关热词 c#线程阻塞的方法 c#获取文件所在路径 c#mysql添加删除 c# 分段处理 大文件 c#list 头加元素 c# textbox密码 c# 循环 时间间隔 c#判断访问设备 c# sso开源框 c#dataset增加列