最好详细一点,新手小白。
就是按照需求,以后修改SQL都再配置文件中修改而不修改代码。
http://www.cnblogs.com/centor/p/6142775.html 这里有
<?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的使用,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官网教程。
http://www.mybatis.org/mybatis-3/zh/getting-started.html
mybatis官网教程里有
这个很简单,建议拿一个项目看一下
你可以直接百度 SSM框架教学,会有很多的视频,新手应该多敲代码,不然基本学不下去,遇到问题应该多思考,在这并不是你偷懒就能成为一名高级工程师的,个人建议你可以去慕课网、腾讯课堂先把基础学习好,我也是这样过来的都知道学习的枯燥~