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]);
//            }
//        }
    }
}


 

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐