Android stdio连接数据库:
(1)AndroidManifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.chen.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.chen.myapplication.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal">
<TextView
android:id="@+id/textView2"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="10dp"
android:layout_marginBottom="20dp"
android:text="花茶助手"
android:textSize="20dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="185dp"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter"
app:srcCompat="@mipmap/icon" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="取像" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="43dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<RadioGroup
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginLeft="50dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="价格" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="营养" />
<RadioButton
android:id="@+id/radioButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="品种" />
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="15dp"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:background="@drawable/textview_border"
android:layout_height="match_parent"
android:text="识别内容" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
(3)主函数
package com.example.chen.myapplication;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.TextView;
import org.w3c.dom.Text;
import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView imageView;
private TextView textView;
private Button button;
private RadioButton radioButton1;
private RadioButton radioButton2;
private RadioButton radioButton3;
//连接数据库
private String url="jdbc:mysql://192.168.65.99:3306/test";
private String user="rootes";
private String password="123456";
PreparedStatement statement=null;
Statement stat=null;
Connection conn=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView=(ImageView)findViewById(R.id.imageView);
textView=(TextView)findViewById(R.id.textView);
button=(Button)findViewById(R.id.button);
button.setOnClickListener(this);
radioButton1=(RadioButton)findViewById(R.id.radioButton1);
radioButton2=(RadioButton)findViewById(R.id.radioButton2);
radioButton3=(RadioButton)findViewById(R.id.radioButton3);
radioButton1.setOnClickListener(this);
radioButton2.setOnClickListener(this);
radioButton3.setOnClickListener(this);
//为按钮设置一个标记
button.setTag(0);
radioButton1.setTag(1);
radioButton2.setTag(2);
radioButton3.setTag(3);
}
@Override
public void onClick(View v) {
Integer id=(Integer)v.getTag();
if(id==0) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection cn= DriverManager.getConnection("jdbc:mysql://192.168.65.99/test","rootes","123456");
String sql="select name from test";
Statement st=(Statement)cn.createStatement();
ResultSet rs=st.executeQuery(sql);
while(rs.next()){
String mybook=rs.getString("name");
System.out.println(mybook);
Log.i("Mainactivity",mybook);
}
cn.close();
st.close();
rs.close();
System.out.println("连接数据库成功");
} catch (ClassNotFoundException e) {
System.out.println("连接数据库失败");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}).start();
//把imageView转换成Bitmap
// Bitmap bitmap=loadBitmapFromView(imageView);
//获取图像对应的RGB值.,并存入数据库中
//GetRGB(bitmap);
// conn=getConnection();
//把bitmap转换成为一个文件
//InputPhoto(bitmap);
//显示新的Bitmap图片
// imageView.setImageBitmap(bitmap);
/// System.out.println("取像");
}else if(id==1){
System.out.println("价格");
}else if(id==2){
System.out.println("营养");
}else if(id==3){
System.out.println("品种");
}
}
///获取图片的RGB值
private void GetRGB(Bitmap bitmap) {
int w=bitmap.getWidth();
int h=bitmap.getHeight();
StringBuffer sql=new StringBuffer();
sql.append("insert into tb_rgb(x,y,r,g,b,rgb)values ");
for(int i=1;i<h;i++){//i表示的位置是y
for(int j=1;j<w;j++){
int argb=bitmap.getPixel(j,i);
int r =( argb>>16)&0xff;
int g =( argb>>8)&0xff;
int b =argb&0xff;
int a =(argb>>24)&0xff;
int rgb =(a<<24)|(r<<16)|(g<<8)|b;
sql.append("("+j+","+i+","+r+","+j+","+b+","+rgb+"),");
// System.out.println("R="+r+",G="+g+",B="+b);
bitmap.setPixel(j,i,Color.RED);
}
}
//插入数据入库
InsertSql(sql.toString());
System.out.println("数据库插入成功");
}
//获取imageView中的图片
private Bitmap loadBitmapFromView(ImageView imageView) {
imageView.setDrawingCacheEnabled(true);
imageView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
imageView.setDrawingCacheBackgroundColor(Color.WHITE);
int w = imageView.getWidth();
int h = imageView.getHeight();
Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
canvas.drawColor(Color.WHITE);
//如果不设置canvas的画布为白色,则生成透明
imageView.layout(0, 0, w, h);
imageView.draw(canvas);
return bmp;
}
//连接数据库
public Connection getConnection(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn= DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功");
} catch (Exception e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
return conn;
}
public void InsertSql(String sql){
String sqls=sql.substring(0,sql.length()-1);
conn=getConnection();//连接数据库
System.out.println("连接数据库成功");
try{
stat=conn.createStatement();
//stat.execute(sqls);
}catch (Exception e){
System.out.println("数据库插入失败");
e.printStackTrace();
}
}
//保存图片文件
private void InputPhoto(Bitmap bitmap) {
FileOutputStream fos;
String imagePath="";
try {
boolean isHasSDCard = Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
if (isHasSDCard) {
File sdRoot = Environment.getExternalStorageDirectory();
File file = new File(sdRoot, Calendar.getInstance().
getTimeInMillis() + ".png");
System.out.println("文件路径"+file.toString());
fos = new FileOutputStream(file);
imagePath = file.getAbsolutePath();
}else {
throw new Exception("创建文件夹失败了");
}
bitmap.compress(Bitmap.CompressFormat.PNG,90,fos);
fos.flush();
fos.close();
}catch (Exception e) {
System.out.println("文件保存失败");
e.printStackTrace();
}
imageView.destroyDrawingCache();
System.out.println("保存文件成功");
}
}
运行结果 :
标签:layout,parent,每日,import,打卡,id,match,android From: https://www.cnblogs.com/yunbianshangdadun/p/17232140.html