1. printstacktrace,用Eclipse连接MySQL数据库的步骤?
使用Eclipse连接mysql数据库的步骤如下:
1.打开Eclipse,创建一个新的Java项目或打开已有的Java项目。
2.在项目中创建一个lib文件夹,并将MySQL-connector-java-x.x.xx.JAR文件拷贝到该文件夹中。该文件是MySQL提供的Java连接器,可以在MySQL官网上下载。
3.在Eclipse的项目中添加该JAR文件,右键击项目名称,选择“Build Path” -> “Configure Build Path” -> “Libraries” -> “Add JARs” -> 选择刚才拷贝的mySQL-connector-java-x.x.xx.jar文件。
4.创建一个Java类,使用以下代码连接MySQL数据库:
```
import java.sql.Connection;
java.sql.DriverManager;
import java.sql.SQLException;
public class MySQLConnector {
private Connection connection = null;
// 数据库连接的URL、用户名、密码
private static final String URL = "jdbc:mysql://localhost:3306/test";
private static final String USERNAME =root";
private static final String PASSWORD = "123456";
public MySQLConnector() {
try {
// 加载MySQL驱动程序
Class.forNamecom.mysql.jdbc.Driver");
// 获取连接对象
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
if (connection != null) {
System.out.println("连接数据库成功!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} (SQLException e) {
e.printStackTrace();
}
}
public Connection getConnection() {
return connection;
}
public void() {
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e {
e.printStackTrace();
}
}
}
```
其中,URL指定数据库的地址和端口号,USERNAME和PASSWORD指定连接的用户名和密码。您需要根据您的数据库实际情况修改这些参数。
5.在Java类中使用MySQLConnector类实例化一个连接对象,即可连接MySQL数据库。
例如:
```
MySQLConnector mySQLConnector = new MySQLConnector();
Connection connection = mySQLConnector.getConnection();
```
2. tomcat可以做socket通信吗?
可以在tomcat环境下用Java程序实现Socket通信,代码如下:
服务端:
/**
*
*/
package com.dnion.socket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
***************************************************************
* 项目名称:JavaThread
* 程序名称:JabberServer
* 日期:2015-7-11 下午21:01:12
* 作者:Administrator
* @version
***************************************************************
*/
public class JabberServer {
public static int PORT = 8080;
public static void main(String[] agrs) {
ServerSocket s = null;
Socket socket = null;
BufferedReader br = null;
PrintWriter pw = null;
try {
//设定服务端的端口号
s = new ServerSocket(PORT);
System.out.println("ServerSocket Start:"+s);
//等待请求,此方法会一直阻塞,直到获得请求才往下走
socket = s.accept();
System.out.println("Connection accept socket:"+socket);
//用于接收客户端发来的请求
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//用于发送返回信息,可以不需要装饰这么多io流使用缓冲流时发送数据要注意调用.flush()方法
pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
while(true){
String str = br.readLine();
if(str.equals("END")){
break;
}
System.out.println("Client Socket Message:"+str);
Thread.sleep(1000);
pw.println("Message Received");
pw.flush();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
System.out.println("close.....");
try {
br.close();
pw.close();
socket.close();
s.close();
} catch (Exception e2) {
}
}
}
}
客户端:
/**
*
*/
package com.dnion.socket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
/**
***************************************************************
* 项目名称:JavaThread 程序名称:JabberClient
* 作者:Administrator
* @version
***************************************************************
*/
public class JabberClient {
/**
* 方法名:main
*
* @param @param args
* @return void
*/
public static void main(String[] args) {
Socket socket = null;
BufferedReader br = null;
PrintWriter pw = null;
try {
//客户端socket指定服务器的地址和端口号
socket = new Socket("127.0.0.1", JabberServer.PORT);
System.out.println("Socket=" + socket);
//同服务器原理一样
br = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream())));
for (int i = 0; i < 10; i++) {
pw.println("howdy " + i);
pw.flush();
String str = br.readLine();
System.out.println(str);
}
pw.println("END");
pw.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
System.out.println("close......");
br.close();
pw.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
3. string类型数字怎么进行判断?
要判断一个字符串类型的数字,可以使用以下方法:1. 使用isdigit()方法:这个方法用于检查字符串中是否只包含数字字符。如果字符串只包含数字字符,则返回True;否则返回False。例如:```pythonnum = "123"if num.isdigit(): print("是一个数字")else: print("不是一个数字")```2. 使用try-except语句:将字符串作为参数尝试转换为数字类型。如果转换成功,则说明字符串是一个数字;如果转换失败,则说明字符串不是一个数字。例如:```pythonnum = "123"try: float(num) print("是一个数字")except ValueError: print("不是一个数字")```以上两种方法都可以判断字符串类型的数字,具体使用哪种方法取决于你的需求和偏好。
4. java获取当前时间?
要什么格式的?给你个这样的“yy-mm-dd hh-mm-ss”//根据时间字符串把天数加1 public String addOneDay(String time) { String add = null; try { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date timeNow = df.parse(time); Calendar begin=Calendar.getInstance(); begin.setTime(timeNow); begin.add(Calendar.DAY_OF_MONTH,1); add = df.format(begin.getTime()); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return add; }这是加1的你把1改成-1就行了获取当前时间的函数://获取当前时间 public String getTime() { TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai"); TimeZone.setDefault(tz); Calendar rightNow = Calendar.getInstance(); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式大小写有区别 String sysDatetime = fmt.format(rightNow.getTime()); return sysDatetime; }
5. studio里边的哪个语句相当于python的sleep?
1. 在Android Studio中,相当于Python的sleep语句的是Thread类的sleep方法。2. 这是因为Thread类是Java中用于创建和管理线程的类,而sleep方法是Thread类中的一个静态方法,用于使当前线程暂停执行一段时间,类似于Python中的sleep函数。3. 值得延伸的是,sleep方法的参数是毫秒数,表示线程暂停的时间,可以用来实现一些时间间隔的控制,例如在Android开发中,可以使用sleep方法来实现一些延时操作,比如延时执行某个任务或者延时显示某个界面。但需要注意的是,由于sleep方法会阻塞当前线程的执行,因此在Android开发中,如果在主线程中使用sleep方法,会导致界面卡顿,因此一般建议将耗时操作放在子线程中执行。
6. 网站app制作如何植入聊天机器人的客服系统?
1,首先自己下载工具,搭建一个Android开发环境,去百度一下(安卓开发环境搭建),有详细步骤。
2,百度搜索“图灵机器人”,去注册一个账号,获取api key,用来调用图灵机器人的数据。
2把API key 复制下来放在一个记事本,之后要在代码中用的。
3先新建一个Android工程,我的工程名为:Person,源代码在com.shenbin.person包下,MainActivity是Android的activity。
还包括HttpDate类,HttpGetDateListener类,ListDate类,TextAdapter类
//MainActivity代码:
/*下面的代码修改
httpDate = (HttpDate) new HttpDate("http://www.tuling123.com/openapi/api?key=********&info=" +droph,this).execute();
把********替换成自己的API key
*/
package com.shenbin.person;
import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;
import org.json.JSONException;import org.json.JSONObject;
import android.os.Bundle;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;
public class MainActivity extends Activity implements HttpGetDateListener,OnClickListener{ //实现接口
private HttpDate httpDate; private List<ListDate> lists; private ListView lv; private EditText getText; private Button send_btn; private String content_str; private TextAdapter adapter; private String [] welcome_array; private double currentTime,oldTime = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); //httpDate = (HttpDate) new HttpDate("http://www.tuling123.com/openapi/api?key=5692c0d167fc5a180d092efaab578617&info=你好", //this).execute(); }
private void initView() { lv = (ListView) findViewById(R.id.lv); getText = (EditText) findViewById(R.id.sendText); send_btn = (Button) findViewById(R.id.send_btn); //send_btn.setOnClickListener((android.view.View.OnClickListener) this); send_btn.setOnClickListener(this); lists = new ArrayList<ListDate>(); adapter = new TextAdapter(lists, this); lv.setAdapter(adapter); ListDate listDate = null ; listDate = new ListDate(getRandomWelcomeTips(),listDate.RECEIVER,getTime()); lists.add(listDate);
} private String getRandomWelcomeTips() { String welcome_tip = null; welcome_array = this.getResources().getStringArray(R.array.welcome_tips); //获得string。xml的欢迎语 int index = (int) (Math.random()*(welcome_array.length-1)); welcome_tip = welcome_array[index]; return welcome_tip; } @Override public void getDateUrl(String date) { // TODO 自动生成的方法存根 //System.out.println(date); parseText(date); } public void parseText(String str) { try { JSONObject jb = new JSONObject(str); //System.out.println(jb.getString("code")); //System.out.println(jb.getString("text")); ListDate listDate = null; listDate = new ListDate(jb.getString("text"),listDate.RECEIVER,getTime()); lists.add(listDate); adapter.notifyDataSetChanged(); } catch (JSONException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } }
@Override public void onClick(View v) { getTime(); content_str = getText.getText().toString(); getText.setText(""); String dropk = content_str.replace(" ", ""); String droph = dropk.replace("\n", ""); ListDate listDate; listDate = new ListDate(content_str,ListDate.SEND,getTime()); lists.add(listDate); //如果太多了,就移除一些 if (lists.size() > 30) { for (int i = 0; i < lists.size(); i++) { lists.remove(i); } } adapter.notifyDataSetChanged(); httpDate = (HttpDate) new HttpDate("http://www.tuling123.com/openapi/api?key=********&info=" +droph,this).execute();
} private String getTime() { currentTime = System.currentTimeMillis(); SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date curDate = new Date(); String str = format.format(curDate); if (currentTime - oldTime > 5*60*1000) { oldTime = currentTime; return str; }else { return ""; } }
}
//HttpDate类代码
package com.shenbin.person;
import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;
import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import android.os.AsyncTask;
public class HttpDate extends AsyncTask<String, Void, String>{ private HttpClient mHttpClient; //客户端 private HttpGet mHttpGet; //请求方式为get private String url; //请求的地址 private HttpResponse mHttpResponse; //请求返还 private HttpEntity mHttpEntity; //创建实体 private InputStream in; private HttpGetDateListener listener; //获得接口
public HttpDate(String url,HttpGetDateListener listener) { this.url = url; this.listener = listener; } @Override protected String doInBackground(String... arg0) { // TODO 自动生成的方法存根 try { mHttpClient = new DefaultHttpClient(); //实例化客户端 mHttpGet = new HttpGet(url); mHttpResponse = mHttpClient.execute(mHttpGet); mHttpEntity = mHttpResponse.getEntity(); in = mHttpEntity.getContent(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line = null; //获取数据 StringBuffer sb = new StringBuffer(); while (( line = br.readLine()) != null) { sb.append(line); } return sb.toString(); } catch (Exception e) { // TODO: handle exception } return null; } @Override protected void onPostExecute(String result) { // TODO 自动生成的方法存根 listener.getDateUrl(result); super.onPostExecute(result); }
}
//HttpGetDateListener类代码
//接口
package com.shenbin.person;
public interface HttpGetDateListener {
void getDateUrl(String date);}
//ListDate类代码
package com.shenbin.person;
import android.R.integer;
public class ListDate { private String content; public static final int SEND = 1; public static final int RECEIVER = 2; private int flag; private String time; public ListDate(String content,int flag,String time) { // TODO 自动生成的构造函数存根 setContent(content); setFlag(flag); setTime(time); } public void setContent(String content) { this.content = content; }
public String getContent() { return content; }
public int getFlag() { return flag; }
public void setFlag(int flag) { this.flag = flag; }
public String getTime() { return time; }
public void setTime(String time) { this.time = time; }
}
//TextAdapter类代码
package com.shenbin.person;
import java.net.ContentHandler;import java.util.List;
import javax.security.auth.PrivateCredentialPermission;
import android.R.layout;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.webkit.WebView.FindListener;import android.widget.BaseAdapter;import android.widget.RelativeLayout;import android.widget.TextView;
public class TextAdapter extends BaseAdapter{ private List<ListDate> lists; private Context nContext; private RelativeLayout layout; public TextAdapter(List<ListDate> lists,Context nContext) { this.lists = lists; this.nContext = nContext; }
@Override public int getCount() { // TODO 自动生成的方法存根 return lists.size(); }
@Override public Object getItem(int pesition) { return lists.get(pesition); }
@Override public long getItemId(int pesition) { // TODO 自动生成的方法存根 return pesition; }
@Override public View getView(int pesition, View converView , ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(nContext); if (lists.get(pesition).getFlag() == ListDate.RECEIVER) { layout = (RelativeLayout) inflater.inflate(R.layout.leftitem, null); } if (lists.get(pesition).getFlag() == ListDate.SEND) { layout = (RelativeLayout) inflater.inflate(R.layout.rightitem, null); } TextView tv = (TextView) layout.findViewById(R.id.tv); tv.setText(lists.get(pesition).getContent()); TextView time = (TextView) layout.findViewById(R.id.time); time.setText(lists.get(pesition).getTime()); return layout; }
}
activity_main.xml的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" >
<ListView android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:divider="@null" android:listSelector="@android:color/transparent" android:transcriptMode="alwaysScroll" ></ListView> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/sendText" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <Button android:id="@+id/send_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/send" /> </LinearLayout>
</LinearLayout>
leftitem.xml代码
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/time" android:layout_width="fill_parent" android:gravity="center_horizontal" android:layout_height="wrap_content" /> <ImageView android:layout_below="@id/time" android:id="@+id/iv" android:layout_width="70dp" android:layout_height="70dp" android:padding="10dp" android:src="@drawable/c" /> <TextView android:layout_below="@id/time" android:layout_toRightOf="@id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" android:gravity="center" android:background="@drawable/d" />
</RelativeLayout>
rightitem.xml代码
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/time" android:layout_width="fill_parent" android:gravity="center_horizontal" android:layout_height="wrap_content" /> <ImageView android:layout_below="@id/time" android:layout_alignParentRight="true" android:id="@+id/iv" android:layout_width="70dp" android:layout_height="70dp" android:padding="10dp" android:src="@drawable/b" /> <TextView android:layout_below="@id/time" android:layout_toLeftOf="@id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv" android:gravity="center" android:background="@drawable/d" />
</RelativeLayout>
values文件下的strings.xml代码
<?xml version="1.0" encoding="utf-8"?><resources>
<string name="app_name">小兵机器人</string> <string name="action_settings">Settings</string> <string name="hello_world">小兵聊天机器人</string> <string name="send">发送</string> <string-array name="welcome_tips"> <item>主人,奴婢在此等候多时了</item> <item>主人,近来可好</item> <item>欢迎归来,我亲爱的主人</item> <item>主人,我好想你啊</item> <item>主人,你越来越靓啦</item> <item>我是小兵机器人,很高兴陪你聊天</item> <item>我就是聪明,可爱的小兵机器人</item> <item>hello,美女(帅锅)</item> <item>你是我的小呀小苹果</item> <item>开心的话,可以找我聊天,不开心更要找我聊天啦</item> </string-array>
</resources>
AndroidManifest.xml的代码
添加的代码为加黑的粗体。
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.shenbin.person" android:versionCode="1" android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.INTERNET"/>
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.shenbin.person.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
7. java怎么操作excel转xml文件?
百度搜索圈T社区 免费行业视频教程www.aiquanti.com
package com.asima;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
*
* @author asima
* @data 2006-10-18
*/
public class XlsToAccess
{
HSSFSheet globalSheet = null;
/*读取一个指定单元格内容*/
public String readCellValue(String pos)
{
int xpos;
short ypos;
int cellType; /*取得此单元格的类型 0-Numeric,1-String,3-null*/
String result; /*返回取得的单元格的值*/
ypos = (short) (pos.toUpperCase().charAt(0) - 65);
xpos = Integer.parseInt(pos.substring(1, pos.length())) - 1;
HSSFRow row = null; /* 定义excel中的行 */
HSSFCell cell = null; /* 定义excel中的单元格 */
/* 根据xPos和yPos取得单元格 */
row = globalSheet.getRow(xpos);
cell = row.getCell(ypos);
/** **************此处如果是空需要修改********************************** */
cellType = cell.getCellType();
switch (cellType)
{
case 0: /* 0-Numeric */
result = String.valueOf(cell.getNumericCellValue());
break;
case 1: /* 1-String */
result = cell.getStringCellValue();
break;
case 3: /* 3-null */
result = "";
break;
default:
result = "";
break;
}
return result;
}
/*读取excel文件并把内容插入到access表中*/
public void insertIntoTable() throws Exception
{
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook =
new HSSFWorkbook(new FileInputStream("D:/temp/test.xls"));
// 获得一个sheet
globalSheet = workbook.getSheetAt(0);
String value1 = readCellValue("c1");
String value2 = readCellValue("c2");
String value3 = readCellValue("c3");
String value4 = readCellValue("c4");
System.out.println(value1);
System.out.println(value2);
/* 插入数据库 */
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:asima";
Connection conn = DriverManager.getConnection(url);
PreparedStatement stmt =
conn.prepareStatement("insert into custom values(?,?,?,?)");
// 定义查询的SQL语句
stmt.setString(1, value1);
stmt.setString(2, value2);
stmt.setString(3, value3);
stmt.setString(4, value4);
stmt.executeUpdate