扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
import java.sql.*;
成都创新互联公司 - 移动服务器托管,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,移动服务器托管,西南服务器托管,四川/成都大带宽,机柜大带宽、租用·托管,四川老牌IDC服务商
public class Test
{
public static void main(String[] args) throws Exception
{
Class.forName("com.mysql.jdbc.Driver");
//一开始必须填一个已经存在的数据库
String url = "jdbc:mysql://localhost:3306/test?useUnicode=truecharacterEncoding=utf-8";
Connection conn = DriverManager.getConnection(url, "root", "123456");
Statement stat = conn.createStatement();
//创建数据库hello
stat.executeUpdate("create database hello");
//打开创建的数据库
stat.close();
conn.close();
url = "jdbc:mysql://localhost:3306/hello?useUnicode=truecharacterEncoding=utf-8";
conn = DriverManager.getConnection(url, "root", "123456");
stat = conn.createStatement();
//创建表test
stat.executeUpdate("create table test(id int, name varchar(80))");
//添加数据
stat.executeUpdate("insert into test values(1, '张三')");
stat.executeUpdate("insert into test values(2, '李四')");
//查询数据
ResultSet result = stat.executeQuery("select * from test");
while (result.next())
{
System.out.println(result.getInt("id") + " " + result.getString("name"));
}
//关闭数据库
result.close();
stat.close();
conn.close();
}
}
服务器端:
package com.lqq.service;
import java.io.File;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.List;
import com.lqq.vo.QueryType;
import com.lqq.vo.Student;
public class DealClientRequest implements Runnable
{
private Socket s = null;
private ParserXML p = new ParserXML(new File("students.xml"));
public DealClientRequest(Socket s)
{
this.s = s;
}
@Override
public void run()
{
if(s != null)
{
try
{
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
QueryType qt = (QueryType) ois.readObject();
if(qt.getQueryType() == 1)//单查
{
System.out.println("执行单查,查询的名字= " + qt.getQueryName());
Student stu = p.getStudent(qt.getQueryName());
oos.writeObject(stu);
}else if(qt.getQueryType() == 2)//全查
{
System.out.println("执行全查");
ListStudent list = p.getAllStudent();
for(int i = 0; i list.size(); i++)
{
Student stu = list.get(i);
oos.writeObject(stu);
}
}
} catch (IOException e)
{
e.printStackTrace();
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
}
}
*************************
package com.lqq.service;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class MainService
{
private ServerSocket ss;
public void startService() throws IOException
{
ss = new ServerSocket(10086);
while(true)
{
System.out.println("服务器在10086等待...");
Socket s = ss.accept();
new Thread(new DealClientRequest(s)).start();
System.out.println("启动处理线程成功");
}
}
}
******************
package com.lqq.service;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import com.lqq.vo.Student;
public class ParserXML
{
private DocumentBuilderFactory bdf;
private DocumentBuilder db;
private Document dom;
public ParserXML(File file)
{
bdf = DocumentBuilderFactory.newInstance();
try
{
db = bdf.newDocumentBuilder();
dom = db.parse(file);
} catch (Exception e)
{
e.printStackTrace();
}
}
public ListStudent getAllStudent()
{
ListStudent stu = new ArrayListStudent();
Element root = dom.getDocumentElement();
NodeList list = root.getElementsByTagName("stu");
for(int i = 0; i list.getLength(); i++)
{
Element e = (Element) list.item(i);
Student st = new Student();
NodeList names = e.getElementsByTagName("name");
if(names.getLength() == 1)
{
Element name = (Element)names.item(0);
Text text = (Text) name.getFirstChild();
st.setStuName(text.getNodeValue());
}
NodeList sexs = e.getElementsByTagName("sex");
if(sexs.getLength() == 1)
{
Element name = (Element)sexs.item(0);
Text text = (Text) name.getFirstChild();
st.setStuGender(text.getNodeValue());
}
NodeList ages = e.getElementsByTagName("age");
if(ages.getLength() == 1)
{
Element name = (Element)ages.item(0);
Text text = (Text) name.getFirstChild();
st.setStuAge(Integer.parseInt(text.getNodeValue()));
}
NodeList classs = e.getElementsByTagName("class");
if(classs.getLength() == 1)
{
Element name = (Element)classs.item(0);
Text text = (Text) name.getFirstChild();
st.setStuClassName(text.getNodeValue());
}
stu.add(st);
}
return stu;
}
public Student getStudent(String stuName)
{
ListStudent list = this.getAllStudent();
for(int i = 0; i list.size(); i++)
{
Student st = list.get(i);
if(st.getStuName().equals(stuName))
return st;
}
return null;
}
}
*************
package com.lqq.service;
import java.io.IOException;
public class Service
{
public static void main(String[] args)
{
MainService ms = new MainService();
try
{
ms.startService();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
*******
package com.lqq.vo;
import java.io.Serializable;
public class QueryType implements Serializable
{
private static final long serialVersionUID = 8713870836629046060L;
/**
* 1 单查
* 2 全查
*/
private byte queryType;
private String queryName;
public byte getQueryType()
{
return queryType;
}
public void setQueryType(byte queryType)
{
this.queryType = queryType;
}
public String getQueryName()
{
return queryName;
}
public void setQueryName(String string)
{
this.queryName = string;
}
}
************
package com.lqq.vo;
import java.io.Serializable;
public class Student implements Serializable
{
private static final long serialVersionUID = -6087251613589160139L;
private String stuName;
private int stuAge;
private String stuGender;
private String stuClassName;
@Override
public String toString()
{
return "姓名: " + stuName + "\t性别: " + stuGender
+ "\t年龄: " + stuAge + "\t班级: " + stuClassName;
}
public String getStuName()
{
return stuName;
}
public void setStuName(String stuName)
{
this.stuName = stuName;
}
public int getStuAge()
{
return stuAge;
}
public void setStuAge(int stuAge)
{
this.stuAge = stuAge;
}
public String getStuGender()
{
return stuGender;
}
public void setStuGender(String stuGender)
{
this.stuGender = stuGender;
}
public String getStuClassName()
{
return stuClassName;
}
public void setStuClassName(String stuClassName)
{
this.stuClassName = stuClassName;
}
}
*************
?xml version="1.0" encoding="UTF-8"?
stus
stu
name令狐冲/name
age12/age
class华山派/class
sex男/sex
/stu
stu
name东方不败/name
age22/age
class日月神教/class
sex女/sex
/stu
stu
name岳不群/name
age23/age
class华山派/class
sex妖/sex
/stu
stu
name风清扬/name
age88/age
class华山派/class
sex男/sex
/stu
/stus
客户端:
package com.lqq.c;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import com.lqq.vo.QueryType;
import com.lqq.vo.Student;
public class AllQuery implements Runnable
{
private Socket s;
public AllQuery(QueryType qt)
{
try
{
s = new Socket("localhost", 10086);
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(qt);
} catch (UnknownHostException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
@Override
public void run()
{
if(s != null)
{
try
{
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
Student stu = (Student) ois.readObject();
Client c = new Client();
while(stu != null)
{
c.showStudentInfo(stu);
stu = (Student) ois.readObject();
}
} catch (IOException e)
{
e.printStackTrace();
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
}
}
**************
package com.lqq.c;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Scanner;
import com.lqq.vo.QueryType;
import com.lqq.vo.Student;
public class Client
{
public void showStudentInfo(Student stu)
{
if(stu != null)
{
System.out.println(stu);
}
}
public void showMenu()
{
System.out.println("\t\t菜 单");
System.out.println("\t1.单 查");
System.out.println("\t2.全 查");
System.out.println("\t0.退 出");
}
public String getUserInput()
{
Scanner scan = new Scanner(System.in);
System.out.println("请输入:");
return scan.next();
}
public void requestQuery(String userSelect)
{
if(userSelect != null)
{
if("1".equals(userSelect.trim()))
{
QueryType qt = new QueryType();
qt.setQueryType((byte)1);
Scanner san = new Scanner(System.in);
System.out.println("请输入查询的学生名字:");
String queryStuName = san.next();
qt.setQueryName(queryStuName);
this.executeQeury(qt);
}else if("2".equals(userSelect.trim()))
{
QueryType qt = new QueryType();
qt.setQueryType((byte)2);
this.executeQeury(qt);
}else if("0".equals(userSelect.trim()))
{
System.exit(0);
}
else
{
System.out.println("输入有误");
}
}
}
public void executeQeury(QueryType qt)
{
try
{
Socket s = new Socket("localhost", 10086);
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeObject(qt);
System.out.println("请求发送完毕");
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
if(qt.getQueryType() == 1)
{
Student stu = (Student) ois.readObject();
showStudentInfo(stu);
}else if(qt.getQueryType() == 2)
{
new Thread(new AllQuery(qt)).start();
}
} catch (IOException e)
{
e.printStackTrace();
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
Client client = new Client();
while(true)
{
client.showMenu();
client.requestQuery(client.getUserInput());
}
}
}
**********
package com.lqq.vo;
import java.io.Serializable;
public class QueryType implements Serializable
{
private static final long serialVersionUID = 8713870836629046060L;
/**
* 1 单查
* 2 全查
*/
private byte queryType;
private String queryName;
public byte getQueryType()
{
return queryType;
}
public void setQueryType(byte queryType)
{
this.queryType = queryType;
}
public String getQueryName()
{
return queryName;
}
public void setQueryName(String string)
{
this.queryName = string;
}
}
**********
package com.lqq.vo;
import java.io.Serializable;
public class Student implements Serializable
{
private static final long serialVersionUID = -6087251613589160139L;
private String stuName;
private int stuAge;
private String stuGender;
private String stuClassName;
@Override
public String toString()
{
return "姓名: " + stuName + "\t性别: " + stuGender
+ "\t年龄: " + stuAge + "\t班级: " + stuClassName;
}
public String getStuName()
{
return stuName;
}
public void setStuName(String stuName)
{
this.stuName = stuName;
}
public int getStuAge()
{
return stuAge;
}
public void setStuAge(int stuAge)
{
this.stuAge = stuAge;
}
public String getStuGender()
{
return stuGender;
}
public void setStuGender(String stuGender)
{
this.stuGender = stuGender;
}
public String getStuClassName()
{
return stuClassName;
}
public void setStuClassName(String stuClassName)
{
this.stuClassName = stuClassName;
}
}
时间太紧,没有完善代码,基本功能实现了,代码没有优化,你自己再改改,希望可以帮到你
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class CreateFile {
public static void main(String[] args) {
String str = "需要写入的字";
String fileName = "D:\\a\\a.xml";
OutputStream output = null;// 输出字节流
OutputStreamWriter outputWrite = null;// 输出字符流
PrintWriter print = null;// 输出缓冲区
try {
output = new FileOutputStream(fileName);
outputWrite = new OutputStreamWriter(output);
print = new PrintWriter(outputWrite);
print.print(str);
print.flush();// 一定不要忘记此句,否则数据有可能不能被写入文件
output.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
再一个问题就是只要你编码正确就可以正常打开。
Java代码:
import java.io.File;
import java.io.IOException;
public class Test10 {
public static void main(String[] args) {
//创建“abc”文件夹
String pathName = "d:\\abc";
File path = new File(pathName);
path.mkdir();
//创建“abc”文件
String fileName = "d:\\abc\\abc";
File file = new File(fileName);
try {
file.createNewFile();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
可以的,我说说大概思路,很简单,你自己具体实现吧,把代码写给你没意义的:
1.将你这段字符串输出到一个文件里,用Java类文件的方式命名。
2.调用外部javac命令将该文件编译。
3.用类加载器(ClassLoad)动态加载新的class文件并用Class.forName()注册该类,然后就可以正常使用了。
上面的每一步都能在baidu中找到实现方法,自己发挥吧。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流