一个用于MyBatis的辅助页面,自动生成实体,mapper,impl,dao,注册spring,mybatis的小玩意
程序员文章站
2022-06-03 08:33:00
[html]
<%@ page language="java" import="java.util.*,java.sql.*,java.io.*" pa...
[html]
<%@ page language="java" import="java.util.*,java.sql.*,java.io.*" pageencoding="utf-8"%>
<!doctype html>
<html>
<body>
<form action="">
<table>
<tr>
<td>src路径:<input name="p" type="text" value="c:/users/administrator/documents/myeclipse/xxxx/src/" size="60"><input type="submit"></td>
<td rowspan="2" valign="top"><p style="width: 100%;height: 100%" id="tip"></p></td>
</tr>
<tr>
<td valign="top">表名:<p style="width: 100%;height: 100%" id="tablename"><input name="t" type="text"></p></td>
</tr>
</table>
</form>
<%
/**********************************************************/
//自定义说明:如果想自己修改,可以调用的信息,注意作用范围,确保包正确,必须先准生成包,使用前设定好src路径,驱动,数据库配置,参数,模板
//string[][] ts [][0]类型,1字段,2大写开头字段
//string bt 表名,大写开头
//string t 表名,小写开头
//string p 项目src路径
//string gz 参数段,多用于构造 例如 string a,string b,int c...
//string gzq 字段,多用于mapper 例如 [id],[name],[code]...
//string gzi 字段参数,多用于mapper, 例如 #{id},#{name},#{code}...
//string gzu 字段参数,多用于mapper, 例如 [id]=#{id},[name]=#{name},[code]=#{code}...
//*****段落,作为diy帮助
//初始化1
//读取数据库1
//判断
//初始化2
//读取数据库2 别忘记了驱动,那玩意我才不去集成
//实体类 建议不要用原型int,double这样的类,因为他们无法赋值null,虽然封装类java.lang.*,例如integer,double这样的会慢点,但是可以满足sql的null
//mapper 这里写sql模板
//impl 这里写impl模板
//dao 这里写dao模板
//spring 注入spring模板
//mybatis 注入mybatis模板
//说明
/**********************************************************/
//初始化
string dbdriver="com.microsoft.sqlserver.jdbc.sqlserverdriver";//数据库驱动
string dburl="jdbc:sqlserver://127.0.0.1:1433;databasename=db";//数据库url
string dbuser="sa";//数据库帐号
string dbpassword="";//数据库密码
//读取数据1
class.forname(dbdriver).newinstance();
connection conn = drivermanager.getconnection(dburl, dbuser,dbpassword);
statement stmt = conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_only);
resultset rs = stmt.executequery("select name from sysobjects where xtype = 'u' and status >= 0");
string str="";
while(rs.next()){
string name=rs.getstring("name");
str+="<input type=\"checkbox\" value=\""+name+"\" name=\"ts\">"+name+"<br/>";
}%>
<script type="text/javascript">
document.getelementbyid("tablename").innerhtml='<%=str%>';
</script>
<%//判断
string p=request.getparameter("p");
string[] tss=request.getparametervalues("ts");
if(tss==null||p==null||p=="")
return;
//初始化2
list<string> pa=new arraylist<string>();
pa.add("unit");//实体类包
pa.add("mapper");//mapper包
pa.add("service");//impl包
pa.add("service");//dao包
pa.add("configuration/spring.xml");//spring路径
pa.add("configuration/mybatis.xml");//mybatis路径
list<string[]> db2java=new arraylist<string[]>();//数据库转实体类的类型设定 [0]为sql类型,[1]为java类型 不满足条件为object
db2java.add(new string[]{"bit","boolean"});
db2java.add(new string[]{"nvarchar","string"});
db2java.add(new string[]{"numeric","double"});
db2java.add(new string[]{"int","integer"});
db2java.add(new string[]{"datetime","java.util.date"});
string tipstr="";
for(int ti=0;ti<tss.length;ti++){
string t=tss[ti];
hashmap[] r = (hashmap[]) null;
//读取数据2
int irownum;
r = (hashmap[])null;
irownum = 0;
int icolcnt = 0;
rs = stmt.executequery("select a.name as [column],b.name as type from syscolumns a,systypes b where a.id=object_id('"+ t+ "') and a.xtype=b.xtype and b.name!='sysname' order by a.id,a.colorder");
resultsetmetadata metadata = rs.getmetadata();
icolcnt = metadata.getcolumncount();
if (rs.next()){
rs.last();
r = new hashmap[rs.getrow()];
rs.beforefirst();
}
while (rs.next()){
r[irownum] = new hashmap();
for (int j = 0; j < icolcnt; j++){
string szcolname = metadata.getcolumnname(j + 1);
string szcolvalue = rs.getstring(szcolname);
if (szcolvalue == null)
szcolvalue = "";
r[irownum].put(szcolname, szcolvalue);
}
irownum++;
}
string bt=t.substring(0,1).touppercase()+t.substring(1);
//实体类文件
file file = new file(p+pa.get(0)+"/"+bt+".java");
if(file.exists())
file.delete();
filewriter fw=new filewriter(file);
bufferedwriter bw=new bufferedwriter(fw);
bw.write("package "+pa.get(0)+";\r\n\n");
bw.write("public class "+bt+" implements java.io.serializable{\r\n");
bw.write(" private static final long serialversionuid=1l;\r\n");
string[][] ts=new string[r.length][3];
for(int i=0;i<r.length;i++){
ts[i][0]="object";
for(string[] temp :db2java)
if(r[i].get("type").equals(temp[0]))
ts[i][0]=temp[1];
ts[i][1]=r[i].get("column").tostring();
ts[i][2]=ts[i][1].substring(0,1).touppercase()+ts[i][1].substring(1);
bw.write(" "+ts[i][0]+" "+ts[i][1]+";\r\n");
}
for(int i=0;i<r.length;i++){
bw.write("\r\n");
bw.write(" public "+ts[i][0]+" get"+ts[i][2]+"(){\r\n");
bw.write(" return "+ts[i][1]+";\r\n");
bw.write(" }\r\n");
bw.write("\r\n");
bw.write(" public void set"+ts[i][2]+"("+ts[i][0]+" "+ts[i][1]+") {\r\n");
bw.write(" this."+ts[i][1]+" ="+ts[i][1]+";\r\n");
bw.write(" }\r\n");
}
bw.write(" public "+bt+"(){\r\n");
bw.write(" }\r\n");
string gz="";
for(int i=0;i<r.length;i++)
gz+=","+ts[i][0]+" "+ts[i][1];
bw.write(" public "+bt+"("+gz.substring(1)+"){\r\n");
for(int i=0;i<r.length;i++)
bw.write(" this."+ts[i][1]+"="+ts[i][1]+";\r\n");
bw.write(" }\r\n");
bw.write("}");
bw.flush();
//mapper文件
string gzq="",gzi="",gzu="";
for(int i=0;i<r.length;i++){
gzq+="["+ts[i][1]+"],";
gzi+="#{"+ts[i][1]+"},";
gzu+="["+ts[i][1]+"]"+"=#{"+ts[i][1]+"},";
}
gzq=(gzq+",").replace(",,", "");
gzi=(gzi+",").replace(",,", "");
gzu=(gzu+",").replace(",,", "");
file = new file(p+pa.get(1)+"/"+bt+".xml");
if(file.exists())
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
bw.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
bw.write("<!doctype mapper public \"-//mybatis.org//dtd mapper 3.0//en\" \"");
bw.write("<mapper namespace=\""+bt+"\">\r\n");
bw.write(" <cache/>\r\n");
bw.write(" <select id=\"select"+bt+"byrid\" resulttype=\""+bt+"\" parametertype=\"java.lang.string\">\r\n");
bw.write(" select "+gzq+" from ["+t+"] where [enable]=1 and [rid]='${value}'\r\n");
bw.write(" </select>\r\n");
bw.write(" <select id=\"select"+bt+"\" resulttype=\""+bt+"\">\r\n");
bw.write(" select "+gzq+" from ["+t+"] where [enable]=1\r\n");
bw.write(" </select>\r\n");
bw.write(" <select id=\"select"+bt+"query\" resulttype=\""+bt+"\" parametertype=\"java.lang.string\">\r\n");
bw.write(" select "+gzq+" from ["+t+"] where [enable]=1 and ${value}\r\n");
bw.write(" </select>\r\n");
bw.write(" <insert id=\"insert"+bt+"\" parametertype=\""+bt+"\">\r\n");
bw.write(" insert into ["+t+"] ("+gzq+")values("+gzi+")\r\n");
bw.write(" </insert>\r\n");
bw.write(" <update id=\"update"+bt+"\" parametertype=\""+bt+"\">\r\n");
bw.write(" update ["+t+"] set "+gzu+" where [rid]=#{rid}\r\n");
bw.write(" </update>\r\n");
bw.write(" <delete id=\"delete"+bt+"\">\r\n");
bw.write(" delete ["+t+"] where [enable]=0\r\n");
bw.write(" </delete>\r\n");
bw.write("</mapper>");
bw.flush();
//impl文件
file = new file(p+pa.get(2)+"/"+bt+"impl.java");
if(file.exists())
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
bw.write("package "+pa.get(2)+";\r\n");
bw.write("\r\n");
bw.write("import java.util.list;\r\n");
bw.write("import org.springframework.stereotype.service;\r\n");
if(!pa.get(2).equals(pa.get(0)))
bw.write("import "+pa.get(0)+"."+bt+";\r\n");
bw.write("@service(\""+bt+"impl\")\r\n");
bw.write("public class "+bt+"impl extends org.mybatis.spring.support.sqlsessiondaosupport implements "+(pa.get(2).equals(pa.get(3))?"":pa.get(3)+".")+bt+"dao {\r\n");
bw.write(" public "+bt+" select"+bt+"byrid(string rid) {\r\n");
bw.write(" return ("+bt+")getsqlsession().selectlist(\"select"+bt+"byrid\",rid);\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" @suppresswarnings(\"unchecked\")\r\n");
bw.write(" public list<"+bt+"> select"+bt+"(){\r\n");
bw.write(" return getsqlsession().selectlist(\"select"+bt+"\");\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" @suppresswarnings(\"unchecked\")\r\n");
bw.write(" public list<"+bt+"> select"+bt+"query(string query){\r\n");
bw.write(" return getsqlsession().selectlist(\"select"+bt+"query\",query);\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" public int insert"+bt+"("+bt+" "+t+") {\r\n");
bw.write(" return getsqlsession().insert(\"insert"+bt+"\","+t+");\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" public int update"+bt+"("+bt+" "+t+") {\r\n");
bw.write(" return getsqlsession().update(\"update"+bt+"\","+t+");\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" public int delete"+bt+"() {\r\n");
bw.write(" return getsqlsession().delete(\"delete"+bt+"\");\r\n");
bw.write(" }\r\n");
bw.write("}");
bw.flush();
//dao文件
file = new file(p+pa.get(3)+"/"+bt+"dao.java");
if(file.exists())
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
bw.write("package "+pa.get(3)+";\r\n");
bw.write("\r\n");
bw.write("import java.util.list;\r\n");
bw.write("import org.springframework.transaction.annotation.transactional;\r\n");
if(!pa.get(3).equals(pa.get(0)))
bw.write("import "+pa.get(0)+"."+bt+";\r\n");
bw.write("\r\n");
bw.write("@transactional\r\n");
bw.write("public interface "+bt+"dao {\r\n");
bw.write(" "+bt+" select"+bt+"byrid(string rid);\r\n");
bw.write(" \r\n");
bw.write(" list<"+bt+"> select"+bt+"();\r\n");
bw.write(" \r\n");
bw.write(" list<"+bt+"> select"+bt+"query(string query);\r\n");
bw.write(" \r\n");
bw.write(" int insert"+bt+"("+bt+" "+t+");\r\n");
bw.write(" \r\n");
bw.write(" int update"+bt+"("+bt+" "+t+");\r\n");
bw.write(" \r\n");
bw.write(" int delete"+bt+"();\r\n");
bw.write("}");
bw.flush();
//spring文件
list<string> lw=new arraylist<string>();
file = new file(p+pa.get(4));
boolean f1=false;
if(file.exists()){
filereader fr=new filereader(file);
bufferedreader br=new bufferedreader(fr);
while(br.ready())
lw.add(br.readline());
if(file.exists())
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
for(int i=0;i<lw.size()-1;i++){
if(lw.get(i).equals(" <bean id=\""+bt+"impl\" class=\""+pa.get(3)+"."+bt+"impl\">"))
f1=true;
fw.write(lw.get(i)+"\r\n");
}
if(!f1){
bw.write(" <bean id=\""+bt+"impl\" class=\""+pa.get(3)+"."+bt+"impl\">\r\n");
bw.write(" <property name=\"sqlsessionfactory\" ref=\"sqlsessionfactory\"/>\r\n");
bw.write(" </bean>\r\n");
}
bw.write(lw.get(lw.size()-1));
bw.flush();
}
//mybatis文件
lw.clear();
file = new file(p+pa.get(5));
boolean f2=false;
if(file.exists()){
filereader fr=new filereader(file);
bufferedreader br=new bufferedreader(fr);
while(br.ready())
lw.add(br.readline());
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
for(int i=0;i<lw.size()-2;i++){
if(lw.get(i).equals(" <typealias alias=\""+bt+"\" type=\""+pa.get(0)+"."+bt+"\"/>"))
f2=true;
fw.write(lw.get(i)+"\r\n");
}
if(!f2)
bw.write(" <typealias alias=\""+bt+"\" type=\""+pa.get(0)+"."+bt+"\"/>\r\n");
bw.write(lw.get(lw.size()-2)+"\r\n");
bw.write(lw.get(lw.size()-1));
bw.flush();
}
bw.close();
fw.close();
tipstr+="<br/>";
tipstr+="已经生成:<br/>";
tipstr+="<br/>";
tipstr+=" 实体类:<br/>";
tipstr+=" "+pa.get(0)+"."+bt+".java{<br/>";
tipstr+=" 字段...<br/>";
tipstr+=" "+bt+"(){}<br/>";
tipstr+=" "+bt+"(所有字段)<br/>";
tipstr+=" }<br/>";
tipstr+="<br/>";
tipstr+=" mapper,dao,impl:<br/>";
tipstr+=" select"+bt+"byrid(string 表id)<br/>";
tipstr+=" select"+bt+"<br/>";
tipstr+=" select"+bt+"query(string 条件)<br/>";
tipstr+=" insert"+bt+"(实体)<br/>";
tipstr+=" delete"+bt+"<br/>";
tipstr+=" update"+bt+"(实体)<br/>";
if(f1||f2){
tipstr+="<br/>";
tipstr+=" <font style=\"color: red\">已注册"+(f1?"spring,":"")+(f2?"mybaits":"")+"</font>";
}
}%>
<script type="text/javascript">
document.getelementbyid("tip").innerhtml='<%=tipstr%>';
</script>
</body>
</html>
作者:icskee
<%@ page language="java" import="java.util.*,java.sql.*,java.io.*" pageencoding="utf-8"%>
<!doctype html>
<html>
<body>
<form action="">
<table>
<tr>
<td>src路径:<input name="p" type="text" value="c:/users/administrator/documents/myeclipse/xxxx/src/" size="60"><input type="submit"></td>
<td rowspan="2" valign="top"><p style="width: 100%;height: 100%" id="tip"></p></td>
</tr>
<tr>
<td valign="top">表名:<p style="width: 100%;height: 100%" id="tablename"><input name="t" type="text"></p></td>
</tr>
</table>
</form>
<%
/**********************************************************/
//自定义说明:如果想自己修改,可以调用的信息,注意作用范围,确保包正确,必须先准生成包,使用前设定好src路径,驱动,数据库配置,参数,模板
//string[][] ts [][0]类型,1字段,2大写开头字段
//string bt 表名,大写开头
//string t 表名,小写开头
//string p 项目src路径
//string gz 参数段,多用于构造 例如 string a,string b,int c...
//string gzq 字段,多用于mapper 例如 [id],[name],[code]...
//string gzi 字段参数,多用于mapper, 例如 #{id},#{name},#{code}...
//string gzu 字段参数,多用于mapper, 例如 [id]=#{id},[name]=#{name},[code]=#{code}...
//*****段落,作为diy帮助
//初始化1
//读取数据库1
//判断
//初始化2
//读取数据库2 别忘记了驱动,那玩意我才不去集成
//实体类 建议不要用原型int,double这样的类,因为他们无法赋值null,虽然封装类java.lang.*,例如integer,double这样的会慢点,但是可以满足sql的null
//mapper 这里写sql模板
//impl 这里写impl模板
//dao 这里写dao模板
//spring 注入spring模板
//mybatis 注入mybatis模板
//说明
/**********************************************************/
//初始化
string dbdriver="com.microsoft.sqlserver.jdbc.sqlserverdriver";//数据库驱动
string dburl="jdbc:sqlserver://127.0.0.1:1433;databasename=db";//数据库url
string dbuser="sa";//数据库帐号
string dbpassword="";//数据库密码
//读取数据1
class.forname(dbdriver).newinstance();
connection conn = drivermanager.getconnection(dburl, dbuser,dbpassword);
statement stmt = conn.createstatement(resultset.type_scroll_insensitive,resultset.concur_read_only);
resultset rs = stmt.executequery("select name from sysobjects where xtype = 'u' and status >= 0");
string str="";
while(rs.next()){
string name=rs.getstring("name");
str+="<input type=\"checkbox\" value=\""+name+"\" name=\"ts\">"+name+"<br/>";
}%>
<script type="text/javascript">
document.getelementbyid("tablename").innerhtml='<%=str%>';
</script>
<%//判断
string p=request.getparameter("p");
string[] tss=request.getparametervalues("ts");
if(tss==null||p==null||p=="")
return;
//初始化2
list<string> pa=new arraylist<string>();
pa.add("unit");//实体类包
pa.add("mapper");//mapper包
pa.add("service");//impl包
pa.add("service");//dao包
pa.add("configuration/spring.xml");//spring路径
pa.add("configuration/mybatis.xml");//mybatis路径
list<string[]> db2java=new arraylist<string[]>();//数据库转实体类的类型设定 [0]为sql类型,[1]为java类型 不满足条件为object
db2java.add(new string[]{"bit","boolean"});
db2java.add(new string[]{"nvarchar","string"});
db2java.add(new string[]{"numeric","double"});
db2java.add(new string[]{"int","integer"});
db2java.add(new string[]{"datetime","java.util.date"});
string tipstr="";
for(int ti=0;ti<tss.length;ti++){
string t=tss[ti];
hashmap[] r = (hashmap[]) null;
//读取数据2
int irownum;
r = (hashmap[])null;
irownum = 0;
int icolcnt = 0;
rs = stmt.executequery("select a.name as [column],b.name as type from syscolumns a,systypes b where a.id=object_id('"+ t+ "') and a.xtype=b.xtype and b.name!='sysname' order by a.id,a.colorder");
resultsetmetadata metadata = rs.getmetadata();
icolcnt = metadata.getcolumncount();
if (rs.next()){
rs.last();
r = new hashmap[rs.getrow()];
rs.beforefirst();
}
while (rs.next()){
r[irownum] = new hashmap();
for (int j = 0; j < icolcnt; j++){
string szcolname = metadata.getcolumnname(j + 1);
string szcolvalue = rs.getstring(szcolname);
if (szcolvalue == null)
szcolvalue = "";
r[irownum].put(szcolname, szcolvalue);
}
irownum++;
}
string bt=t.substring(0,1).touppercase()+t.substring(1);
//实体类文件
file file = new file(p+pa.get(0)+"/"+bt+".java");
if(file.exists())
file.delete();
filewriter fw=new filewriter(file);
bufferedwriter bw=new bufferedwriter(fw);
bw.write("package "+pa.get(0)+";\r\n\n");
bw.write("public class "+bt+" implements java.io.serializable{\r\n");
bw.write(" private static final long serialversionuid=1l;\r\n");
string[][] ts=new string[r.length][3];
for(int i=0;i<r.length;i++){
ts[i][0]="object";
for(string[] temp :db2java)
if(r[i].get("type").equals(temp[0]))
ts[i][0]=temp[1];
ts[i][1]=r[i].get("column").tostring();
ts[i][2]=ts[i][1].substring(0,1).touppercase()+ts[i][1].substring(1);
bw.write(" "+ts[i][0]+" "+ts[i][1]+";\r\n");
}
for(int i=0;i<r.length;i++){
bw.write("\r\n");
bw.write(" public "+ts[i][0]+" get"+ts[i][2]+"(){\r\n");
bw.write(" return "+ts[i][1]+";\r\n");
bw.write(" }\r\n");
bw.write("\r\n");
bw.write(" public void set"+ts[i][2]+"("+ts[i][0]+" "+ts[i][1]+") {\r\n");
bw.write(" this."+ts[i][1]+" ="+ts[i][1]+";\r\n");
bw.write(" }\r\n");
}
bw.write(" public "+bt+"(){\r\n");
bw.write(" }\r\n");
string gz="";
for(int i=0;i<r.length;i++)
gz+=","+ts[i][0]+" "+ts[i][1];
bw.write(" public "+bt+"("+gz.substring(1)+"){\r\n");
for(int i=0;i<r.length;i++)
bw.write(" this."+ts[i][1]+"="+ts[i][1]+";\r\n");
bw.write(" }\r\n");
bw.write("}");
bw.flush();
//mapper文件
string gzq="",gzi="",gzu="";
for(int i=0;i<r.length;i++){
gzq+="["+ts[i][1]+"],";
gzi+="#{"+ts[i][1]+"},";
gzu+="["+ts[i][1]+"]"+"=#{"+ts[i][1]+"},";
}
gzq=(gzq+",").replace(",,", "");
gzi=(gzi+",").replace(",,", "");
gzu=(gzu+",").replace(",,", "");
file = new file(p+pa.get(1)+"/"+bt+".xml");
if(file.exists())
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
bw.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
bw.write("<!doctype mapper public \"-//mybatis.org//dtd mapper 3.0//en\" \"");
bw.write("<mapper namespace=\""+bt+"\">\r\n");
bw.write(" <cache/>\r\n");
bw.write(" <select id=\"select"+bt+"byrid\" resulttype=\""+bt+"\" parametertype=\"java.lang.string\">\r\n");
bw.write(" select "+gzq+" from ["+t+"] where [enable]=1 and [rid]='${value}'\r\n");
bw.write(" </select>\r\n");
bw.write(" <select id=\"select"+bt+"\" resulttype=\""+bt+"\">\r\n");
bw.write(" select "+gzq+" from ["+t+"] where [enable]=1\r\n");
bw.write(" </select>\r\n");
bw.write(" <select id=\"select"+bt+"query\" resulttype=\""+bt+"\" parametertype=\"java.lang.string\">\r\n");
bw.write(" select "+gzq+" from ["+t+"] where [enable]=1 and ${value}\r\n");
bw.write(" </select>\r\n");
bw.write(" <insert id=\"insert"+bt+"\" parametertype=\""+bt+"\">\r\n");
bw.write(" insert into ["+t+"] ("+gzq+")values("+gzi+")\r\n");
bw.write(" </insert>\r\n");
bw.write(" <update id=\"update"+bt+"\" parametertype=\""+bt+"\">\r\n");
bw.write(" update ["+t+"] set "+gzu+" where [rid]=#{rid}\r\n");
bw.write(" </update>\r\n");
bw.write(" <delete id=\"delete"+bt+"\">\r\n");
bw.write(" delete ["+t+"] where [enable]=0\r\n");
bw.write(" </delete>\r\n");
bw.write("</mapper>");
bw.flush();
//impl文件
file = new file(p+pa.get(2)+"/"+bt+"impl.java");
if(file.exists())
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
bw.write("package "+pa.get(2)+";\r\n");
bw.write("\r\n");
bw.write("import java.util.list;\r\n");
bw.write("import org.springframework.stereotype.service;\r\n");
if(!pa.get(2).equals(pa.get(0)))
bw.write("import "+pa.get(0)+"."+bt+";\r\n");
bw.write("@service(\""+bt+"impl\")\r\n");
bw.write("public class "+bt+"impl extends org.mybatis.spring.support.sqlsessiondaosupport implements "+(pa.get(2).equals(pa.get(3))?"":pa.get(3)+".")+bt+"dao {\r\n");
bw.write(" public "+bt+" select"+bt+"byrid(string rid) {\r\n");
bw.write(" return ("+bt+")getsqlsession().selectlist(\"select"+bt+"byrid\",rid);\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" @suppresswarnings(\"unchecked\")\r\n");
bw.write(" public list<"+bt+"> select"+bt+"(){\r\n");
bw.write(" return getsqlsession().selectlist(\"select"+bt+"\");\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" @suppresswarnings(\"unchecked\")\r\n");
bw.write(" public list<"+bt+"> select"+bt+"query(string query){\r\n");
bw.write(" return getsqlsession().selectlist(\"select"+bt+"query\",query);\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" public int insert"+bt+"("+bt+" "+t+") {\r\n");
bw.write(" return getsqlsession().insert(\"insert"+bt+"\","+t+");\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" public int update"+bt+"("+bt+" "+t+") {\r\n");
bw.write(" return getsqlsession().update(\"update"+bt+"\","+t+");\r\n");
bw.write(" }\r\n");
bw.write(" \r\n");
bw.write(" public int delete"+bt+"() {\r\n");
bw.write(" return getsqlsession().delete(\"delete"+bt+"\");\r\n");
bw.write(" }\r\n");
bw.write("}");
bw.flush();
//dao文件
file = new file(p+pa.get(3)+"/"+bt+"dao.java");
if(file.exists())
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
bw.write("package "+pa.get(3)+";\r\n");
bw.write("\r\n");
bw.write("import java.util.list;\r\n");
bw.write("import org.springframework.transaction.annotation.transactional;\r\n");
if(!pa.get(3).equals(pa.get(0)))
bw.write("import "+pa.get(0)+"."+bt+";\r\n");
bw.write("\r\n");
bw.write("@transactional\r\n");
bw.write("public interface "+bt+"dao {\r\n");
bw.write(" "+bt+" select"+bt+"byrid(string rid);\r\n");
bw.write(" \r\n");
bw.write(" list<"+bt+"> select"+bt+"();\r\n");
bw.write(" \r\n");
bw.write(" list<"+bt+"> select"+bt+"query(string query);\r\n");
bw.write(" \r\n");
bw.write(" int insert"+bt+"("+bt+" "+t+");\r\n");
bw.write(" \r\n");
bw.write(" int update"+bt+"("+bt+" "+t+");\r\n");
bw.write(" \r\n");
bw.write(" int delete"+bt+"();\r\n");
bw.write("}");
bw.flush();
//spring文件
list<string> lw=new arraylist<string>();
file = new file(p+pa.get(4));
boolean f1=false;
if(file.exists()){
filereader fr=new filereader(file);
bufferedreader br=new bufferedreader(fr);
while(br.ready())
lw.add(br.readline());
if(file.exists())
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
for(int i=0;i<lw.size()-1;i++){
if(lw.get(i).equals(" <bean id=\""+bt+"impl\" class=\""+pa.get(3)+"."+bt+"impl\">"))
f1=true;
fw.write(lw.get(i)+"\r\n");
}
if(!f1){
bw.write(" <bean id=\""+bt+"impl\" class=\""+pa.get(3)+"."+bt+"impl\">\r\n");
bw.write(" <property name=\"sqlsessionfactory\" ref=\"sqlsessionfactory\"/>\r\n");
bw.write(" </bean>\r\n");
}
bw.write(lw.get(lw.size()-1));
bw.flush();
}
//mybatis文件
lw.clear();
file = new file(p+pa.get(5));
boolean f2=false;
if(file.exists()){
filereader fr=new filereader(file);
bufferedreader br=new bufferedreader(fr);
while(br.ready())
lw.add(br.readline());
file.delete();
fw=new filewriter(file);
bw=new bufferedwriter(fw);
for(int i=0;i<lw.size()-2;i++){
if(lw.get(i).equals(" <typealias alias=\""+bt+"\" type=\""+pa.get(0)+"."+bt+"\"/>"))
f2=true;
fw.write(lw.get(i)+"\r\n");
}
if(!f2)
bw.write(" <typealias alias=\""+bt+"\" type=\""+pa.get(0)+"."+bt+"\"/>\r\n");
bw.write(lw.get(lw.size()-2)+"\r\n");
bw.write(lw.get(lw.size()-1));
bw.flush();
}
bw.close();
fw.close();
tipstr+="<br/>";
tipstr+="已经生成:<br/>";
tipstr+="<br/>";
tipstr+=" 实体类:<br/>";
tipstr+=" "+pa.get(0)+"."+bt+".java{<br/>";
tipstr+=" 字段...<br/>";
tipstr+=" "+bt+"(){}<br/>";
tipstr+=" "+bt+"(所有字段)<br/>";
tipstr+=" }<br/>";
tipstr+="<br/>";
tipstr+=" mapper,dao,impl:<br/>";
tipstr+=" select"+bt+"byrid(string 表id)<br/>";
tipstr+=" select"+bt+"<br/>";
tipstr+=" select"+bt+"query(string 条件)<br/>";
tipstr+=" insert"+bt+"(实体)<br/>";
tipstr+=" delete"+bt+"<br/>";
tipstr+=" update"+bt+"(实体)<br/>";
if(f1||f2){
tipstr+="<br/>";
tipstr+=" <font style=\"color: red\">已注册"+(f1?"spring,":"")+(f2?"mybaits":"")+"</font>";
}
}%>
<script type="text/javascript">
document.getelementbyid("tip").innerhtml='<%=tipstr%>';
</script>
</body>
</html>
作者:icskee