android 直连mysql
mysql 创建数据库、表// create database petgame;// use petgame;// create table user (id int(10) not null primary key auto_increment,username varchar(30),feats blob);使用是 mysql-connector-java-5.1.46...
·
mysql 创建数据库、表
// create database petgame;
// use petgame;
// create table user (id int(10) not null primary key auto_increment,username varchar(30),feats blob);
使用是 mysql-connector-java-5.1.46-bin.jar ,未使用mysql-connector-java-8.0.17.jar(有问题,提示Ljava/sql/SQLType)
import com.jd.aiadAndroid.commonlib.mysql.bean.User;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
/**
* 数据库工具类:连接数据库用、获取数据库数据用
* 相关操作数据库的方法均可写在该类
*/
public class DBUtils {
private static String driver = "com.mysql.jdbc.Driver";// MySql驱动
// private static String url = "jdbc:mysql://localhost:3306/map_designer_test_db";
private static String user = "cjq";// 用户名
private static String password = "123456";// 密码
private static Connection getConn(String dbName) {
Connection connection = null;
try {
Class.forName(driver);// 动态加载类
String ip = "172.27.35.1";// 写成本机地址,不能写成localhost,同时手机和电脑连接的网络必须是同一个
// 尝试建立到给定数据库URL的连接
connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":3306/" + dbName + "?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC",
user, password);
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
public static List<User> getAllUser() {
List<User> list = new ArrayList<>();
Connection connection = getConn("petgame");
try {
String sql = "select * from user";
if (connection != null) {// connection不为null表示与数据库建立了连接
Statement ps = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = ps.executeQuery(sql);
int count = rs.getMetaData().getColumnCount();
// System.out.println("DBUtils," + "列数:" + count);
while (rs.next()) {
// 注意:下标是从1开始的
int id = (int) rs.getObject("id");
String username = (String) rs.getObject("username");
String password = (String) rs.getObject("password");
byte[] feats = (byte[]) rs.getObject("feats");
list.add(new User(id, username, password, feats));
}
connection.close();
ps.close();
return list;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static final InputStream byte2Input(byte[] buf) {
return new ByteArrayInputStream(buf);
}
public static boolean register(User user) {
// 根据数据库名称,建立连接
Connection connection = getConn("petgame");
try {
// mysql简单的查询语句。这里是根据MD_CHARGER表的NAME字段来查询某条记录
String sql = "insert into user (username,password,feats) values ('" + user.getUsername() + "','" + user.getPassword() + "'," + "?" + ");";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setBlob(1, byte2Input(user.getFeats()));
// 执行sql查询语句并返回结果集
int result = ps.executeUpdate();
System.out.println("DBUtils,,executeUpdate:" + result);
connection.close();
ps.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
// use mysql;
// select user,host,plugin from user;
// CREATE USER 'cjq'@'%' IDENTIFIED BY '123456';
// GRANT ALL ON *.* TO 'cjq'@'%';
// flush privileges;
// net start mysql
// create database petgame;
// use petgame;
// create table user (id int(10) not null primary key auto_increment,username varchar(30),password varchar(30),feats blob);
public static void main(String[] args) {
float[] floats = new float[512];
for (int i = 0; i < 512; i++) {
floats[i] = 0.0014444f;
}
DBUtils.register(new User("liudan", "123456", FloatConverter.floatToByte(floats)));
List<User> list = DBUtils.getAllUser();
System.out.println("DBUtils," + "总数:" + list.size());
// for (User user : list) {
// System.out.println("DBUtils," + "数据:" + user.getUsername() + user.getFeats().length);
// float[] DATA = FloatConverter.byteToFloat(user.getFeats());
// for (int j = 0; j < DATA.length; j++) {
// System.out.println(DATA[j]);
// }
// }
}
}
更多推荐
所有评论(0)